WordPress ホームページに特定のカテゴリを表示する方法

Last Updated: 2024 年 04 月 28 日 9のコメント

WordPress フロントページに特定のカテゴリ文が表示されるようにしたい場合があります。 Avada, Newspaper、Diviなどの有料テーマを使用したり、エレメンタプロを使用した場合は、特定のカテゴリを特定のページに表示できます。別の方法で読み取り設定で最新の投稿を表示するように設定した場合は、いくつかの方法で特定のカテゴリ文を表示したり、カテゴリペイにリダイレクトしたりできます。

[この記事は、2024年4月27日に最後に更新されました。 ]

テーマまたはページビルダーの機能を使用する

Newspaper, Avada などの有料テーマを使用したり、 エレメンプロを使用している場合は、ブログ要素/ウィジェットを使用して、文章全体または特定のカテゴリー文を表示することができます。

  1. Homeページを作成し、ポスト/ブログウィジェットを配置し、特定のカテゴリの記事を表示します。
  2. 設定»読む»最新の記事でホームページを選択し、特定のカテゴリの記事が表示されているページ(ホームなど)をホームページとして指定します。
WordPress ホームページの設定

Avada テーマの場合 Blog 要素でカテゴリを指定できます。

Avada テーマブログの設定

Diviテーマでも Blog 要素でカテゴリを指定できます。

Diviテーマブログ設定

Elementor Proを使用している場合は、Postsウィジェットを配置してQueryセクションでカテゴリを指定できます。

エレメンタプロブログの設定

エレメントのポストウィジェットの詳細については、次の記事を参照してください。

Avada、Divi、エレメントなどを使用すると、テーマファイルを変更することなくサイト全体を編集できます。

フロントページに最新の記事を表示する場合

WordPressの 設定 » 読むからフロントページへ」最新記事「または」静的なページのいずれかを選択して設定できます。 ホームページを表示から 最新記事を設定すると、ブログ投稿がホームページに表示されます。

ホームページの設定

この状況では、特定のカテゴリ内の文だけ WordPressのフロントページ(ホームページ)に表示されるようにするにはどうすればいいですか? いくつかの方法を考えてみることができます。 次の方法のいずれを使用しているテーマと相性が最も適した方法を使用してください。

indexページにカテゴリクエリコードを追加する

一番簡単な方法は、index.phpファイルに次のようなコードを追加することです。





複数のカテゴリを追加するには query_posts('cat=8,4,3'); 形式を使用します。 上で「3」はカテゴリIDである。 そのカテゴリIDに置き換えてください。 カテゴリIDを確認する方法は この記事を参照してください。

その後、上記のコードをどこに追加するか? ループステートメントが開始される直前に追加します。

wordpress index loop  -  WordPress ループステートメント

上の図のように while(have_posts()) すぐ上に追加することができます。 うまく動作しない場合は、キャッシュ(ブラウザのキャッシュ/プラグインキャッシュ)を削除してテストしてみてください。 それでもうまくいかない場合は、以下の方法を試してみてください。

チャイルドテーマをインストールして作業してください。それ以外の場合は、テーマが更新されたときに編集内容が消えます。

add_action関数のコードを追加する

第二に考えてみることができるように add_action 関数を使用することです。 次の関数を関数ファイルに追加するようにします。

function my_home_category( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $query->set( 'cat', '11'); } } add_action( 'pre_get_posts'、 'my_home_category'); // Source: https://premium.wpmudev.org/blog/one-category-wordpress-homepage/

複数のカテゴリーを指定した場合には、次のような形式を使用します。

$query->set( 'cat', '11, 14' );

ページテンプレートを使用する

最後に、ページテンプレートの使用を検討することができます。 category.phpまたはarchive.phpファイルの内容をコピーして新しいページを作成し、コピーした内容を貼り付けます(例:homepage.php)。 次にヘッダ部分を次のように変更します。





テンプレート名は、適切に変更します。 今ループステートメントの前に次のようなコードを追加します。





query_postsを使用して、問題が発生した場合 WP_query()を使用してみます。

$query = new WP_Query('category_name=Category&posts_per_page=4'); if($query->have_posts()) : while($query->have_posts()) : $query->the_post(); ...

WP_query()、query_posts()、pre_get_postsこれについては この記事を参照してください。

新しいページをXNUMXつ作成し(たとえば、「ホームページ」または希望の名前で)、テンプレートを上記で作成したテンプレート(たとえば、フロントページテンプレート)として指定します。

Front Page Template  -  WordPress ページテンプレートの指定

ページに内容を入力せずに保存します。 」設定>読む「から」静的なページ「選択して保存したばかりのページ(ホームページなど)を指定します。今すぐホームページにアクセスすると、指定したカテゴリの記事が表示されます。 WordPress テーマによって異なる場合があります。)

追加:

082netさんが提案した方法でリダイレクト(redirection)させる方法も考えてみることができます。 詳細については、 この記事を参考にしてみてください。 リンクの内容ではなく簡単に wp_redirect() 関数のコードをindex.phpファイルの先頭に追加して、特定のカテゴリに移動させる方法も可能と思われる。

参照


9のコメント

コメント

  1. index.phpはテーマフォルダ内のファイルでしょう..? ところで、ここに出てきたwhile(have_posts())がなくて見てきたtemplate_full.phpにあったりのに修正みてもダメですねし。困難です。

    応答
  2. 偶然この記事を見て試しに適用してみました。
    よくなりますね。
    Visual Composerをしないながらも、少しフォーム私は終わるデザインを考えに
    カテゴリーを取得来るのが方法はいけない次善策がなりましたね。

    よく見ていきます。

    応答