WordPress

【WordPress】アップロードのファイル容量の拡張方法(お名前サーバー)

お名前.comレンタルサーバー
ファイルアップロードの容量を拡張するのは少しクセがあります。

一般的なサーバーではhtaccessなどで設定しますが、
お名前.comレンタルサーバー php.iniで設定します。

php.iniを各ドメインのルートディレクトリに設置することで
ファイル容量を拡張できます。

下記の設定は50MBに拡張する場合の記述例です。
50の数字を変えることで上限を変更できます。

全て同じ数字にしておくのが一番簡単ですが、
「memory_limit」の数値が一番大きく、「upload_max_filesize」が一番小さく設定する必要があります。
上からmemory_limit > post_max_size > upload_max_filesizeという関係にします。

[PHP]
memory_limit = 50M
post_max_size = 50M
upload_max_filesize = 50M
[/PHP]

WordPressの移行などにAll-in-One WP Migrationを使う場合にファイル容量の拡張が必要になる場面が多いので覚えておくと便利です。

参考:https://kikushima-japan.co.jp/work-blog/お名前レンタルサーバーのファイルアップロード/
https://www.vektor-inc.co.jp/post/upload_max_filesize/

【WordPress】WP-PageNaviで2ページ目以降が404になる問題の修正

WordPressにプラグインのWP-PageNaviを使ってページネーションを表示する場合、
2ページ目以降が404エラーになってしまう場合があります。

通常、パーマリンク設定やクエリの設定に関連している場合が多いですが、
以下のステップで問題の所在を確認していきます。

1. パーマリンク設定の確認

WP-PageNaviを正しく動作させるには、WordPressのパーマリンク設定が適切に構成されていることが重要です。WordPressの管理ダッシュボードから「設定」→「パーマリンク」に移動し、パーマリンク設定を確認します。一般的な設定としては、「投稿名」を選択することが多いです。設定を変更した場合は、設定を保存して変更を反映させてください。

2. functions.phpファイルの確認

functions.phpファイルにはページネーションに関連するカスタムクエリが記述されている場合があります。ページネーションのクエリが正しく設定されていることを確認します。

記述や設定がされている場合、そのコードがページネーションを正しく処理するようになっていることを確認します。また、このコードが他のカスタムルールと競合していないかも確認します。

3. WP-PageNaviプラグイン設定の確認

WP-PageNaviプラグインの設定を確認し、正しい設定が行われているかを確認してください。WP-PageNaviプラグインの設定画面から、ページネーションの挙動に関する設定を確認できます。

4. テーマの問題

問題の発生している一覧ページのテンプレートファイル(tag.phpやarchive.phpなど)が正しく設定されているか確認します。テーマファイルに問題がある場合、ページネーションが正しく動作しないことがあります。

これらのステップを確認して、問題を解決するのに役立つ情報を得ることができます。
問題が解決しない場合、ページネーションに関連する他のプラグインやカスタムコードが問題の原因である可能性があるため、それらも確認することが重要です。

URLからcategoryを削除するなど、カテゴリー一覧ページに独自の設定をしたことで、
タグ一覧ページの2ページ目以降が表示されない(404になる)ケースを例に修正方法を見ていきます。

上記の「2. functions.phpファイルの確認」にページネーションを設定する記述があったため、
その記述と競合しない新たなルールを加えました。

function custom_tag_pagination_rewrite_rule($rules) {
    $new_rules = array(
        'tag/(.+)/page/([0-9]{1,})/?$' => 'index.php?tag=$matches[1]&paged=$matches[2]',
        'tag/(.+)/?$' => 'index.php?tag=$matches[1]',
    );

    return $new_rules + $rules;
}

function custom_category_pagination_rewrite_rule($rules) {
    $new_rules = array(
        'category/(.+)/page/([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&paged=$matches[2]',
        'category/(.+)/?$' => 'index.php?category_name=$matches[1]',
    );

    return $new_rules + $rules;
}

add_filter('rewrite_rules_array', 'custom_tag_pagination_rewrite_rule');
add_filter('rewrite_rules_array', 'custom_category_pagination_rewrite_rule');

URLからcategoryを削除しつつ、tagは残し、タグ一覧ページの2ページ目以降が正常に認識され表示されるようになりました。

【WordPress】カスタムフィールドの値を投稿本文(post_content)にコピーする

WordPressでは、カスタムフィールドは通常検索対象になりません。
テンプレートなどを利用していて、検索機能が独自のカスタマイズされていると、カスタムフィールドの値を検索対象にする機能の追加は一苦労です。

カスタムフィールドの値を、投稿本文にコピーすると簡単に検索対象に出来ます。

CSVで一括投稿する場合や、ダッシュボードの投稿画面から情報を入力する場合に
カスタムフィールドの値を取得し、連結、投稿本文(post_content)にコピーするコードをfunctions.phpに追加します。

function update_post_content_with_custom_fields( $post_id ) {
    // 投稿の編集中でない場合や、カスタムフィールドの更新中である場合は処理しない
    if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return;
    if ( defined('DOING_AJAX') && DOING_AJAX ) return;
    if ( 'post' !== get_post_type( $post_id ) ) return;
    // 更新処理中フラグが設定されている場合は処理しない
    if ( get_post_meta( $post_id, '_updating_post_content', true ) ) return;
    // カスタムフィールドの値を取得します。
    $custom_fields = array(
        '項目1',
        '項目2',
        '項目3',
        '項目4',
        '項目5',
    );
    $post_content = '';
    // カスタムフィールドの値を連結します。
    foreach ( $custom_fields as $field_name ) {
        $field_value = get_post_meta( $post_id, $field_name, true );
        if ( ! empty( $field_value ) ) {
            $post_content .= "<strong>{$field_name}:</strong> {$field_value}<br>";
        }
    }
    // post_contentを更新します。
    if ( ! empty( $post_content ) ) {
        // 更新処理中フラグを設定
        update_post_meta( $post_id, '_updating_post_content', true );
        $post = array(
            'ID' => $post_id,
            'post_content' => $post_content,
        );
        // save_post アクションを一時的に無効化
        remove_action( 'save_post', 'update_post_content_with_custom_fields' );
        // 投稿を更新
        wp_update_post( $post );
        // save_post アクションを再度有効化
        add_action( 'save_post', 'update_post_content_with_custom_fields' );
        // 更新処理中フラグをクリア
        delete_post_meta( $post_id, '_updating_post_content' );
    }
}
// 投稿が保存される際に呼び出すアクションフックを追加します。
add_action( 'save_post', 'update_post_content_with_custom_fields' );

function copy_custom_fields_to_post_content_on_import( $post_id ) {
    // インポート中の投稿かどうかを確認
    if ( defined('WP_IMPORTING') && WP_IMPORTING ) {
        // カスタムフィールドの値を取得します。
        $custom_fields = array(
            '項目1',
            '項目2',
            '項目3',
            '項目4',
            '項目5',
        );
        $post_content = '';
        // カスタムフィールドの値を連結します。
        foreach ( $custom_fields as $field_name ) {
            $field_value = get_post_meta( $post_id, $field_name, true );
            if ( ! empty( $field_value ) ) {
                $post_content .= "<strong>{$field_name}:</strong> {$field_value}<br>";
            }
        }
        // post_contentを更新します。
        if ( ! empty( $post_content ) ) {
            $post = array(
                'ID' => $post_id,
                'post_content' => $post_content,
            );
            wp_update_post( $post );
        }
    }
}
// 投稿が保存される際に呼び出すアクションフックを追加します。
add_action( 'save_post', 'update_post_content_with_custom_fields' );
// インポート時にもカスタムフィールドの値を post_content にコピーするためのアクションフックを追加します。
add_action( 'import_post_created', 'copy_custom_fields_to_post_content_on_import' );

前半部分は投稿画面からの更新でのコピー。 後半部分はCSVインポート時のコピーです。

前半部分は単体で使えますが、後半部分は前半部分の機能を一部使っているのでそのままでは使えません。
CSVインポートの時だけ値をコピーする場合は少しカスタマイズが必要になります。

【WordPress】目次を自動的に付ける(Easy Table of Contents)

プラグインを使うと目次を自動的に付けることが出来ます。
様々なプラグインがありますが、Easy Table of Contentsが細かな設定が出来るので使いやすいです。

Easy Table of Contents

参考:https://www.onamae.com/column/wordpress/11/

【WordPress】カテゴリーIDからカテゴリー一覧ページへのURLを取得する

カテゴリーIDからカテゴリー一覧ページへのURLを取得するコードを記述しておくことで
カテゴリー名やスラッグを変更してもURLが自動的に修正されます。

※「カテゴリーID」には数字を入れます。

<?php echo esc_url(get_category_link('カテゴリーID')); ?>

参考:https://hacknote.jp/archives/6022/

【WordPress】記事に紐づいたタグの取得(get_the_tags)

WordPressの記事に紐付いたタグを取得するためのコードです。
get_the_tagsを使用します。

WordPressに登録されている全てのタグを取得する場合はget_tagsを使用します。
get_tagsの使い方はコチラの記事でサイドバーへのタグ一覧表示方法にて紹介しています。

基本

<?php the_tags('前', '区切り文字', '後'); ?>
タグ一覧の前に表示する文字列 初期値:「タグ: 」
区切り文字 タグ名とタグ名の間のに表示する文字列または記号 初期値:「カンマ(, )」
最後のタグの後ろに表示する文字列 初期値:なし

タグの名前だけを表示

下記の参考コードはタグ名の前後をspanで囲うようにしています。

<?php 
  $tags = get_the_tags();
  foreach ( $tags as $tag ) {
    echo '<span>' . $tag->name . '</span>';
  }
?>

その他

上の参考コードの4行目をそれぞれ変えると出力できます。

タグ名の出力 echo $tag->name;
タグのスラッグ名の出力 echo $tag->slug;
タグIDの出力 echo $tag->term_id;
タグの説明の出力 echo $tag->description;
タグに属する記事の数を出力 echo $tag->count;
タグのリンクだけを出力 echo get_tag_link($tag->term_id);

参考:http://kawatama.net/web/629
https://thewppress.com/libraries/get-the-tags-array/
https://design-tera.com/blog/archives/2387/
https://recooord.org/wordpress-get-the-tags/











【WordPress】記事に紐付いているカテゴリーをひとつだけ取得

記事に紐付いているカテゴリーをひとつだけ取得する場合、
一行の簡単なコードの記述で取得が可能です。

カテゴリー名の取得

<?php echo get_the_category()[0]->name; ?>

スラッグの取得

<?php echo get_the_category()[0]->slug; ?>

リンクURLの取得

<?php echo get_category_link(get_the_category()[0]->term_id); ?>

カテゴリーIDの取得

<?php echo get_the_category()[0]->cat_ID; ?>

参考:https://wordpress-web.and-ha.com/post-category-name-id-slug/

【WordPress】カテゴリーの選択をひとつだけにする方法(カテゴリーのラジオボタン化)

WordPressで作り込んだデザインなどを実装する場合、
複数カテゴリーを選択できるより、ひとつの記事にひとつのカテゴリーとしておいたほうが
便利な場合が多くあります。

使用しているテンプレートのfunctions.phpに以下のコードを記述します。

//カテゴリーをラジオボタン化
function change_category_to_radio() {
  ?>
<script>
jQuery(function($) {
  // ラジオボタン化
  $('#categorychecklist input[type=checkbox]').each(function() {
    $(this).replaceWith($(this).clone().attr('type', 'radio'));
  });
  // 「新規カテゴリーを追加」を非表示
  $('#category-adder').hide();
  // 「よく使うもの」を非表示
  $('#category-tabs').hide();
});
</script>
<?php
  }
add_action( 'admin_head-post-new.php', 'change_category_to_radio' );
add_action( 'admin_head-post.php', 'change_category_to_radio' );

参考:https://junpei-sugiyama.com/wp-category-radio/

【WordPress】サイドバーにタグ一覧を表示する

WordPressのサイドバーにタグ一覧を表示するためのコードです。

記事に紐付いたタグの取得はコチラの記事をご参照ください。

登録されている全てのタグを表示

こちらはシンプルに登録されているタグを全て表示するだけのコードです。
登録されている全てのタグを取得するのでget_tagsを使います。

<ul>
  <?php
  $posttags = get_tags();
  if ($posttags) {
    foreach($posttags as $tag) {
      echo '<li><a href="'. get_tag_link($tag->term_id) .'">' . $tag->name . '</a></li>';
    }
  }
 ?>
</ul>

タグの表示件数を制限する

先程のコードは100件でも200件でも登録されただけタグが表示されてしまうので
上位○件というように表示件数を制限するコードになります。

6行目の'number' => 20という部分が20件表示の設定になるので
適宜デザインや登録件数に併せて変更してみてください。

<ul>
<?php
$args = array(
  'orderby' => 'count',
  'order' => 'desc',
  'number' => 20
);
$tags = get_terms('post_tag', $args);
foreach($tags as $value) {
  echo '<li><a href="'. get_tag_link($value->term_id) .'">'. $value->name .'</a></li>';
}
?>
</ul>

参考:https://shu-naka-blog.com/website/wp-taglist2/

【WordPress】現在のページのURLを取得するコード

WordPressでサイトを構築する際によく使うコード

今回は
「現在のページのURLを取得するコード」

<?php echo get_the_permalink();?>

参考:https://cms-hikaku-navi.com/column/5694/

【WordPress】ベーシック認証を使わずサイト全体にパスワード設定(Password Protected)

WordPressでサイトを構築する際や
公開前に記事を準備するのに、サイト全体にパスワード設定をして
見れない状態にしておきたいものです。

WP自体がhtaccessに設定を書き込んだりもするので
あまりいじりたくない部分であったりもするし、
AWSではhtaccessがデフォルト状態では使えないため
プラグインなどで設定するのが簡単です。

Password Protected

参考:https://kinsta.com/jp/blog/password-protect-wordpress-site/

【WordPress】LightsailのWordPressをSSL化する方法

ウェブサイトのSSL化はSSHを使いコマンドで実行する必要がありますが、
Lightsailには、Bitnami HTTPS Configuration Toolという専用のツールが用意されています。

Bitnami HTTPS Configuration Toolは

・証明書の取得
・HTTPSへのリダイレクト
・www有・無(リダイレクト)
・cronでの自動更新

を設定してくれるツールになります。

複雑なコマンドを実行せずにSSL化する事が可能になる便利なツールです。

LightsailのWordPressをSSL化する手順

SSHクライアント、もしくはLightsailのコンソールから
コマンドを実行していきます。

1. 以下のコマンドを実行します。
※アップデートするか聞いてくる場合は「Y」と入力して、再度同じコマンドを実行します。

sudo /opt/bitnami/bncert-tool

2. Domain listにSSL化するドメインを入力します。

3. www付きのドメインが含まれていない場合、対象に含めるか確認されます。
含める場合は「Y」、含めない場合は「n」を選択してください。

4. HTTPからHTTPSへのリダイレクトを有効にするか聞いてきますので「Y」を入力します。

5. www無しのドメインからwww有りのドメインにリダイレクトするか確認されます。
希望する場合は「Y」、しない場合は「n」を選択してください。

6. www有りのドメインからwww無しのドメインにリダイレクトするか確認されます。
希望する場合は「Y」、しない場合は「n」を選択してください。

7. 設定内容が表示されるので確認します。

8. 証明書に関連付けるメールアドレスを入力します。

9. 契約内容が表示されるので確認します。問題なければ「Y」を入力します。
※契約内容にはリンクがあります。

10. SSL化の処理が正常に完了した場合「Success」と表示されます。

11. Enterキー押して完了です。

12. ウェブサイトが正常にSSL化されていることを確認します。

参考:https://soma-engineering.com/wordpress/set-ssl-letsencrypt-lightsail/2021/03/07/

【WordPress】VisualStudioCode風の配色(Highlighting Code Blockのカスタマイズ)

以前の記事で紹介しているように
普段のテキストエディタはEmEditorを使っているで
VisualStudioCodeは使っていないのですが、
コードの配色が落ち着いていて玄人っぽさが出るかな?と
このサイトのHighlighting Code Blockでコード表示しているものをVScode風に変えてみました。

以下のCSSを適用テンプレートのCSSなどに追記すると変更されます。
/* VSCode */
.hcb_wrap.hcb_wrap code, .hcb_wrap.hcb_wrap pre { color: #9cdcfe!important; background: #1e1e1e!important;}/* 全体 */
.token.keyword { color: #c586c0!important;}/* 予約語 */
.token.keyword.def { color: #569cd6!important; font-style: initial!important;}/* 予約語def */
.token.string { color: #ce9178!important;}/* 文字列 */
.token.comment { color: #7ba85f!important;}/* コメント */
.token.class-name {color: #38cdae!important;}/* クラス名 */
.token.function { color: #dcdcaa!important;}/* 関数 */
.token.operator, .token.punctuation { color: #c8c8c8!important;}/* 演算子・記号(句読点) */
.token.number { color: #bcd2b0!important;}/* 数字 */
.token.boolean { color: #569cd6!important;}/* ブール */
.token.interpolation .token.punctuation { color: #569cd6!important;}/* リテラル内の記号(句読点) */
.token.builtin { color: #e3e3e3!important; font-style: initial!important;}/* 組み込み */

参考:https://youonly.net/wordpress-highlighting-code-block-vscode/

【WordPress】httpをhttpsに運用後に変えた際のGoogleアナリティクスとサーチコンソールの設定変更

運用を始める前にSSLの設定などをして、最初からhttpsでの運用が望ましいですが、
httpで運用をはじめて、途中からhttpsに切り替えることも多いと思います。

httpをhttpsに途中から、運用後に変えた場合の
Googleアナリティクスとサーチコンソールの設定変更の仕方です。

httpからhttpsへのリダイレクト設定はこちらをご確認ください。
https://www.uki213.com/memo/wordpress-redirect-setting/

Googleアナリティクスの設定変更

httpのままでも特に問題なく計測出来るようですが、
httpsで運用する場合、httpsに修正しておいたほうが良いでしょう。

画面サイドの「歯車マーク」→「データストリーム」とクリック。
Googleアナリティクスの設定変更

Googleアナリティクスの設定変更

「鉛筆マーク」をクリック。
Googleアナリティクスの設定変更

httpをhttpsに変更し「ストリームの更新」ボタンをクリックします。
Googleアナリティクスの設定変更

サーチコンソールの設定変更

サーチコンソールは既存の登録の変更はないため、httpsで新たに登録し直し適宜httpの古い登録を削除します。

参考:https://dadadaweb.com/wordpress-really-simple-ssl/

【WordPress】最速で検索エンジンにインデックス登録させる方法(たぶん)

2023.01現在でたぶん…
Googleサーチコンソールで1ページずつURLを登録するのが一番確実で一番早く検索エンジンにインデックス登録させる方法かもしれません。

Googleサーチコンソールの一番上部の検索窓(赤枠)に各ページのURLを入力し、
インデックス登録をリクエスト(赤枠)」をクリックします。

最速で検索エンジンにインデックス登録させる方法

これで通常、24時間以内にインデックスされます。
WordPressの最低限のSEO対策をしておくとインデックスの効果を最大限に活かせるかもしれません。

検索順位を調べるなら、検索順位チェックツールGRC



集客できるウェブ担当者になろう!【SEO検定】

【WordPress】外部リンクにアイコンを付ける(画像にはアイコンを付けない)

WordPressで自動的に外部リンクにアイコンを付け、
画像にはアイコンを付けないような設定をしてみます。

プラグインでも出来ますが、今回はfunctions.phpへのコードの追記と
CSSの設定だけで実現できるもの。

WordPressのテーマ内のfunctions.phpに以下のコードを追加します。

// 外部リンクにアイコンを付ける
add_filter( 'the_content', 'add_external_content', 12 );
function add_external_content( $content ) {
$add_img = 0; // img(画像での外部リンク)にもアイコン付ける場合は 1 付けない場合は 0
preg_match_all( "/<a[^>]+?href[^>]+?>/i", $content, $link_array );

$my_url = preg_quote( rtrim( get_bloginfo("url"), "/" ) . "/", "/" );

foreach( array_unique( $link_array[0] ) as $link ) {
$replaced = $link;

if( !preg_match( "/href=['|\"]?\s*?${my_url}[^>]+?['|\"]/i", $link ) ) {
$replaced = str_replace( ">", " class=\"external ext_icon\">", $replaced );
$content = str_replace( $link, $replaced, $content );
if( !$add_img ) {
// img の時はアイコン消す(class="external" は残す)
$content = preg_replace(
"/(<a[^>]+?href[^>]+?external) ext_icon([^>]+?>\s*?<\s*?img[^>]+?src[^>]+?>\s*?<\/a>)/is",
"$1$2",
$content
);
}
}
}
return $content;
}

CSSには以下を追加し、CSSと同階層にlink-icon.svgをアップロードします。
※ファイル名や設置場所は適宜変更してください。

a.ext_icon[target="_blank"] {
background: url(./link-icon.svg) 100% 50% no-repeat;
padding-right: 15px;
margin-right: 2px;
}

aタグのあとに改行が入るとテキストと認識してしまうため、アイコンの付与にCSSには.ext_iconだけではなく、[target="_blank"]も判断基準に付け加えています。

参考:https://www.iscle.com/web-it/wp/external-link-icon.html
http://thk.kanzae.net/net/wordpress/t1316/
https://fukuro-press.com/wp-way-to-add-icon-to-ext-link/

【WordPress】WordPressでのSEO対策

WordPressでのSEO対策として
最低限やったほうが良いものをまとめていきます。

サーチコンソールがパンくずやAMPも登録されるため、
パンくずやAMPを設定後、サーチコンソールに登録するのが良いと思います。

SSL設定(サーバー・htaccess)
・(Really Simple SSLプラグインのインストール)・・・htaccessなどで設定している場合は不要
 ↓
Googleアナリティクスの設置
 ↓
All in One SEOプラグインのインストール
・(サイトマップ系プラグイン(XML Sitemaps)のインストール)・・・All in One SEOでも生成できるので、All in One SEOを入れている場合は不要
 ↓
・(パンくず系プラグイン(Breadcrumb NavXT)のインストール)・・・テンプレートにパンくずがある場合は不要。カテゴリーが複雑な場合など使用すると良い。
 ↓
・(AMPプラグイン(AMP for WP)のインストール)・・・更新頻度の高い場合はキャッシュに注意
 ↓
サーチコンソールへのサイトマップXMLの登録
・(サーチコンソールへの個別ページURLの登録
 ↓
WebSubプラグインのインストール
 ↓
PageSpeed Insightsでの最適化

場合によっては、キャッシュ系のWP Super CacheプラグインをインストールするとHTMLベースのページになり表示も軽くなり、PageSpeed Insightsの点数も上がります。

検索順位を調べるなら、検索順位チェックツールGRC





集客できるウェブ担当者になろう!【SEO検定】






【WordPress】インデックス登録を早める方法(WebSub)

検索エンジンに認識され検索出来るようになる状態を「インデックス登録」と言います。

WebSubよりもサーチコンソールに1ページずつURLを登録するのが(もしかしたら)一番確実で一番早くインデックスされるかも。。。(2023.01現在調べ)

通常はGoogleサーチコンソール(通称:サチコ)の「サイトマップの送信」などをしてGoogleに登録します。

WordPressには、これ以外にもサイトの更新をいち早くGoogleの検索エンジン伝えてくれるプラグインがあります。

WebSub (FKA. PubSubHubbub)
WebSub (FKA. PubSubHubbub)
※FKA.とは、formerly known asの略で「以前は…として知られていた」という訳で「旧名称」や「旧」という意味です。

インストール方法

管理画面の「プラグイン」→「新規追加」から
「WebSub」で検索します。
インストール→有効化したら完了です。

WebSubの仕組み

WebSub(旧:PubSubHubbub)は、WordPressの新しい記事を検索エンジンに対して瞬時に通知する仕組みです。
Googleは近年、ロボットによるクローリングに頼らない、WebSubを利用したインデックスに取り組んでいます。

通常、GoogleのクローラーがサイトマップXMLなどを定期的に巡回し更新情報を取得します。
この仕組みではGoogleのクローラーが巡回に来るまで新しい記事は検索エンジンにインデックスされないことになってしまいます。

WebSubを利用することで、新しい記事の公開と同時に通知され、検索エンジンにインデックスされるようになります。

参考:https://the-simple.jp/wordpress-websubpubsubhubbub
https://netaone.com/wp/pubsubhubbub/
https://ja.wikipedia.org/wiki/WebSub

検索順位を調べるなら、検索順位チェックツールGRC





集客できるウェブ担当者になろう!【SEO検定】

【WordPress】httpsへのリダイレクト設定

初期状態だとhttpでのアクセスになるので、
サーバーのSSL設定などを済ませたら、WordPressの設定をhttps用に変更していきます。

管理画面の設定

管理画面から「設定」→「一般」へ進みます。
「WordPress アドレス(URL)」と「サイトアドレス(URL)」のURLを、httpからhttpsに変更します。
変更したら「変更を保存」をクリックします。

.htaccessの設定

WordPressがインストールされているディレクトリに.htaccessというファイルがあるので、こちらを編集していきます。

このサイトの場合、ダウンロードした状態は下記のようになっていました。

# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /memo/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /memo/index.php [L]
</IfModule>

# END WordPress

これにhttpsへのリダイレクト設定を追加していきますが、
記述する順序が重要になってきます。

もともと記述されているコードのに以下のコードを追記します。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

httpのURLにアクセスしてみてhttpsにリダイレクトすることを確認して
リダイレクトされていれば設定完了です。

参考:https://recooord.org/wordpress-redirect-setting/

【WordPress】管理ツールバーをカスタマイズ(既存のメニューを非表示化)

WordPressにログイン後表示される管理ツールバーをカスタマイズします。
既存のメニューを非表示化し、使いやすくします。
リンクを追加する方法はこちら

function remove_admin_bar_menu_control( $wp_admin_bar ) {
$wp_admin_bar->remove_menu( 'themes' ); // サイト名 → テーマ(ウェブサイト側)
$wp_admin_bar->remove_menu( 'customize' ); // サイト名 → カスタマイズ(ウェブサイト側)
$wp_admin_bar->remove_menu( 'comments' ); // コメント
$wp_admin_bar->remove_menu( 'widgets' ); // ウィジェット
$wp_admin_bar->remove_menu( 'menus' ); // メニュー
$wp_admin_bar->remove_menu( 'updates' ); // 更新
$wp_admin_bar->remove_menu( 'new-media' ); // 新規 → メディア
$wp_admin_bar->remove_menu( 'new-link' ); // 新規 → リンク
$wp_admin_bar->remove_menu( 'new-page' ); // 新規 → 固定ページ
$wp_admin_bar->remove_menu( 'new-user' ); // 新規 → ユーザー
$wp_admin_bar->remove_menu( 'user-info' ); // マイアカウント → プロフィール
$wp_admin_bar->remove_menu( 'edit-profile' ); // マイアカウント → プロフィール編集
$wp_admin_bar->remove_menu( 'search' ); // 検索(ウェブサイト側)
}
add_action('admin_bar_menu', 'remove_admin_bar_menu_control', 111);

参考:https://wp-labo.com/wordpress-admin-bar-menu-hidden-customize/

【WordPress】管理ツールバーにリンクを追加

WordPressでログイン後に上部に表示される
管理ツールバーにリンクを追加するカスタマイズ方法です。
既存メニューを非表示にする方法はこちら

管理ツールバーにリンクを追加

ツールバーからすぐにアクセスランキングにアクセス出来るように
functions.phpに以下のようにコードを追記することでリンクを追加することができます。

//管理ツールバーにリンク追加
function customize_admin_bar_menu($wp_admin_bar){
//親メニュー
$title = sprintf(
'<span class="ab-label">%s</span>',
'追加リンク'//親メニューラベル
);
$wp_admin_bar->add_menu(array(
'id' => 'dashboard_menu',
'meta' => array(),
'title' => $title
));
//サブメニュー
$wp_admin_bar->add_menu(array(
'parent' => 'dashboard_menu', // 親メニューID
'id' => 'dashboard_menu-plugins', // 子メニューID
'meta' => array(),
'title' => 'WordPress Popular Posts', // 子メニューラベル
'href' => home_url('/wp-admin/options-general.php?page=wordpress-popular-posts') // 子メニューURL
));
}
add_action('admin_bar_menu', 'customize_admin_bar_menu', 9999);

参考:https://nelog.jp/admin-tool-bar-custom


【WordPress】よく見られているページ・アクセスランキング(WordPress Popular Posts)

よく見られているページ・アクセスランキングなどをサイドバーなどに表示しているサイトが多いですが、表示しないまでもWordPressの管理画面上でどのページ・どの記事がよく見られているかアクセス数などが簡単に見られると便利です。

GoogleAnalyticsでも簡単に見ることは出来ますが、
記事の投稿のついでに気軽に見られると、どのような記事が良く見られているのか、今後の記事を書く上でも役に立ちます。

WordPress Popular Posts

WordPress Popular Posts

インストール方法

「プラグイン」→「新規追加」から
WordPress Popular Postsで検索をします。
インストール→有効化すると計測が始まります。(インストール前は計測されません。)

設定方法

有効化だけでも特に問題なく使えますが、
管理画面のサイドバー「設定」→「WordPress Popular Posts」から設定をして、自分のアクセスを除外することが出来ます。(ログインしている場合のみ除外)

メイン画面の「ツール」タブをクリック
「データ」の「閲覧を記録する対象者」を
「全員」から「訪問者のみ」に変更し
適用ボタンをクリックします。

アクセス数の確認方法

サイトのフロントに表示しない場合、
管理画面からアクセス数を確認するだけの場合、
サイドバー「設定」→「WordPress Popular Posts」と遷移するだけで
確認できます。

参考:https://www.itti.jp/web-design/the-best-way-to-display-popular-posts-in-wordpress/
https://lucy.ne.jp/bazubu/how-to-add-popular-posts-23487.html
https://senior-chie.net/skill/2784/

【WordPress】内部リンクによるセルフピンバックを無効化(No Self Pings)

WordPressで内部リンクを記述して投稿をすると自分のサイトから自分のサイトに対してもpingを送信します。

コメントに未承認コメントが溜まっていくため紛らわしく、この挙動を好まない場合もあります。

No Self Pings

No Self Pings

「プラグイン」→「新規追加」から
No Self Pingsで検索し、インストール→有効化します。

以上でブログ内のpingを無効化することが出来ます。
内部・外部全部のピンバック機能を停止する方法

【WordPress】Google公式のreCAPTCHAの非表示方法

WordPressに設置したreCAPTCHAのバージョン3はGoogleが公式に非表示にする方法を紹介しています。(WordPress以外も同様)

https://developers.google.com/recaptcha/docs/faq#id-like-to-hide-the-recaptcha-badge.-what-is-allowed

以下のように説明されています。

I’d like to hide the reCAPTCHA badge. What is allowed?
reCAPTCHA バッジを非表示にしたいです。何が許可されていますか?

You are allowed to hide the badge as long as you include the reCAPTCHA branding visibly in the user flow. Please include the following text:
ユーザー フローに reCAPTCHA ブランディングを目に見えるように含める限り、バッジを非表示にすることができます。次のテキストを含めてください。

以下のテキストを該当の箇所に挿入し

This site is protected by reCAPTCHA and the Google
    <a href="https://policies.google.com/privacy">Privacy Policy</a> and
    <a href="https://policies.google.com/terms">Terms of Service</a> apply.

以下のCSSを追加します。

.grecaptcha-badge { visibility: hidden; }

これでバッジは非表示になります。
このページにも設置しているので確認してみてください。
必要に応じてCSSなどでデザインを整えてください。


WEBサイトの改ざん監視なら【SiteLock(サイトロック)】

参考:https://jikorich.com/recaptcha-hidden

【WordPress】ログイン画面をreCAPTCHAで保護(Invisible reCaptcha for WordPress)

ログイン画面にreCAPTCHA(リキャプチャ)を設置し、セキュリティをアップさせます。

Invisible reCaptcha for WordPress

Invisible reCaptcha for WordPress

「プラグイン」→「新規追加」から
Invisible reCaptcha for WordPressを検索し
インストール→有効化します。

「設定」に「Invisible reCaptcha」が追加されるので
設定をしていきます。

Googleのサイトでの操作

Googleのサイトにアクセスしキーを発行していきます。(Googleアカウントが必須です)
https://www.google.com/recaptcha/admin?hl=ja

「ラベル」に分かりやすい名称をつけ(ドメインで良いと思います。)
「reCAPTCHA タイプ」で「reCAPTCHA v3:スコアに基づいてリクエストを検証します」を選択します。
「ドメイン」に設置するサイトのドメインを追加し、最後に同意して送信します。

「サイトキー」と「シークレット キー」が発行されるので、メモをしてWordPressの管理画面に戻り設定を行います。

WordPress管理画面での操作

「設定」→「Invisible reCaptcha」から
「サイト鍵」に「サイトキー」のコードを、
「秘密鍵」に「シークレット キー」のコードを入力します。

その他の設定は、
言語:Japaneses
バッジ位置:インライン
とすると良いと思います。

「変更を保存」し、設定タブ下のWordPressタブに移動します。

全ての項目にチェックすると、ログイン画面などにreCAPTCHA(リキャプチャ)が設置されバッジが表示されるようになります。(このサイトではバッジをCSSで非表示にしています。)




WEBサイトの改ざん監視なら【SiteLock(サイトロック)】

参考:https://highneeds.jp/wordpress/95/

【WordPress】ブロックエディターの便利な使い方(画像のコピペ)

ブロックエディターを便利に使うメリットもあります。

そのひとつが画像のコピペです。

クラシックエディターでは「メディアを追加」からアップロードして選択して画像を掲載していましたが、
ブロックエディターでは「コピペ」のみで画像掲載可能になりました。

Windowsの場合、画像ソフトにIrfanView
スクリーンキャプチャソフトにLightscreen Portable
インストールしておくと便利です。

IrfanViewの特徴
・ソフトが軽い(起動が早い)
・画像の部分選択が可能
・フリーソフトである

Lightscreen Portableの特徴
・インストール不要
・クリップボードに残る
・画像も保存される

など、画像をコピペで掲載するのに相性の良いソフトになります。

参考:https://keizokuma.com/image-kopipe/

【WordPress】旧エディターに戻すプラグイン(Classic Editor)

WordPress5.0から投稿画面がGutenbergと言われるブロックエディターに変わりました。

昔からのユーザーにとっては、なかなか使いづらい面も多いものです。
旧エディターに戻すことで、投稿の効率化を図ります。

Classic Editor

Classic Editor

「プラグイン」→「新規追加」で
Classic Editorで検索します。
インストールし有効化すると、投稿画面が旧エディターに切り替わります。

有効化しただけだと、全投稿画面が旧エディター(クラシックエディター)に切り替わるだけなので
今後ブロックエディターを完全に使わない場合このままでも良いですが、
ブロックエディターに切り替えながら使いたい場合は、設定変更が必要になります。
(ソースコードをそのまま表示する場合に使うHighlighting Code Blockはブロックエディターのほうが使いやすいです。)

Classic Editorの設定変更

「プラグイン」→「インストール済みプラグイン」から
プラグイン一覧画面に移動します。
Classic Editorの「設定」をクリック。
「ユーザーにエディターの切り替えを許可」を「はい」に変更し、「変更を保存」します。

これで投稿画面でエディターを切り替えられるようになりました。

参考:https://selifelog.com/blog-entry-2291.html

【WordPress】DDoS攻撃とPingback機能の無効化

WordPressで、DDoS攻撃を防止するには、Pingback機能を無効化することで防げますが、機能を停止するすることになるのでメリット・デメリットなど検討する必要性があります。
不正ログイン攻撃についてはこちら

DoS攻撃

DoS攻撃(Denial of Service attack:サービス不能攻撃)は、昔からある攻撃手法の一種です。
攻撃の目的は、サービスを妨害したり、停止させたりすることにあります。

DoS攻撃にはさまざまな手法がありますが、
対象のサイトやサーバーに対して複数のコンピューターから大量に行うものを「DDoS攻撃(Distributed Denial of Service attack)」(分散型サービス拒否攻撃)と言います。

Pingback機能

WordPressには自分自身のサイトに対する言及を第三者が行った場合、
それを通知する機能として「Pingback」という仕組みがあります。
他のブログから通知 (ピンバック・トラックバック) を受け付ける機能のことです。

この仕組みをDDos攻撃に悪用されることがあります。
この攻撃でサイトの改ざんなどはありませんが、別のサーバーやサイトに対して、知らない間に攻撃の手助けをしてしまうことがあります。

初期状態のWordPressでは、Pingback機能が有効になっているので、
運用上必要でない場合、無効化しておくことでセキュリティ度は増します。

Pingback機能の無効化

WordPressのPingback機能を悪用したDDos攻撃を防ぐには、Pingback機能を無効化することでリスクを防げます。最近はスパムのトラックバックやコメントが多いので、Pingback機能は無効化してしまって問題ない場合が多いと思います。
内部リンクのピンバック機能のみ停止する方法

Pingback機能の無効化
管理画面から「設定」→「ディスカッション」→「投稿のデフォルト設定」と進み、「他のブログからの通知 (ピンバック・トラックバック) を受け付ける」のチェックを外すと無効化されます。

すでに投稿している記事のPingback機能の無効化
管理画面から「投稿」→「投稿一覧」へ進み、
タイトルの横にあるチェックボックスを全てオン→プルダウンの「一括操作を編集」にして「適用」ボタンを押します。

次の画面右に「トラックバック/ピンバック」という欄があるので、プルダウンを「許可しない」にして「更新」ボタンを押すと無効化されます。




未知のウイルスへの対応力が違います。「ESETセキュリティソフト」

参考:https://help.sakura.ad.jp/rs/2162/
https://rgbdesign.jp/必ずやっておきたいwordpressのセキュリティ/
https://asahinablog.com/archives/2990
https://digitalnavi.net/wordpress/6938/

【WordPress】SNSシェアボタンの設置(AddToAny Share Buttons)

SNSシェアボタンを設置するプラグイン

AddToAny Share Buttons

AddToAny Share Buttons

このサイトにも使っています。
このページの本文の上下に設置しています。

SNS以外にもGメールへの送信だったり、印刷ボタンやリンクのコピー機能もあったり汎用的に使えます。

参考:https://netaone.com/wp/wordpress-sns-plugin/

【WordPress】セキュリティ対策04(wp-config.phpのアクセス権限変更)

ファイルのアクセス権限(パーミッション)をデフォルトから変更することでセキュリティ対策をします。

wp-config.phpは、データベースにログインするためのIDとパスワードが記載されているため、最も重要な設定ファイルになります。

設定内容を見られると、データベースにアクセス出来るようになり、データを削除されたり盗まれたりする可能性が高まります。

デフォルトのアクセス権限は「644」なので、所有者以外も内容を見ることが可能な状態です。

アクセス権限を「644」から「600」にし、所有者だけが読み書きできる状態に変更します。




WEBサイトの改ざん監視なら【SiteLock(サイトロック)】

参考:https://www.mubag.com/blog/wordpress-security-plugin/

【WordPress】不正ログイン攻撃(ブルートフォースアタック/辞書攻撃)

不正ログイン攻撃には、総当たり攻撃やブルートフォースアタック(Brute-force attack)と呼ばれる第3者が想定される認証情報を入力してログインできるか調べる攻撃や、辞書攻撃と言われる良く使われるパスワードを「辞書」的に登録し攻撃に利用するなどがあります。
DDoS攻撃についてはこちら

総当たり攻撃(ブルートフォースアタック)は、試行を繰り返すことでパスワードを特定する攻撃になりますが、最近のパソコンは処理スピードが早いため、パスワードが数字4桁程度の場合、数秒で突破できてしまいます。

使用する文字の種類と文字数での組み合わせパターン数は以下の通りとなります。単純な組み合わせで文字数も少ないとパターン数が意外と少ないことに気付くと思います。

使用する文字の種類 1文字の場合 4文字の場合 6文字の場合
数字のみ(0~9) 10 10,000 1,000,000
英字(大・小文字区別なし) 26 456,976 38,915,776
英字(大小区別なし)+数字 36 1,679,616 2,176,782,336

不正ログイン攻撃の流れ

WordPressの場合、以下の流れで不正ログイン攻撃が行われます。

1.ログイン用URLの特定
変更を加えていない場合、ログインURLは、wp-login.phpとなる。
SiteGuard WP Pluginで変更可能

2.管理者用ユーザIDの特定
WordPressへ特定のリクエストをすることで、存在する管理者用ユーザIDを取得することができる。
Edit Author Slugで対応可能

3.ユーザIDとパスワードを送信する
総当たり攻撃(ブルートフォースアタック)、辞書攻撃、もしくはその両方の組み合わせなどで行われます。
画像認証を追加する

4.返答されるHTTPヘッダを確認する
ユーザIDとパスワードが一致した場合、「Status 302」としてLocationヘッダにダッシュボードのURLを返します。(失敗時は「Status 200」となる。)

5.ダッシュボードへログインする
ログインした後は任意のコードを記述したり、任意のファイルを設置したり、様々な悪意ある改ざんが自由に出来てしまいます。

STEP5も、プラグインなど余分なファイルを削除・整理しておくことで改ざん後の特定が可能になったり、被害を最小限にすることが出来ます。

不正ログイン攻撃を防ぐには

逆に考えると、これらのSTEP4までのどこかのステップを防ぐことで不正ログイン攻撃を未然に防ぐことが可能になります。

複数対策することで、よりセキュリティ度は向上しますが、普段の運用に差し支えないレベルでの対策が望ましいので、各自でどこまで対応するかなど検討が必要かもしれません。

私の個人的な優先順は…

管理者用ユーザID→Edit Author Slugで対応可能
 ↓
ユーザIDとパスワード→画像認証を追加
 ↓
ログイン用URL→SiteGuard WP Pluginで変更

最後のログインURLの変更はAWSでは出来ないため、設定に汎用性を持たせるため優先順位を下げています。




WEBサイトの改ざん監視なら【SiteLock(サイトロック)】

参考:https://knowledge.sakura.ad.jp/4248/
https://ja.wikipedia.org/wiki/総当たり攻撃
https://ja.wikipedia.org/wiki/辞書攻撃

【WordPress】投稿で定型文を挿入するのに役立つプラグイン(AddQuicktag)

投稿画面などで定型文を挿入するのに便利なプラグイン

AddQuicktag

AddQuicktag

インストール後、有効化し
「設定」→「AddQuicktag」と進み、
「ボタン名」と「ラベル名」を入力
(投稿画面ではボタン化されるので分かりやすい短めの文字が良い)
 ↓
「開始タグ」に挿入したい定型文を登録します。
横のチェックボタンは「post」のみ入れておけば、通常の記事投稿には充分です。

参考:https://wp-sensei.net/2047/

【WordPress】全角スペースを含んだ検索のバグ修正

これも色々調べていて初めて知ったのでメモも兼ねて…

WordPressの検索で全角スペースを入れて検索すると
検索0件になるバグがあります。(全角は全て文字と認識しているため、全角スペース前後を含む一語と誤認してしまうようです。)

これを防ぐため、下記のコードをテンプレートファイル内にある
functions.phpの一番最後に追記します。

これで全角スペースを半角スペースに置換して検索してくれます。

//全角スペースを含んだ検索のバグ修正
function empty_search( $query ) {
    if ( $query->is_main_query() && $query->is_search && ! $query->is_admin ) {
    $s = $query->get( 's' );
    $s = str_replace(' ',' ', $s );
    $query->set( 's', $s );
    }
}
add_action( 'pre_get_posts', 'empty_search' );

参考:https://sologaku.com/wordpress/site-search-support-emspace/
https://yululy.com/ワードプレスの全角空白で検索結果がおかしい件/

【WordPress】セキュリティ対策03(SiteGuard WP Plugin)

このサイトには現状使っていませんが、
仕事でWordPressのサイトを構築する際に必須で使用しています。

SiteGuard WP Plugin

SiteGuard WP Plugin

サイトへの不正アクセスのほとんどの攻撃は海外からの場合が多いため、
管理画面へのログインの際、日本語の画像認証でログインするようにしています。

SiteGuard WP Plugin

ログイン画面のURLを変更する機能もありますが、
AWSサーバーでは使えないなどもあるので、これは使用しないのを基本にしたほうが汎用的な設定に出来るかもしれません。




WEBサイトの改ざん監視なら【SiteLock(サイトロック)】

【WordPress】セキュリティ対策02(プラグインの削除)

WordPressのセキュリティ対策のひとつに「余分なプラグインを削除する」というものがあります。

ただ、最初からインストールされているプラグインはなかなか削除しにくいものです。

Hello Dollyは世界ではじめて作られたWordPressのプラグインとして最初からインストールされていますが、削除してしまっても特に問題ないため削除してしまいましょう。

「プラグイン」→「インストール済みプラグイン」と進み
Hello Dollyの「削除」をクリックします。

これで余分なプラグインをひとつ削除でき、少しだけセキュリティが向上しました。




WEBサイトの改ざん監視なら【SiteLock(サイトロック)】

参考:https://sologaku.com/wordpress/hello-dolly/

【WordPress】セキュリティ対策01(Edit Author Slug)

これは初めて知ったのでメモも兼ねて…

WordPressの初期設定では/?author=1にアクセスすると管理者のIDが分かってしまうため、セキュリティ上、弱い部分になります。
(リダイレクトでURLに管理者IDが出てしまう。)

Edit Author Slugというプラグインを使うと簡単にセキュリティをアップ出来ます。

Edit Author Slug

Edit Author Slug

まず、WordPressの管理画面上で
「プラグイン」→「新規追加」と進みEdit Author Slugで検索をします。
インストール→有効化し、次に

「ユーザー」→「ユーザー一覧」に進みます。
「管理者」のIDをクリックし、プロフィールの一番下までスクロールし、
「投稿者スラッグ」を初期設定から変更します。

これだけだとユーザーID=表示名になっている場合が多いので
同じページの中段…「ニックネーム (必須)」と「ブログ上の表示名」も変更すると完璧です。

このサイトの動作を確認してみてください。
https://www.uki213.com/memo/?author=1
(リダイレクトされてもIDではなく設定したスラッグの「1」がURLに出ます。)

設定内容としては、
「投稿者スラッグ」を上から二番目の数字(今回の場合「1」)
「ニックネーム (必須)」と「ブログ上の表示名」もそれに合わせて「1」に変更しています。

管理者を複数設定している場合は同様の設定変更を行っていきます。
(管理者は必要最低限にしたほうがセキュリティ対策としても良いかもしれません。)




WEBサイトの改ざん監視なら【SiteLock(サイトロック)】

参考:https://sologaku.com/wordpress/redirect-security/

【WordPress】カテゴリーを自由に並び替えるプラグイン(Category Order and Taxonomy Terms Order)

このサイトのサイド(PC)やハンバーガーメニュー(SP)にも表示されているカテゴリー
これの並び順を任意に変えることが出来るプラグインがあります。

Category Order and Taxonomy Terms Order

Category Order and Taxonomy Terms Order

このプラグインをインストールして有効化して、
管理画面の「投稿」→「タクソノミーの並び順」で自由に変更することが出来ます。

表(おもて)の表示も変更されますが、裏の管理画面の投稿画面のカテゴリーの表示順も変更され
投稿時に見やすくなります。

参考:https://www.infact1.co.jp/staff_blog/webmarketing/14991/

【WordPress】記事詳細ページに関連記事一覧のリンクを設置

記事詳細ページに関連記事一覧のリンクを設置する方法。

下記のコードで同じカテゴリーの記事を呼び出します。

<?php
  $categories = get_the_category();
  $category_ID = array();
  foreach($categories as $category):
    array_push( $category_ID, $category -> cat_ID);
  endforeach ;
  $args = array(
    'post__not_in' => array($post -> ID),
    'posts_per_page'=> 3,
    'category__in' => $category_ID,
    'orderby' => 'rand',
  );
  $query = new WP_Query($args); 
?>

posts_per_pageが記事の取得件数になります。「3」を「5」に変更すると最大5件表示されます。

記事のカテゴリーが複数選択されている場合、「AもしくはB」で取得されます。(AとB両方)

'orderby' => 'rand','orderby' => 'date','order' => 'DESC',に変更すると新着順、'orderby' => 'date','order' => 'ASC',にすると古い順になります。

orderbyのパラメータは、その他にも以下のようなオプションがあります。

date 投稿日時による並び替え(デフォルト)
title タイトルによる並び替え
name スラッグによる並び替え
modified 最終更新日時による並び替え
parent 親投稿のIDによる並び替え
rand ランダムに並び替え
comment_count コメント数による並び替え
menu_order メニュー順による並び替え(ページの場合のみ)
meta_value カスタムフィールドの値による並び替え
meta_value_num カスタムフィールドの数値値による並び替え

下記のコードで関連記事一覧のリンクを書き出します。(設置したい場所に、表示したいHTMLで設置する。)

<?php if( $query -> have_posts() ): while ($query -> have_posts()): $query -> the_post(); ?>
  <a href="<?php the_permalink() ?>">
    <?php the_title(); ?>
  </a>
<?php endwhile; else:?>
  <p>関連記事はありません</p>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

実際にこのページにも設置しているのでご確認ください。(HTMLやCSSは調整しています。)

参考:https://tamatuf.net/wordpress/wordpress-category-in-article/


【WordPress】ソースコードを本文にそのまま挿入する方法(Highlighting Code Block)

ソースコードを本文にそのまま挿入したい場合
プラグインの「Highlighting Code Block」を
WordPressにインストールします。

Highlighting Code Block

Highlighting Code Block

ブロックエディターで使用するのが使いやすい。
(個人的には…普段はクラシックエディターが使いやすい。)

投稿画面のブロック追加から「Highlighting Code Block」を選択して
表示された枠(ブロック)にソースコードをそのまま入力します。

こちらのページで実際に使っているので
表示のされ方など参考にしてみてください。

参考:https://webnetamemo.com/coding/wordpress/2021040610576

【WordPress】AWS LightrailサーバーでのWP CSV Exporterプラグイン

AWS LightrailサーバーでWordPressのプラグイン
WP CSV Exporterを使おうとすると、そのままのインストールでは
500エラーで動作しません。

プラグインフォルダ内(wp-content→plugins)の
wp-csv-exporter→admin→download.php

2行目の
require_once '../../../../wp-load.php';

require_once '/opt/bitnami/wordpress/wp-load.php';
に修正します。

AWSに限らず、
wp-load.phpの場所がデフォルトと異なる場合、
修正が必要になります。
(AWSの場合、正確にはwp-contentの位置がデフォルトから変更されていると言えるかも。)