WordPress ブログのホームページで特定のカテゴリの記事を除外する方法

WordPress ブログのホームページで特定のカテゴリの記事を除外する方法

今日、ある WordPress ブロガーが「WordPress ブログのホームページから特定のカテゴリの記事を除外するにはどうすればいいですか?」と質問しているのを見ました。ユーザーがこれを行いたい理由はさまざまです。ホームページに日常生活に関する記事ではなく、ニュース記事だけを表示したい場合もあるでしょう。

これを行うには、ループ内で記事を呼び出す関数を変更する必要があります。デフォルトの WordPress テーマ Twenty Ten と Twenty Eleven は、the_post() 関数を使用してすべてのブログ投稿を呼び出します。

<?php while ( have_posts() ) : the_post(); ?>

the_post() 関数は WP_Query を使用します。 WP_Query 関数自体を使用して、どの記事を呼び出すか、またはどのアーカイブ、カテゴリ、および時間の記事をホームページに表示するかをカスタマイズできます。

さらに、query_posts 関数を使用してループを制御することもできます。このアプローチは、ループをまったく変更しないため、間違いなく最善です。ただし、両方の方法を説明しますので、自分に合った方法を選択してください。

WP_Query関数の使用

ホームページの外観を変更したい場合は、テーマの index.php ファイルを編集する必要があります。ほとんどのテーマでは、カテゴリ、日付、タグの表示ページとして archive.php ファイルを使用しているため、アーカイブ ページを変更する場合は、archive.php ファイルを変更するだけです。一部のテーマには特別な category.php、date.php、tag.php テンプレートがあるため、対応するものを変更するだけです。

ほとんどのテーマ ファイルは、「ループの開始」でループを開始します。たとえば、Twenty Eleven テーマでは次のようになります。

<?php /* ループを開始します */ ?>
<?php while ( have_posts() ) : the_post(); ?>

これを次の関数に置き換える必要があります。

// クエリ
$query = 新しい WP_Query( $args );

// ループ
$query->have_posts() を実行した後、 $query->the_post() を実行します。

ループで表示される投稿を制御するには、WP_Queryでパラメータを定義する必要があります。つまり、

$query = 新しい WP_Query( $args );。

現在 5 つのパラメータがあり、最もよく使用されるのは cat と category_name です。

テクノロジー カテゴリを表示する場合、そのカテゴリ ID が 1 であれば、cat パラメータを使用できます。

$query = 新しい WP_Query( 'cat=1' );

または、category_name パラメータを使用して同じ効果を実現することもできます。

$query = 新しい WP_Query( 'category_name=tech' );

さらにカテゴリを追加する場合は、カンマで区切る必要があります。

$query = 新しい WP_Query( 'cat=1,7,121' );

または

$query = new WP_Query( 'category_name=ニュース、レビュー、チュートリアル' );

特定のカテゴリ内のすべての記事を除外するには、カテゴリ ID の前にマイナス記号を追加します。カテゴリを除外するために category_name パラメータを使用することはできないことに注意してください。

$query = 新しい WP_Query( 'cat=-1' );

前述のように、5 つのパラメーターがあり、そのうちの 2 つ、cat と category_name について説明しました。どちらも、記事のリストに特定のカテゴリを含めたり除外したりします。

他の 3 つのパラメータは、category_and、category_in、category_not_in です。

Category_and は複数のカテゴリの記事を表示します:

$query = 新しい WP_Query( 配列( 'category__and' => 配列( 1, 7 ) ) );

category_in は or 関数です:

$query = 新しい WP_Query( 配列( 'category__in' => 配列( 7, 127 ) ) );

複数のカテゴリを除外するには:

$query = 新しい WP_Query( 配列( 'category__not_in' => 配列( 2, 6 ) ) );

WP Query は非常に柔軟な機能です。カテゴリーはパラメータの 1 つに過ぎず、以下も使用できます。

著者パラメータ – 特定の著者または複数の著者による記事のリストを表示するか、または著者を除外します。

タグ パラメータ – 特定のタグが付いた投稿を表示または除外します。

分類パラメータ – 1 つ以上のカスタム分類の投稿のリストを表示します。 。

投稿とページのパラメータ – ID またはページスラッグを使用して特定の投稿を表示します。

タイプとステータスのパラメーター – 特定の投稿タイプの投稿や添付ファイル付きの投稿を表示します。

ページネーション パラメータ – ページごとに表示される記事の数を決定します。

オフセット パラメーター – 記事が表示され始める位置。

Order および Orderby パラメーター – 記事リストの並べ替え順序を変更します。

固定投稿パラメータ – 固定投稿を含む、または除外する投稿のリストを表示します。

時間パラメータ – 特定の期間の記事を表示します。

カスタム フィールド パラメーター – カスタム フィールドに関連する記事を表示します。

権限パラメータ – 公開済みまたは非公開の投稿を表示します。

WP_Query ページには各パラメータの例が記載されているので、ここでは使用方法について詳しく説明しません。

query_posts関数の使用

query_posts を使用すると、既存のループ コードを変更することなく、ページに表示される投稿を簡単にカスタマイズできます。

query_posts( $args );

この機能を使用するには、ループが開始する前に呼び出す必要があります。例えば:

// クエリ
query_posts( $args );

// ループ
have_posts() を実行した後、 the_post() を実行します。


ページで 2 番目のループを呼び出す予定の場合は、必ず wp_reset_query() を使用してループをリセットしてください。例えば:

// クエリ
<?php query_posts( $args ); ?>

<?php /* ループを開始します */ ?>
<?php while ( have_posts() ) : the_post(); ?>

<?php get_template_part( 'content', get_post_format() ); ?>

<?php endwhile; ?>
<?php wp_reset_query(); ?>


特定のカテゴリの投稿を表示するには、cat パラメータを使用する必要があります。

<?php query_posts( 'cat=1,5,6' ); ?>

同様に、特定のカテゴリを除外するには、前にマイナス記号を追加する必要があります。

<?php query_posts( 'cat=-3,-5' ); ?>

特定の記事を表示するためにも使用できます:

クエリ投稿( 'p=2' );

ページごとに表示する投稿数を定義するには、 posts_per_page パラメータを使用します。

query_posts( 'posts_per_page=5' );

詳細については、query_posts ページをご覧ください。

プラグインを使用して特定のカテゴリの記事を除外する

コーディングにあまり興味がない人のために、WordPress プラグインも利用できます。ここでは、Simply Exclude と Ultimate Category Excluder を使用することをお勧めします。

単純に除外する

Simply Exclude を使用すると、ホームページ、アーカイブ ページ、検索ページ、RSS で特定のカテゴリ、著者、タグの記事を除外したり含めたりすることができます。使い方も非常に簡単です。

究極のカテゴリー除外

Ultimate Category Excluder を使用すると、ホームページ、アーカイブ ページ、RSS から特定のカテゴリを簡単に除外できます。 Simply Exclude との違いは、特定のカテゴリのみを除外でき、著者やタグなどは除外できないことです。

要約する

Simply Exclude プラグインと Ultimate Category Excluder プラグインはどちらも優れていますが、ある程度のプログラミング知識がある場合は、手動で変更する必要があります。

オリジナルリンク: http://laygle.com/2012/01/wordpress-exclude-categories/

原題: WordPress ブログのホームページで特定のカテゴリの記事を除外する方法

キーワード: WordPress、ブログホームページ、ランク付けの方法、指定ポイント、記事、今日、ウェブマスター、ウェブサイト、ウェブサイトのプロモーション、収益化

<<:  龍年の始まりに起こる6つのホットな出来事: ドメイン名がお金を引き寄せる

>>:  Yahoo 外部リンク クエリが閉じられた後の新しい外部リンク クエリ

推薦する

先制的なドメイン名の統合と 301 リダイレクト

これら 3 つの単語はあまり関係がないように思えます。詳しく説明しましょう。 seowhy のトレー...

2021年上半期:分散クラウドについて

クラウド コンピューティングが止められないトレンドになっていることは間違いありません。ビジネスの柔軟...

chicagovps ボスの誕生日、openvz-512M メモリの月額支払い 2 ドル

主人公が戻ってきました。chicagovps のボスの誕生日です。512M メモリの openvz ...

インタビューで必ず聞くこと | Kafka の消費モデルについてお話ししましょうか?

[[442172]]みなさんこんにちは、Bingheです〜〜最近、何人かの読者が Toutiao に...

Linkerd と Ingress-Nginx の組み合わせとサービスへのアクセス制限

簡潔にするために、Linkerd 自体は組み込みの Ingress コントローラーを提供していません...

エンタープライズウェブサイト最適化分析ページの価値の重要性エンタープライズウェブサイト最適化

ご存知のとおり、Baiduアルゴリズムの継続的なアップグレードにより、ウェブサイトの最適化は、外部リ...

Bilibili、Zhihu、Douban:同じ目的地への異なる道?

数年前まで遡ると、国内のインターネット市場は活況を呈し、多くの高品質なプラットフォームや企業が出現し...

Pinterest モデルの分析: Pinterest がこれほど人気なのは「興味グラフ」のおかげでしょうか?

Pinterest が人気になると、「インタレスト グラフ」という用語の露出も急増しました。 Pin...

テンセントが第1四半期の財務報告を発表:ToB事業が収益構造を積極的に調整し、主な成長エンジンに

テンセントは5月18日、2022年第1四半期の業績報告書を発表した。テンセントの「金融テクノロジーと...

SEO プロモーションの完全な秘密がここでのみ公開されます。

これからの道のりは長く困難ですが、私は探求を続けます。皆さんこんにちは、私は偉大な戦士のシャオヤオで...

ライカクラウド:月額9.99元から利用できる高帯域幅クラウドサーバー、鎮江/宿遷/紹興/棗荘/揚州/香港/日本/韓国/米国、100Gの高防御保護

Leica Cloudは新年のプロモーションを開始しました。クラウドサーバーは月額9.99元から、更...

Miyun監視ウェブサイト虚偽宣伝監視ウェブサイト違法行為

これまで、密雲県の企業が運営する商業ウェブサイト1,993件が電子商取引規制「レーダーネットワーク」...

expertvm: シンガポールの VPS、月額 4 ドルから、1G メモリ/1 コア (AMD Ryzen)/20gNVMe/750G トラフィック、1Gbps 帯域幅

Expertvm は 2011 年に設立され、シンガポールの SecureAX のサブブランドです。...

Baidu Bearで高品質なコンテンツを判断する方法

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています馬慧世:小...