質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

698閲覧

Wordpressで条件分岐がうまく動作せずその解決策

mi2525mi2525

総合スコア6

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/12/14 14:18

編集2017/12/16 18:39

###前提・実現したいこと
Wordpressで記事ページとそれ以外で読み込むCSSを条件分岐したい。
具体的には記事ページのh2の装飾です。
記事ページには「article.css」そのほかページには「stylesheet.css」を読み込ませたい

###発生している問題・エラーメッセージ

特になし

###該当のソースコード

<?php if( is_single() ) : ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/article.css" type="text/css" /> <?php else: ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/style.css" type="text/css" /> <?php endif; ?>

###試したこと
上記のコードをいくつかの箇所に挿入し試しましたが動作しませんでした。
また、wp_enqueue_scriptsにアクションフックを追加する形でやろうと調べて下記を試しましたがHTTP ERROR 500が出てしまいました。

function register_style() { wp_register_style( 'style', get_bloginfo( 'template_directory' ) . '/css/style.css' ); wp_register_style( 'article', get_bloginfo( 'template_directory' ) . '/css/article.css' ); } function add_stylesheet() { register_style(); wp_enqueue_style( 'style' ); if ( is_single() ) { wp_enqueue_style( 'article' ); elseif ( is_page( array('style') ) ) { wp_enqueue_style( 'style' ); } } add_action( 'wp_print_styles', 'add_stylesheet' );

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/12/16 18:26

ソースコードや質問への追記は質問文に記載してください。
退会済みユーザー

退会済みユーザー

2017/12/16 18:30

また、「動作せず」の状況も具体的な記述をお願いします。「以下のエラーが表示される」「エラーにはならないが○○になる」など。
misato_3310

2017/12/16 19:49

そのほかページには「stylesheet.css」を読み込ませたい とありますが、その下のソースでは<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/style.css" type="text/css" />となっていますが、ここの間違いというのはないですか?
guest

回答1

0

また、wp_enqueue_scriptsにアクションフックを追加する形でやろうと調べて下記を試しましたがHTTP ERROR 500が出てしまいました。

500エラーはPHPの文法エラーによるものです。
以下を参考に修正して、試してください
(コード内のコメントは適宜削除したうえで動かしてください)

PHP

1 2function register_style() 3{ 4 wp_register_style( 'style', get_bloginfo( 'template_directory' ) . '/css/style.css' ); 5 wp_register_style( 'article', get_bloginfo( 'template_directory' ) . '/css/article.css' ); 6} 7 8function add_stylesheet() 9{ 10 register_style(); 11 // wp_enqueue_style( 'style' ); ←不要 12 if ( is_single() ) // 記事ページには「article.css」 13 { 14 wp_enqueue_style( 'article' ); 15 } // ←この括弧閉じが抜けていた 16 // elseif ( is_page( array('style') ) ) ←「そのほかのページ」なので条件不要 17 else // そのほかページには「stylesheet.css」 18 { 19 wp_enqueue_style( 'style' ); 20 } 21} 22add_action( 'wp_print_styles', 'add_stylesheet' );

追記
https://codex.wordpress.org/Plugin_API/Action_Reference/wp_print_styles

Since WordPress 3.3 wp_print_styles should not be used to enqueue styles or scripts.

上記のコードでひとまず動くかも知れませんが、wp_enqueue_scriptsアクションフックを使うかたちに修正することをおすすめします。

PHP

1add_action( 'wp_enqueue_scripts', 'add_stylesheet' );

投稿2017/12/17 03:40

編集2017/12/17 03:47
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問