doganteさん、こんにちは。
念のため、現在検証中のクラス化する前のコード(jim912さんの上記のご指摘を適用後のコード)を以下へ張っておきます(動作しないコードです。)。
またまたすみません。
function set_home_page_on_front( $pre ) {
return $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE post_title = 'ホーム' AND post_type = 'page'" );
}
に$wpdbのグローバル宣言が抜けていました。
function set_home_page_on_front( $pre ) {
global $wpdb;
return $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE post_title = 'ホーム' AND post_type = 'page'" );
}
それから、画面が真っ白になってしまって何もできないようでは、後々大変ですので、開発時や不具合が発生した場合はエラーを表示させるようにすると良いです。
表示させる方法としては、.htaccessに
php_flag display_errors On
を記述するのが簡単かと思いますが、サーバによっては.htaccessでの変更を禁止している場合があります。このあたりはサーバのマニュアルを良く読んで対応方法を確認しておいてください。
wp_page_menuについては、show_home=1が指定されると、それがページでなくとも出力する仕様になっていますね。これについては、ソースを見ればわかるかと思います。wp-includes/post-template.php line808-(ver2.8.4)