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

推薦する

bluevm-4g メモリ/100g ハードディスク/3T トラフィック/月額 3.3 ドル

Hostcat は、bluevm からもう 1 つの魔法のツールを見つけました。これは、最大 4G ...

fapvps-kvm vps+ssd/30% オフ 超格安

fapvps ドメイン名は 2010 年 8 月に登録されました。その特徴は価格の安さです。彼らの ...

JD CloudとSuperMapが共同で「クラウド地図情報共有クラウドプラットフォーム」を構築

クライアントプロフィールSuperMap Software は、独自の SuperMap GIS 基...

Ingress Controller の本質を 1 つの記事で理解する

今日は、クラウド ネイティブ エコシステムの中核技術であるトラフィック管理、Kubernetes I...

マルチクラウド環境を展開するための4つのステップ

2017 年は企業によるクラウド コンピューティングの導入にとって大きな年であったことは間違いありま...

BATはいずれもクラウドサービスをアップグレードし、クラウド戦争は始まったばかりだ

2018年上半期、百度は新たな一連の技術システムアーキテクチャ調整を発表し、その中でABCインテリジ...

Docker による動的ツール: 見落とされがちなベストプラクティス

[[252870]]コンテナは、大企業から小企業まで、急速に一般的な導入ツールになりつつあります。 ...

外部リンク、プロモーション?ウェブマスター、あなたは間違っています、データ分析もあります

多くのウェブマスターは、自分のウェブサイトが長く発展し、存続することを望んでいます。もちろん、生き残...

検索エンジンにおけるフレンドリーリンクの割合についての簡単な説明

フレンドリー リンクは、SEO の観点から見て高品質な外部リンクであり、Web サイトの SEO に...

クラウドネイティブがインフラ変革を推進、百度の「Panyu」ハニカムサーバーが正式リリース

クラウド ネイティブは、最新の人工知能インフラストラクチャを構築するための基礎であり、企業のデジタル...

Baiduに登録された日からウェブサイトのSEOを見てみましょう

Baidu の登録日に問題があると聞いていましたが、実際に見たことはありませんでした。このようなこと...

Himalaya は ASO をどのように活用してチャート上位を獲得しているのでしょうか?

今日お話しするASOマスターはヒマラヤです。 ASO の最高レベルは何ですか?答えは、APP ストア...

良いニュースは遠くまで広まらないが、悪いニュースは広く広まる。ウェブサイトの人気を高める近道

アメリカの企業であるホーメルフーズは、長年にわたり、苦悩と怒り、そして無力感に苛まれてきました。同社...