投稿一覧から特定の投稿だけを表示させない方法
-
こんにちは
もう少し具体的に教えてもらえませんか。
- 投稿一覧とは、カテゴリーアーカイブやタグアーカイブ、月別アーカイブなども対象とするのか。
- 検索結果一覧は対象とするのか。
- 「特定の記事」ということですが、どのような条件(特定の ID、特定のカテゴリー)なのでしょうか。
お返事ありがとうございます。
「投稿一覧」というのは、「最近の投稿」としてウィジェットのサイドメニューとして表示させることができるものを意味しています。
検索結果については、とりあえず考えていませんでした。対象外で構いません。
「特定の記事」というのは、「限定公開」というカテゴリーを指定した記事を意味しています。
この「限定公開」というカテゴリーは、自分で追加に作成したものです。
ウィジェットのメニューにこのカテゴリーを追加しなければ、このカテゴリー自体はトップページに表示されないので、問題ないのですが、そのこに含まれる記事は、「最近の投稿」に表示されてしまうので、そこを非表示にできたらと思っています。
今のところ、該当する記事をパスワード保護することは考えていません。
回答になっていますでしょうか。「限定公開」カテゴリーのリンクは、「最近の投稿」ウィジェットに表示させない。と整理していいのか、わたしの理解不足があるのか。
https://ja.wordpress.org/support/topic/サイドバーのカテゴリーの一部を非表示/
に応える過程で、似たような結果は出たのですが。カテゴリー自体を表示させないことは、ウィジェットにそのカテゴリーを追加しなければ可能になるので、問題ありません。
今回、なんとかしたいのは、そのカテゴリー内に含まれるひとつひとつの投稿が、「最近の投稿」に表示されてしまうことです。
「最近の投稿」ウィジェットで、特定のカテゴリーを非表示するというのではないのですね。
その、一つ一つの投稿が「限定公開」のカテゴリーに属していればシンプルですが、そのカテゴリーに含まれる個々の投稿だとIDを記述する必要がありますね。
exclude
を使って、「カテゴリー」ウィジェットでは出来たので、「最近の投稿」ウィジェットでも出来ないかと考えました。ごめんなさい。
私がちゃんと理解していないのかもしれません。「最近の投稿」では、ひとつひとつの記事が列挙されて表示されますよね?カテゴリーではなく。
そこから、特定のカテゴリーに属する記事だけ非表示にすることが、前回送っていただいた方法でできるということですか?
だとしたら、送っていただいた構文?をどこにコピペしたら良いのでしょうか。また、その構文中のどこで、特定のカテゴリー名を指定しているのでしょか(どこを編集したら良いのでしょうか)
素人ですみません。
CG さんの提示のコードは、カテゴリーウィジェットから指定のカテゴリーを除外する方法です。
最近の投稿ウィジェットの場合は、下記のようなコードになるかと思います。
function my_widget_posts_args( $args ) { $cat = get_category_by_slug( '限定公開' ); if ( $cat ) { $args['category__not_in'] = array( $cat->term_id ); } return $args; } add_filter( 'widget_posts_args', 'my_widget_posts_args' );
※ コード中の「限定公開」は、実際のスラッグ名(カテゴリー名ではないですよ)を入れてください。
コードは、テーマの functions.php の最後などに追記するといいかと思います。
なお、functions.php のコードを間違えると、管理画面が真っ白になる場合がありますので、注意してください。この場合は、FTP やサーバーのファイルマネージャーなどで functions.php を元に戻してください。- この返信は6年、 1ヶ月前にishitakaが編集しました。
ご丁寧にありがとうございます。
まだ、どのような結果になるのか、ちゃんと理解できていませんが、覚悟を決めて、function.php に追記してみて、
表示がどのようになるのか、実際に確認してみたいと思います。ありがとうございます。
たびたびすみません。
if ( $cat ) {
が間違っているようで、その旨のエラーが表示されます。「IF」に問題があるようです。
ご確認いただけますでしょうか。
よろしくお願いします。たぶん、if の直前にエラーがある(; がないとか)と思われます。
エラーが不明な場合は、正確なエラーメッセージを提示してもらえませんか(アドレスとかは伏字で構いません)。
ありがとうございます。
コピペした時に、「’」が、文字化けを起こしていました。
修正しましたら、functions.php 自体は、無事に保存できたのですが、「最近の投稿」には、「限定公開」のカテゴリーに入れた記事も
今まで通り、表示されてしまっています。何がいけないのでしょうか。
カテゴリー名ではなく、スラッグ名を指定していますか?
実際に記述したコードを提示してもらえませんか?
なお、このフォーラムでコードを貼り付ける場合はコードを選択し [code] ボタンをクリック(逆クォートで囲む)してください。
詳細は下記ページをご覧ください。
https://wpdocs.osdn.jp/フォーラムへようこそ#.E3.82.B3.E3.83.BC.E3.83.89.E3.81.AE.E6.8A.95.E7.A8.BFあと、そもそもなんですが「最近の投稿」とは最近の投稿ウィジェットなのでしょうか?
function my_widget_posts_args( $args ) {
$cat = get_category_by_slug( ‘限定公開記事’ );
if ( $cat ) {
$args[‘category__not_in’] = array( $cat->term_id );
}
return $args;
}
add_filter( ‘widget_posts_args’, ‘my_widget_posts_args’ );です。
Wordpressで、カテゴリーのスラッグも「限定公開記事」としています。はい、「最近の投稿」とは、ウィジェットに用意されている「最近の投稿」のことです。
function my_widget_posts_args( $args ) { $cat = get_category_by_slug( '限定公開記事' ); if ( $cat ) { $args['category__not_in'] = array( $cat->term_id ); } return $args; } add_filter( 'widget_posts_args', 'my_widget_posts_args' );
すみません。こうですよね。
- この返信は6年、 1ヶ月前にchiseshowが編集しました。
- トピック「投稿一覧から特定の投稿だけを表示させない方法」には新たに返信することはできません。