ブログ運営

WordPressテーマJINがインストールできない原因が判明

ワードプレスに関する記事

WordPressテーマJINを適応すると管理画面が真っ白になる(通称「ホワイトアウト」)サイトがあるのですが、その原因がわかりました。
詳細はWordPressテーマ「JIN」がインストールできない場合の対処方法を参照してください。

これを解決するにはどんなエラーが発生しているのか表示させてエラーを解析しました。
エラーの解析方法はWordPressのデバッグモードを有効にする方法を参照してください。

WordPressテーマJINがインストールできない原因

WordPressテーマJINがインストールできない原因は導入しているプラグイン「Code Snippets」と干渉しているようです。
以下が画面に出力されたエラーメッセージです。

Fatal error: Cannot redeclare posts_columns_id() (previously declared in /home/xxx/public_html/xxxxx.net/wp-content/plugins/code-snippets/php/snippet-ops.php(356) : eval()’d code:5) in /home/xxx/public_html/xxxxx.net/wp-content/themes/jin/functions.php on line 803

どうやら「Code Snippets」を利用しているコードでJINの何かと干渉してしまっているようですね。

該当のサイトでは管理画面で

  1. 投稿一覧に記事の更新日時を出力する
  2. 投稿一覧に記事IDを表示する
  3. ボタンをCSSでキラッと光らせる

という3つのコードを追加して「functions.php」を編集する代わりに呼び出しています。

この中の「投稿一覧に記事IDを表示する」を停止するとJINのライブプレビューが見れるようになりました。
ちなみにコードは

add_filter('manage_posts_columns', 'posts_columns_id', 5);
add_action('manage_posts_custom_column', 'posts_custom_id_columns', 5, 2);
add_filter('manage_pages_columns', 'posts_columns_id', 5);
add_action('manage_pages_custom_column', 'posts_custom_id_columns', 5, 2);
function posts_columns_id($defaults){
    $defaults['wps_post_id'] = __('ID');
    return $defaults;
}
function posts_custom_id_columns($column_name, $id){
    if($column_name === 'wps_post_id'){
        echo $id;
    }
}

で、管理画面で投稿一覧に記事のIDを追加表示するコードです。

なにが嫌なのかいまいちわかりませんが、管理画面の投稿一覧でIDが見れなくなるだけなので、一旦このコードを停止して様子見ます。

まとめ

WordPressテーマのJIN、気に入っているので使い込みたいのですが、内部記事へのブログカードができなかったり、ちょっとずつ私のサイトと合わない様子・・・なんも悪いことしてないのに・・・。
でも今回の原因はJINにあるわけではなく、私が設定しているコードが悪さしているようなので、ちょっと安心です。

以上、「WordPressテーマJINがインストールできない原因が判明」でした。