WordPressテーマ「twentyeleven」の子テーマに設置したfunction.phpで
任意の固定ページテンプレート pages-sample.phpを適用したときのみ
twentyelevenのデフォルトテーマと、テーマカスタマイザーが生成するcssを読み込まない設定にしたいと思っています。
下記のように記述したところ、条件分岐自体はできたのですが、
「Fatal error: Cannot redeclare my_delete_plugin_files() (previously declared in /usr/home/../functions.php:24) in /usr/home/../functions.php on line 24」が発生して
pages-sample.phpを適用したページのみ表示されません。
line 24は「function my_delete_plugin_files() {wp_dequeue_style('twentyeleven-block-style');}」に該当します。
function switch_twentyeleven_style() { if( !is_page_template('pages-sample.php')){ // pages-sample.phpでない場合はデフォルトテンプレートを読み込む wp_enqueue_style( 'twentyeleven_style', get_stylesheet_directory_uri() . '/style.css' ); } else { // pages-sample.phpの場合 // wp_headで生成されるcssを無効にする function my_delete_plugin_files() {wp_dequeue_style('twentyeleven-block-style');} add_action( 'wp_enqueue_scripts', 'my_delete_plugin_files' ); // テーマカスタマイザーが生成するcssを無効にする function my_remove_custom_background() {remove_theme_support( 'custom-background');} add_action( 'after_setup_theme', 'my_remove_custom_background', 11); } } add_action('wp_enqueue_scripts', 'switch_twentyeleven_style');
二重定義が問題なのかと思い
if (!function_exists('my_delete_plugin_files')) { function my_delete_plugin_files() {wp_dequeue_style('twentyeleven-block-style');} add_action( 'wp_enqueue_scripts', 'my_delete_plugin_files' ); } if (!function_exists('my_remove_custom_background')) { function my_remove_custom_background() {remove_theme_support( 'custom-background');} add_action( 'after_setup_theme', 'my_remove_custom_background', 11); }
というように記述してみたのですが、
エラーは出なくなったものの、肝心のコード自体がpages-sample.phpで適用されません。
条件分岐を取り除いて
add_action( 'wp_enqueue_scripts', 'my_delete_plugin_files' ); function my_delete_plugin_files() {wp_dequeue_style('twentyeleven-block-style');} add_action( 'after_setup_theme', 'my_remove_custom_background', 11); function my_remove_custom_background() {remove_theme_support( 'custom-background');}
のみをfunction.phpに記述すると「Fatal error: Cannot redeclare」は発生しませんが、全体に適用されてしまいます。
pages-sample.php を適用した固定ページのみに上記のコードを反映させたい場合、どのように記述すればよいかご教授いただけないでしょうか。
どうぞよろしくおねがいします。
回答2件
あなたの回答
tips
プレビュー