WordPressで出ていたPHPのWarningとErrorの解消
たまにはチェックしないとダメっすね。
The get_mostpopular() has been deprecated since 2.0.3.
PHP Warning: The get_mostpopular() has been deprecated since 2.0.3. Please use wpp_get_mostpopular() instead. in /var/www/wp-content/plugins/wordpress-popular-posts/wordpress-popular-posts.php on line 3231
Wordpress Popular Postsプラグインが出している。
テーマのどこかで、
<?php get_mostpopular("..."); ?>
と書いているのを、
<?php wpp_get_mostpopular("..."); ?>
に書き換えればよい。
Unknown: Input variables exceeded 1000.
PHP Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0
GETパラメーターの長さが1000を超えているということ。
管理画面どこだったかで一括処理をGETでやっててパラメーターが鬼増えるところがあったので、そこで出たものだと思われる。
基本的に桁数を増やすのは悪手なのでそのまま。
しかしログ出力を消す事はできないのかなぁ……
Call to undefined function get_header()
PHP Fatal error: Call to undefined function get_header() in /var/www/wp-content/themes/mytheme/index.php on line 1
テーマファイルの.php
に直接アクセスされると出る。
Nginxで/wp-content/themes/以下の*.phpは直アクセス禁止にしたほうがいい。
location ~* /wp-content/themes/.*\.php { deny all; }
Call to undefined function add_action()
PHP Fatal error: Call to undefined function add_action() in /var/www/wp-includes/admin-bar.php on line 48
これもwp-includes/admin-bar.php
に直接アクセスされると出るので、直アクセス禁止にしたほうがいい。
location ~* /wp-includes/.*\.php { deny all; }
wp-includes配下は直接呼ばれることが無いので全禁止でよい(はず)。
しかし、WordPressの公式のNginx設定にはこの記述は無いんだよなぁ……
エラーで落ちるからよしとしているんだろうけど、それでいいのか?と思う。