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 外部リンク クエリが閉じられた後の新しい外部リンク クエリ

推薦する

ehvps-50% オフ/$4.5/KVM/2g メモリ/30g ハードディスク/2T トラフィック/He Fremont

ehvps は 2016 年に VPS 事業を開始しました。サーバーはカリフォルニア州フリーモントの...

Zhihuの自社運営eコマースがスタート!

今年春のナスダック上場以来、設立10周年を迎えた知乎は新たな章を開き、この中国最大のインターネット質...

「第一人者」が語る注目キーワードSEOの実践運用

リーダーとは何ですか?まだ分​​からないの?あなたはまた遅れています。取り戻してください。ウェブマス...

Demand Media がドメイン名登録業者 Name.com を買収

Name.com は 2003 年に設立され、現在 150 万件のドメイン名が登録されています。De...

Pinterestのような製品を活用して購買行動を促進する方法

このウォーターフォール フロー表示方法は、目的もなく閲覧しているユーザーに非常に適しています。ユーザ...

GINERNET-6 EUR/1G RAM/10G SSD/300G フロー/500G D

より大きな DDOS の圧力に耐えられる安価なホストを探している場合は、GINERNET がリリース...

オンラインプロモーションにビデオを活用する方法

オンラインプロモーションの一般的な方法は何ですか?ブログプロモーションとは、ブログをインターネットア...

Rackulous - 3.84 ドル/kvm/2G メモリ/4 コア/55g ハードディスク/1.5T トラフィック/G ポート

Rackulous は、ABPNI Group [英国会社番号: NI602753、英国 VAT 番...

zvps: ロシアの VPS、Windows 内蔵、無制限のトラフィック

zvps は 2005 年に設立され、チェコ共和国に登録されています (会社登録番号: 290 37...

私たちが一緒に行ったフォーラムのプロモーション

フォーラムは、オンライン プロモーションの誕生以来存在しています。フォーラムは、コミュニケーション ...

Baiduの外部リンクツールから、Baiduが収集している外部リンクを確認できます。

数日前、私はGoogleウェブサイトコンソールとYoudaoを通じてアンカー外部リンクを照会する記事...

ディメンションデータ、2019年のテクノロジートレンド予測を発表

ディメンションデータの最新レポートは、顧客体験、サイバーセキュリティ、デジタル開発、将来の技術動向に...

ソーシャル ネットワーキング SEO 最適化シリーズ: Facebook

ソーシャル ネットワーク SEO - Facebook SEO 最適化のために Facebook や...

Longhorn、エンタープライズレベルのクラウドネイティブコンテナ分散ストレージのバックアップとリカバリ

[[419258]]目次スナップショットを作成する定期的なスナップショットとバックアップLongho...

Kubernetesのデプロイメントの送信からポッドの実行までのプロセス全体

ユーザーが Kubernetes にデプロイメントを作成するリクエストを送信すると、Kubernet...