【WP】特定のカテゴリーの投稿を固定ページに表示させる
いくつかのサイトを参照させてもらい、うまく動いた結果をまとめた。
WPテーマのfunction.phpにコードを書いて、ミスするとサイトの表示自体がされなくなってしまうので、リスク回避としてショートコード・プラグインを使った。
使ったプラグイン Post Snippets https://wordpress.org/plugins/post-snippets/
大まかな手順
- プラグインをインストール
- プラグインの設定でコードを入力
- 表示させたい固定ページにショートコードを貼り付け
プラグインのインストール
WPダッシュボードの「プラグイン」>「新規追加」から”Post Snippets”を検索して、インストール。有効化。
プラグインで設定
ダッシュボード 左メニューに“PostSnippets”ができているので、All Snippets を選択、「Add New」で新規にSnippetsを作成。
Edit Snippetsの最初の空欄は、ショートコードになるタイトル。任意のタイトルを入力する。アルファベットがベター。
CodeEditorに入力するコードは参考サイトをあとで紹介する
Variablesは空欄でOK
ShortcodeとPHP Codeにチェックを入れる。
Descriptionは作成しているショートコードの内容説明。空欄のままでも良い。
参考コード
いくつか例示してくれているコードを使ってみたが、うまく動かず。最終的にうまく動いてくれたのが下のページのコード。ありがとうございます。
<?php
$args = array(
'post_type' => 'post', // 投稿タイプ
'category_name' => 'uncategorized', // カテゴリ名(スラッグ)
'posts_per_page' => 5 // 表示件数
);
$new_query = new WP_Query($args);
?>
<?php if ($new_query->have_posts()) : ?>
<ul>
<?php while ($new_query->have_posts()) : $new_query->the_post(); ?>
<li>
<?php the_time('Y.m.d'); ?>
<?php the_title(); ?>
</li>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
</ul>
<?php else : ?>
<p>記事がありません。</p>
<?php endif; ?>
触るところは、(1)カテゴリ名と、(2)表示件数くらい。
uncategoraizedを指定したいカテゴリーのスラッグ名(アルファベット)に変更すればOK
表示件数は5件のままで良ければそのまま、増減したければ任意の数字(半角)に変更。
対象記事がない時は「記事がありません。」と表示されるが、変更したければ修正。
このコードをPost SnippetsのCode Editorに入力して保存。
参考)PHPコードチェッカー(オンライン・ツール)
ショートコードの貼付
PostSnippets 編集画面の右上にあるCopy shortcodeでショートコードをコピーして、表示させたい固定ページにコピペ。
注意)固定ページでコピペする際、「ショートコード」ブロックを選択する
注意2)「投稿」の「カテゴリー」で表示させたいカテゴリーの「スラッグ名」を設定するのを忘れずに。
うまく表示されていることを確認して、完了
↓ 参考になれば幸いです。「いいね」かシェアをよろしくね。
Discussion
New Comments
No comments yet. Be the first one!