web-dev-qa-db-ja.com

ループ内の特定のタグのみを表示する

自分のサイトでループを変更してサイトのURLを確認し、表示するタグがわかるようにします。

たとえば、投稿に「golfclubs」というタグを付けた場合は、次のようにします。

if ($_SERVER['HTTP_Host']=="www.golfclubreviewdomain.com"){
        // code here to display only the "golfclubs" tagged posts
}

上記のコードが私の欲しいものに対して正しくない場合は、現在のドメインがそれであるかどうかを確認したいだけです http://www.golfclubreviewdomain.com 、もしそうなら、 "golfclubs"とタグ付けされた投稿を表示する。この変更はすべてのテーマで機能するようにしたいので、可能であればホームページやカテゴリなどに影響を与えるように、できるだけ高いレベルで変更したいと思います。ワードプレスをアップグレードしたときに更新されない?

最後の質問ですが、2種類以上のタグ付き投稿を表示するにはどうすればよいですか。 "golfclubs"や "general"のようなものでしょうか。

2
Joe Bobby
  • 必須プラグインを作成してください。
  • <docroot>/wp-content/mu-plugins/selective-posts.phpに入れてください
  • 以下は、特定の投稿をフィルタリングするためのselective-posts.phpのコードです。

    function golfclubs_tag( $query ) {
        if ( $_SERVER['HTTP_Host'] === 'www.golfclubreviewdomain.com' ) {
            $query->set( 'tag', 'golfclubs' );
        }
    }
    add_action( 'pre_get_posts', 'golfclubs_tag' );
    

このようにして、特定のドメインについてサイト全体のすべてのクエリをフィルタリングし、特定のタグを使用して投稿をフィルタリングします。

クエリに別のタグを追加したい場合は、上記のコードを次のように編集できます。

    function golfclubs_tag( $query ) {
        if ( $_SERVER['HTTP_Host'] === 'www.golfclubreviewdomain.com' ) {
            $query->set( 'tag', 'golfclubs,general' );
        }
    }
    add_action( 'pre_get_posts', 'golfclubs_tag' );
3
Udit Desai