サイト閲覧にIP制限を掛けている場合、WordPressの自動バックグラウンド更新が動かない

IP制限を掛けたWordpressサイトの、自動バックグラウンド更新が動かなかったので調べてみました。

WordPressの自動バックグラウンド更新は、wp_cronでチェックしているようです。
バックグラウンドで更新するため、/wp-cron.phpへHTTPリクエストを投げ、実際の更新処理が動く。という仕組みみたい。

しかし、サイトにアクセス制限を掛けていたため、/wp-cron.phpへのHTTPリクエストが弾かれていました。

自サーバからアクセス時のIPアドレスを許可してあげましょう。
/etc/hostsでローカルIPに名前解決している場合はそのIPを、してない場合はWEBサーバーのグローバルIPを許可します。

※自ドメインは許可、という設定にしてもいいかも。

別プロセス(バックグラウンド)で処理するために、自サイトにHTTPリクエストをしてたのですね。
盲点でした。

WordPressの記事更新で「ビジュアル」が表示されない場合

こんにちは。システム担当の境です。

WordPressで構築したサイトで、編集の際に「ビジュアル」が表示できず、
HTMLがそのまま表示されるという現象が起きました。
サーバーログを確認すると、

PHP Fatal error:  Allowed memory size of #### bytes exhausted (tried to allocate #### bytes) in /filepath/edit.php

PHPに割当てたメモリが足りず、Fatal errorが発生しています。
対象のページは記事ボリュームが大きく、更新も頻繁だったためにリビジョンも多く、メモリが足りなくなっていました。

対策としては、PHPに割当てるメモリ数を大きくすればOKです。

# vi /etc/php.ini
memory_limit = 512M # この数字を調整する

設定がいじれない場合は過去のリビジョンを削除すれば直りますが、
リビジョンは更新のたびに溜まるので、再発の可能性が高いです。
保存されるリビジョン数に制限を掛けられるプラグイン等で対応すると良いでしょう。
※いろいろなプラグインがありますよ!

ショートコードの登録

WordPressでページを作成していると、ページによってはデータベースから自動出力したい場合などがあります。
ページテンプレートを追加する方法もありますが、ショートコードの登録がとても便利です。
ページ内の任意の場所に、あらかじめ設定した関数を呼び出すことが出来ます。

fanctions.php内に、ショートコード名および処理内容を記載します。

function shortcode_callback($atts){
    extract(shortcode_atts(array(
        'type' => '初期値', // 引数の初期値を設定
    ), $atts));
    処理
    return $type;
}
add_shortcode('shortcode_name', 'shortcode_callback');

記事内に、登録したショートコードを記載します。

[shortcode_name type=abc]

ショートコード以外の部分を、記事として自由に改変できるメリットがあります。

metaタグからバージョン情報を削除

WordPressで構築したサイトには、metaタグ内にバージョン情報が記載されます。
そのバージョンの脆弱性をつく攻撃をされる可能性がある為、セキュリティ的によろしくありません。

下記をfunctions.phpに追記することで、非表示にすることができます。

remove_action('wp_head','wp_generator');