サポート » 使い方全般 » 固定ページに設定したタグをタグ別アーカイブやタグクラウドで利用でき

  • 解決済 pyonko

    (@pyonko)


    よろしくお願いします。
    function.phpにおいて、

    function add_tag_to_page() {
        register_taxonomy_for_object_type('post_tag', 'page'); }
    add_action('init', 'add_tag_to_page');

    を加えて、固定ページでタグを登録しています。
    しかしながら、タグ別アーカイブには、この固定ページはリストさらません。
    また、タグクラウドで当該タグをクリックしても404Notfound状態になります。
    (タグクラウドは、wp_tag_cloud()を使っています。)

    投稿記事のタグについては正常に動作し、タグ別アーカイブ、タグクラウド共に
    きちんと表示されます。

    以上ですが、どうかよろしくお願い致します。

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

    (@jim912)

    pyonkoさん、こんにちは。

    pre_get_postsフックで、tagアーカイブの場合は、post_typeをpostとpageの配列として指定すれば良いのではと思います。

    トピック投稿者 pyonko

    (@pyonko)

    jim912さま
    アドバイス、ありがとうございます。初心者でなかなかわかりません^^
    loop-tag.php
    などを作って、その中に
    add_action('pre_get_posts', 'post_type=post,page');
    などを追加すればよいのでしょうか?
    基本的なことをお聞きするようで申し訳りません。

    トピック投稿者 pyonko

    (@pyonko)

    pyonkoです。
    ひとつ言い忘れました。
    前提として、twentytenの子テーマを使っております。

    モデレーター jim912

    (@jim912)

    pyonkoさん、こんにちは。

    全然基本的なことじゃなくて、かなり難しい部類に入る内容なので、お気にせず。
    pre_get_postsでフックする関数では、WP_Queryのインスタンスが参照渡しで利用できるので、このインスタンスのquery_varsというプロパティ(変数)にpost と page を指定し、pageも含めて記事を取得できるように変更します。

    function add_page_to_tag_archive( $obj ) {
    	if ( is_tag() ) {
    		$obj->query_vars['post_type'] = array( 'post', 'page' );
    	}
    }
    add_action( 'pre_get_posts', 'add_page_to_tag_archive' );

    あと、質問を投稿いただいているカテゴリーが適切ではないので、今後ご注意くださいね。

    トピック投稿者 pyonko

    (@pyonko)

    jim912さま
    pyonkoです。おはようございます。
    的確なアドバイスにより、上記をfunctions.phpに挿入して、たちどころに解決しました!!素晴らしい。。。
    解説も初心者の私にもよく理解でき、今後の為になる内容です。

    ありがとうございました。
    最初に質問投稿した際に、確か「tag,tag別アーカイブ,tagcloud」などとして送信してしまいました。「使い方全般」とすべきでした。

    今後ともよろしくお願い致します。ありがとうございました。

    モデレーター Naoko Takano

    (@nao)

    トピックを「使い方全般」に移動済みです。

    「管理者に連絡」タグをつけてくださった方、ありがとうございました。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「固定ページに設定したタグをタグ別アーカイブやタグクラウドで利用でき」には新たに返信することはできません。