乱雑なホームページやブログのアーカイブは、訪問者を圧倒する可能性があります。特に、お知らせやランディングページなど、一般的な閲覧を想定していないコンテンツがある場合、すべての記事を表示することは必ずしも理想的ではありません。
WordPressの投稿をパスワードで保護または非公開にするオプションがあります。しかし、場合によっては、投稿をホームページから非表示にするだけで、他の人が直接リンクを持っていれば閲覧できるようにした方が良いこともあります。
この記事では、トップページ、カテゴリーアーカイブ、検索結果など、WordPressで選択したページから投稿を非表示にする方法を紹介する。
ここでは、ホームページから投稿を非表示にする2つの異なる方法について説明します。以下のクイックリンクから、使いたい方法に直接ジャンプできます:
方法1.プラグインを使ってWordPressの投稿を非表示にする。
この方法は簡単で、初心者にお勧めだ。
最初に行う必要があるのは、WordPress Hide Postsプラグインをインストールして有効化することです。詳しくは、WordPressプラグインのインストール方法のステップバイステップガイドをご覧ください。
プラグインを有効化したら、非表示にしたい投稿を編集します。エディターの右カラムに新しく「非表示投稿」セクションが追加されていることに気づくでしょう。
クリックするとプラグインのオプションが表示されます。トップページやブログページ、カテゴリーやタグページ、投稿者ページ、サイト内検索結果の投稿を非表示にすることができます。
お好きなオプションを設定し、投稿を保存するだけです。
選択したオプションによっては、それらのページにアクセスしても、特定の投稿が表示されなくなります。
直接投稿URL(パーマリンク)を持っているすべてのユーザーは、URLを入力することでその投稿を見ることができます。
この方法は最も簡単だが、いくつかの強力なオプションが欠けている。
例えば、ページやWooCommerce商品のようなカスタム投稿タイプを非表示にすることはできません。また、WordPress RSSフィードからの投稿を非表示にする設定もありません。
方法2.WordPressの投稿とページを手動で非表示にする。
この方法では、WordPressサイトにコードを追加する必要があります。WordPressでコード・スニペットをコピー&ペーストする方法をご覧ください。
WordPressは、ユーザーが表示しているページに基づいて投稿を取得し、表示するためにデータベースクエリーを使用します。また、実行前にクエリーを変更するためのビルトインフックも提供されています。
これらのフックを使ってWordPressのクエリーを変更し、WordPressの投稿、ページ、カスタム投稿タイプをセクションごとに非表示にする。
コード・スニペット・プラグインを使ってカスタムコードを追加することができます。これは最も安全な設定であり、サイトを壊すことはありません。あるいは、テーマのfunctions.phpファイルやサイト固有のプラグインにカスタムコードを追加することもできます。
非表示にしたい投稿やページのIDも必要です。WordPressで投稿IDを見つける方法のクイックチュートリアルで、この情報を取得する方法を紹介しています。
基本的には、投稿やページを編集するだけで、そのIDをブラウザーのアドレスバーに表示することができる。
それはともかく、コードの部分に飛び込もう。
WordPressの投稿やページをホームページから非表示にする
以下のコードでは、is_home()条件分岐タグを使って、ユーザーがホームページを表示しているかどうかを調べています。もしそうなら、投稿IDをクエリーから除外します。
function wpb_exclude_from_home($query) {
if ($query->is_home() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_home');
配列内のIDを、除外したい投稿やページの実際のIDに置き換えることを忘れないでください。
WordPressでこのコードを簡単かつ安全に追加するには、WPCodeのようなコードスニペットプラグインを使用することをお勧めします。
開始するには、無料のWPCodeプラグインをインストールし、有効化する必要があります。手順については、WordPressプラグインのインストール方法をご覧ください。
プラグインを有効化したら、WordPressダッシュボードからCode Snippetsメニュー項目をクリックします。そして、「新規追加」ボタンをクリックします。
次に、「カスタムコードを追加(新規スニペット)」オプションを見つけ、その下の「スニペットを使用」ボタンをクリックします。
そこから、コードタイプとして「PHP Snippet」を選択する必要がある。
カスタムスニペットの作成」ページに移動します。まず、スニペットのタイトルを追加します。これは、何のためのコードなのかを覚えておくのに役立つものであれば何でも構いません。
次に、上記のコードを「コード・プレビュー」ボックスに貼り付けるだけです。
その後、トグルを’Inactive’から’Active’に切り替え、’Save Snippet’ボタンをクリックする。
次のページでは、WordPressの投稿やページを非表示にするための追加オプションをご紹介します。上記と同じ手順で、WPCodeを使ってWordPressにこれらのコード・スニペットを追加することができます。
RSSフィードからWordPressの投稿やページを非表示にする
WordPressのRSSフィードだけでなく、ホームページからもWordPressの投稿を非表示にしたい場合は、コード内でis_feed条件分岐タグを使用すればよい。
function wpb_exclude_from_feed($query) {
if ($query->is_feed() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_feed');
もしあなたが管理者としてログイン中で、WordPressのRSSフィードを閲覧しようとした場合、投稿は表示されます。他のユーザーがRSSフィードを表示しても、除外された投稿を見ることはできません。
WordPressの投稿やページをサイト内検索から非表示にする
WordPressのサイト内検索から特定の投稿を非表示にしたい場合はどうすればいいでしょうか?そのためには、is_search条件分岐タグをコードに追加するだけです。
function wpb_exclude_from_search($query) {
if ( $query->is_search() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_search');
これであなたのサイトにアクセスし、非表示にしたい投稿を検索することができます。これらの投稿は公開されていますが、検索結果には表示されません。
WordPressの投稿やページをアーカイブから非表示にする
カテゴリー、タグ、日付アーカイブのようなアーカイブページから、WordPressの特定の投稿やページを非表示にするのはどうだろうか?そのためには、is_archive() 条件分岐タグを使います。
function wpb_exclude_from_archives($query) {
if ( $query->is_archive() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_archives');
WordPressの投稿やページをどこからでも非表示にする
これまで、WordPressの投稿やページを特定のエリアから非表示にする方法を学んできました。では、WordPressの投稿をすべて一度に非表示にする方法はどうでしょうか?
そのためには、先に使った条件分岐タグをすべて、個別コード・スニペットにまとめればよい。
function wpb_exclude_from_everywhere($query) {
if ( $query->is_home() || $query->is_feed() || $query->is_search() || $query->is_archive() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_everywhere');
このコードは、指定された投稿をホームページ、RSSフィード、検索結果、アーカイブページから非表示にします。
WordPressでコンテンツの可視性をコントロールする
WordPressの投稿やページは、上で説明した2つの方法で非表示にすることができます。しかし、その前に、WordPressのコンテンツ表示コントロールオプションに関するよくある質問にもお答えします。
これらの方法は完璧にコンテンツを非表示にしているのだろうか?
いや、そんなことはない。
たとえば、投稿を非表示にする前に、検索エンジンがすでにクロールしてインデックスしている可能性があります。検索エンジンを防ぎたい場合は、GoogleからWordPressのページを非表示にする方法をご覧ください。
また、WordPressプラグインがカスタマイザークエリーを使用し、チェックをスキップして非表示にしようとしているコンテンツが表示される場合も機能しません。
より良い方法は、投稿をパスワードで保護し、パスワードを持つユーザーだけが表示できるようにすることだろう。
サイトの管理者、エディター、投稿者のみが閲覧できるプライベート投稿を作成することもできます。
これらの方法を使って、特定のユーザー向けのコンテンツを作成することはできますか?
いいえ、これらの方法では、特定のユーザーとコンテンツを効率的に共有する権限がありません。WordPressのメンバーシップ・プラグインを利用するのがよいでしょう。
MemberPressのような会員制プラグインを使えば、制限付きのコンテンツを作成・公開することができます。プレミアムコンテンツにアクセスするためのサブスクリプションプランを販売することもできます。
詳しくは、WordPressで会員制サイトを作成する方法をステップバイステップでご紹介しています。
WordPressの投稿をホームページやその他のエリアから非表示にする方法について、この記事がお役に立てば幸いです。また、WordPressサイトを完全に非公開にする方法や、WordPressで人気の投稿プラグインをエキスパートが厳選した記事もご覧ください。
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Jiří Vaněk
Thanks for the plugin tip. I personally use the Category Excluder plugin, but it removes the entire category from the homepage, and that doesn’t always work for me. I will try your plugin so that I don’t always have to select the whole category but only an individual article. That suits me much better.
Amit
Hiding a post with this plugin, does it prevent search engine from crawling and indexing the post? Does it prevent the post’s google search?? Please let me know.
WPBeginner Support
No, it would not, this would be for excluding the post from your home page, not preventing it from being crawled.
管理者
Najeeb Mirani
Very helpful, thank you!
WPBeginner Support
You’re welcome
管理者
Rakesh
Is there any way to hide specific post from only home page latest post section but not from sidebar recent post widget?
WPBeginner Support
It sounds like you would want to use the plugin method from the article.
管理者
Dale
This plugin no longer works. I have been searching for an alternative but haven’t found one yet. Would love an update to this post.
WPBeginner Support
Thank you for letting us know, we will certainly take a look at this plugin and update this article.
管理者
Gino
Plugin no longer works for recent and latest Wordpress updates. Time to update this article!
WPBeginner Support
Thank you for letting us know, we will be sure to take a look into alternatives.
管理者
Sheila
I would be interested in an alternative too. This plug in sounded like exactly what I needed.
Kelsey
I would just use the PHP snippet mentioned above and post it in your child theme functions.php file. That’s what I did to hide my post.
Daniel
My only gripe is that the category post count in my category menu is incremented, even though the post can’t be shown this way. . Other than that, it is perfect.
Adri
Very helpful, thank you!
Dada
Hi, is google still can index the hidden post? Because i still want people can search my post on google search but not show on frontpage?
Raj
how to remove page 1 2 3 4 5 6 7…………last from homepage
campbell
Hi, I am wanting to keep my blog posts visible on my blog page but hidden/removed on my homepage. I downloaded the plugin and followed the instructions. When I checked “hide from front page” my blog post was removed from my blog page and not the homepage, so the opposite of what I want. How can I achieve this? Thanks!
ted bergman
Thank you for this incredibly valuable site! When I need to know how to do something in Word Press, I first come here. You usually have the best and easiest to understand answer.
Gregory
Works just like the tutorial says. WP 4.8
Jason
The issue with the plugin is that if you want to have a category page show posts, then you have to leave that unchecked and “recent posts” will then pick it up and show up in all your side bars and footers
Munna Hossain
This is really a great plugin. It works for me. But I don’t know why the authority doesn’t update this plugin. It still working properly.
Thanks for your excellent artcle.
coated pill
Is there another way to hide particular post since this is not working in my end .
A simple tutorial might help too if I need to alter on some codes on the themes .
Thanks
Mario von Gollaz
The thing is that there is no real alternative to WP Hide Post. Or is there an alternative? Also WP Hide Post seems to be quite outdated (not updated since quite a while).
Shakir Hassan
Hi,
I’ve hide one of my blog posts from my Homepage, but still, it’s showing on Related Post section area below other blog posts.
What should I do to get rid of it?
WPBeginner, your answer is needed.
Thanks.
Scott
Another option isn’t too hide it per se but to re-schedule it to publish on a later date. I think that will effectively do the same thing…at least it did on my site just now.
Allie Mackin
I did what Scott suggested rescheduled the post for a later date. I went through the trouble of downloading and installing this app and it did not work. When I all I had to do is reschedule for a future date. Mission accomplished sans app.
Roshan Roy
how to filter those posts which was hide by WP HIDE POST plugin in admin panel.
Stephen Walker
Comment by:
Just the answer I had been looking for.
Thank You wpBeginners
Dawn Cunnane
I really needed this to hide one post from the categories menu and it worked like a charm, thank you!
TW
This plugin has not been updated in 2 years. Surprised you are recommending it.
Arevico
This is a perfect example of something I would rather have in the WordPress core than in the plugin domain. Normally, I develop my own themes and solve this by using categories. f.e how shows only most recents posts in the category ‘home’ or not in the category ‘invisible’ ,etc. This plugin help a great deal when you don’t develop your own the,e
Brian Jackson
I agree Arevico. This should definitely be part of WordPress core by now. An example just this week… I run a marketing blog, but I am doing a review on a standing desk. Since it is a little outside of my niche of readers I am publishing it without having it show up on the homepage. I want to rank for it, but don’t want to lose readers.