サポート » 使い方全般 » tagcloudからジャンプするページが生成される仕組み

  • 解決済 pyonko

    (@pyonko)


    よろしくお願いします。
     タグクラウドをクリックすると、/tag/***というurlにリンクしていきますが、このページはどのようなテンプレートで出力されるのでしょうか?

     テンプレート階層で出力されるものと思っているのですが、だとするとどうしても理解できない事象に遭遇します。ある固定ページの作成において、ページ作成画面のカスタムフィールドから(あるプラグインを使って)ヘッダー要素内にjavascriptやcssを挿入しました。このページにtagも設定しました。
     そして、サイト内の他のページで表示しているtagcloudから、先のタグをクリックした時に表示される/tag/***(「***」はクリックしたタグ)のページが「タグ別アーカイブ」と思っているのですが、このソースを見てみると、当該タグを設定したページ(投稿、固定ページ)のうち、先の一つの固定ページで設定したjavascriptやcssが読み込まれていました。
     そのため、現象としては、アーカイブには想定していないcssが効いた結果、デザインが崩れるということが起きました。同様に、あっる固定ページへの効果を想定したjavascriptが効いたことによる不要な効果が表れました。

     ある固定ページの表示の際だけにheaderで読み込まれるように設定したjsやcssが、アーカイブのだけにheaderに読み込まれるのは当たり前、と考えたらよいのでしょうか?

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • モデレーター jim912

    (@jim912)

    pyonkoさん、こんにちは。

    tagやcategory、年月アーカイブといった一覧ページでは、ループ開始前でも最初の記事のデータが$postに入っていたりします。

    pyonkoさんの場合は、ページにもタグ付けをしていらっしゃるはずですので、今回の現象は、一番最初に表示されるものが、カスタムフィールドに入力のあるページなのでしょう。

    ヘッダーにjsやcssを出力させているプラグインが何かはわかりませんが、条件分岐タグのis_singularがtrueとなる場合のみ、出力させるようにすれば解決します。

    トピック投稿者 pyonko

    (@pyonko)

    jim912さま
    昨晩はアドバイスをありがとうございました。
    プラグインの最後の2行が、

    add_action('wp_head','meta_js_css');
    add_shortcode('printmeta','printmeta');

    となっており、上の方にfunctionとしてmeta_js_cssとprintmetaの二つの関数が定義されています。出力部分はこの2行と想定して、

    if(is_singular()){
    add_action('wp_head','meta_js_css');
    add_shortcode('printmeta','printmeta');
    }

    としたところ、カスタムフィールドでjs,cssを挿入した固定ページにもmetaタグが挿入されなくなります。add_actionの部分だけを条件分岐にかけても同様でした。勘違いしていますでしょうか?

    トピック投稿者 pyonko

    (@pyonko)

    書き忘れましたが、上記のように変更すると、確かに、タグ別アーカイブで、1固定ページに挿入したcss,jsが読み込まれることはなくなりました。当該固定ページでも読み込まれなかったのが何故なのか、恥ずかしながら解りません。

    モデレーター jim912

    (@jim912)

    add_actionを行っているタイミングが早く、is_singularの判別が効かないのでしょう。

    is_singleなどの条件分岐が可能になるタイミングは、

    WordPressの実行フローを視覚化してみる

    におけるところの、アクセスURLを元にクエリー条件を設定が行われた後になります。

    meta_js_css関数の中でechoしている箇所をis_singularで分岐させてあげれば良いかと思います。

    トピック投稿者 pyonko

    (@pyonko)

    jim912さま
    コメントありがとうございます。今後も大変参考になりそうなページをご紹介いただき恐縮です。wp-blog-header.phpの中にmeta_js_css関数があるのかと点検してみましたが、ありません。wp-settings.php,template-loader.phpなどのコアファイル,それにfunctions.php(親、子)にも見つからないのですが、どのファイルに含まれているのでしょうか?

    トピック投稿者 pyonko

    (@pyonko)

    jim912さま
    昨日はうっかりし、大変お見苦しい問い合わせをしてしまいました。
    アドバイスどおり実施し、解決いたしました。
    また、よろしくお願いします。
    ありがとうございました。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「tagcloudからジャンプするページが生成される仕組み」には新たに返信することはできません。