WordPressでは、ページや投稿だけでなく、コンテンツ独自のニーズに応じてカスタム投稿タイプを作成することができます。例えば、映画のレビュー、製品、体験談などのカスタム投稿タイプを作成することができます。これにより、サイトをより効果的に整理し、ユーザーエクスペリエンスを向上させることができます。
さらに一歩進めたい場合は、カスタム投稿タイプごとにRSSフィードを設定することもできます。サイト訪問者に特化したフィードを提供することで、訪問者はよりカスタム化された方法であなたのサイトにアクセスすることができます。
このガイドでは、WordPressでカスタム投稿タイプのRSSフィードを区切り設定する手順を説明します。さっそく始めましょう!
WordPressでカスタム投稿タイプのRSSフィードを区切り作成する
初期設定では、WordPressはあなたのサイトのためにいくつかのRSSフィードを生成します。
例えば、最近のブログ投稿はすべてサイトのメインRSSフィードに表示されます。このフィードは、ドメイン名に/feed/を追加することでアクセスできます:
https://example.com/feed/
ほとんどの初心者が知らないのは、WordPressはアーカイブページごとに区切りRSSフィードを生成しているということだ。
例えば、カテゴリー、タグ、投稿者、カスタム投稿タイプのRSSフィードが区切られている。
あなたのサイトにmoviesというカスタム投稿タイプがあるとします。投稿タイプのアーカイブページにアクセスすると、その投稿タイプで作成されたすべてのコンテンツを表示できます:
https://example.com/movies
RSSフィードを表示するには、カスタム投稿タイプのアーカイブURLの次の投稿に/feed/を追加するだけです。
https://example.com/movies/feed/
または、WordPressのメインRSSフィードに投稿タイプのパラメータを追加してフィードを表示することもできます。例えば
https://example.com/feed/?post_type=movies
このURLはmoviesというカスタム投稿タイプのみを取得します。
私たちは、用語集と WordPressホスティングサービスのセクションにカスタム投稿タイプを使用しています。どちらもRSSフィードが有効化されており、特定のセクションを購読したいユーザーが使用できます。
カスタム投稿タイプRSSフィードへのリンク追加
WordPressサイトのカスタム投稿タイプのRSSフィードにアクセスする方法がわかったので、そのURLを使ってカスタム投稿タイプのフィードへのリンクを作成することができます。
例えば、訪問者が簡単に投稿を購読できるように、カスタム投稿タイプのアーカイブページにアイコンやプレーンテキストのリンクを表示したいかもしれません。
1.カスタム投稿タイプのRSSフィードへのリンクをブロックタイプに追加する。
フルサイト編集をサポートするブロックテーマを使用している場合、リンクを追加する方法は以下の通りです。
まず、WPCodeプラグインを使用して、WordPressサイトにカスタムコードスニペットを追加する必要があります。
注:このコード・スニペットを追加するために使用できる WPCodeの無料版もあります。
まず、WPCodeプラグインをインストールして有効化し、Code Snippets ” + Add New Snippetのページにアクセスします。
ここから、「カスタムコードを追加(新規スニペット)」設定の下にある「スニペットを使用」ボタンをクリックします。
次の画面で、コード・スニペットの名前をプロバイダーで指定します。これは、スニペットを識別するのに役立つものであれば何でも構いません。その後、コードタイプで「PHP Snippet」を選択します。
最後に、以下のコードをコード・プレビュー・ボックスに追加する:
if (is_post_type_archive('movies')) {
$post_type = get_queried_object();
// Get RSS Feed URL
$rss_feed_url = get_post_type_archive_feed_link($post_type->name);
// Output the shortcode content
return '<p>Subscribe to <a href="' . esc_url($rss_feed_url) . '">' . $post_type->label . '</a></p>';
}
}
// Register the shortcode
add_shortcode('custom_post_type_rss_link', 'custom_post_type_rss_link_shortcode');
movies」をカスタム投稿タイプの名前に置き換えるのを忘れないでください。
WPCodeプラグインのスニペットとしてどのように見えるかを示します:
ここで「有効化」スイッチをオンにし、スニペットを「保存/更新」する。
このコードは、ユーザーが特定のカスタム投稿タイプのアーカイブページを表示したかどうかを自動的に検出し、購読するためのリンクを表示します。
そして、リンクを表示するためにブロックテーマやウィジェットで使用できるショートコードを作成します。
次に、サイトエディターを起動するために外観 ” エディターページにアクセスする必要があります。その後、左メニューからTemplates ” Archiveオプションを選択します。
次に、RSSフィードのリンクを表示したい場所にShortcodeブロックを追加します。
アーカイブ名のすぐ下、一番上に表示するのが理想的です。
ショートコード・ブロックの中に、以下のショートコードを追加する必要があります:
[custom_post_type_rss_link]。
その後、変更を保存することを忘れないでください。
カスタム投稿タイプのアーカイブページにアクセスして、RSSフィードのリンクを表示できるようになりました。
2.クラシックテーマでカスタム投稿タイプのRSSフィードへのリンクを追加する
これを行う最も簡単な方法は、WordPressテーマにカスタム投稿タイプ用の区切りテンプレートを作成することです。
FTPクライアントを使用してWordPressサイトに接続し、/wp-content/themes/your-current-theme/フォルダに移動します。
カスタム投稿タイプがmoviesの場合、WordPressテーマフォルダーにarchive-{post_type}.php
ファイルを作成します。
その後、テーマのarchive.phpテンプレートからコンテンツをコピーし、新しいテンプレートのカスタマイザーを開始するだけです。
投稿タイプのアーカイブフィードには、以下のコードを使ってプレーンなHTMLリンクを追加するだけです:
<p><strong>Subscribe to: <a href="https://example.com/movies/feed/">Movies</a></strong></p>
URLを投稿タイプのフィードURLに変更することをお忘れなく。
さて、このコードタイプの問題点は、その特定の投稿タイプのためだけに新しいテンプレートファイルを作成しなければならないことです。
次の投稿タイプでは、すべてのアーカイブページの投稿タイプRSSフィードリンクを動的に生成することができます。
以下のコードをテーマのarchive.php
テンプレートファイルに追加するだけです。
<?php if ( is_post_type_archive() ) {
$post_type = get_post_type( get_queried_object_id() );?>
<p><strong>Subscribe to: <a href="<?php echo get_post_type_archive_link( $post_type ); ?>feed/"><?php post_type_archive_title(); ?></a></strong></p>
<?php } ?>
このコードでは、投稿タイプのアーカイブページタイトルの下にリンクを追加するだけで、ユーザーにこの特定のコンテンツタイプの購読を促します。
ボーナスのヒントカスタム投稿タイプをメインRSSフィードに追加する
カスタマイザー投稿タイプのRSSフィードは、フィード読者によって発見されにくいため、ほとんどのユーザーはサイトのRSSフィードをより簡単に見つけることができます。
つまり、メインのRSSフィードを購読しているユーザーは、カスタム投稿タイプで公開するコンテンツを見逃すことになります。
サイトのメインRSSフィードに表示されるカスタム投稿タイプのコンテンツを追加することで、この問題を簡単に解決できます。
そのためには、WordPressブログにカスタム・コード・スニペットを追加する必要があります。WordPressでカスタムコードスニペットを追加するには、WPCodeを使用することをお勧めします。
まず、無料のWPCodeプラグインをインストールし、有効化する必要があります。詳しくは、WordPressプラグインのインストール方法の投稿をご覧ください。
プラグインを有効化したら、WordPressの管理サイドバーからCode Snippets ” + Add Snippetのページにアクセスします。
ここから、「カスタムコードを追加する(新規スニペット)」設定の下にある「スニペットを使用する」ボタンをクリックする必要があります。
カスタム・スニペットの作成」ページが表示されますので、コード・スニペットの名前を入力してください。
この名前はどこにも表示されず、識別のためだけに使用される。
次に、右側の「コードタイプ」ドロップダウンメニューから「PHPスニペット」オプションを選択します。
その後、カスタム・コード・スニペットを追加する準備ができました。
以下のコードをコピー&ペーストして、コードプレビューボックスに貼り付けるだけです:
function myfeed_request($qv) {
if (isset($qv['feed']) && !isset($qv['post_type']))
$qv['post_type'] = array('post', 'movies', 'books');
return $qv;
}
add_filter('request', 'myfeed_request');
コードを追加したら、'[‘post_type’]’と書かれている場所の次の投稿タイプにカスタム投稿タイプの名前を入力します。カテゴリー:’post’、’movies’、’books’です。
このカスタム投稿タイプはメインのWordPress RSSフィードに追加されます。
次に、ページの一番上までスクロールして戻り、「Inactive」スイッチを「Active」に切り替える必要がある。
最後に、「Save Snippet」ボタンをクリックし、WordPressサイトにコードを保存して実行することをお忘れなく。
以上で、カスタム投稿タイプのコンテンツがサイトのメインRSSフィードに追加されます。
WordPressでカスタム投稿タイプのRSSフィードを区切り作成する方法について、この投稿がお役に立てれば幸いです。WordPressのRSSフィードの最適化に関するチュートリアルや、WordPressのRSSプラグインのエキスパートによるベストピックもご覧ください。
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.
Buddika Wijerathena
Is there way to create RSS feed for single page ?
Ex – example.com/single-post-type/single-post-name
How to create RSS for this ?
WPBeginner Support
RSS feeds are for listing multiple posts, the RSS would include a link to the post itself. We would not recommend creating a specific RSS feed for one post or page.
管理者
Milan
Hey, and do you know any rss wordpress plugin for visitors ? As big new companies have own RSS creator to put rss on some freelancer sites, I want to it same, but not with post but with custom post types….do you know some RSS plugin ?
Tori
It still doesn’t work for me – I’m trying to display an RSS Feed for the content on this page –
and displays the RSS feed for all of my posts. Any thoughts?
WPBeginner Support
Hi Tori,
Pages are not included in an RSS feed. The URL you are using would work if you had a custom post type with that particular name.
管理者
Tori
Thank you for the response. I’m sorry for the confusion as it looks like my links didn’t appear. The posts that appear on that page are custom posts (it’s like the blog roll but for custom posts), but the method to do the RSS feed didn’t work for me. Any thoughts or suggestions?
WPBeginner Support
Hey Tori,
If you are certain that the posts belong to a custom post type, then you need to find out the name used by the custom post type. You can do that by clicking on the custom post type menu item in your WordPress admin sidebar. Clicking on it will take you to an admin page listing all the posts in that post type. Now if you look into the browser address bar you will see something like this:
http://www.example.com/wp-admin/edit.php?post_type=your_post_type
The part that appears after the post_type= is your custom post type name. Now you need to use this to reach the RSS feed URL for that custom post type.
http://www.example.com/feed/?post_type=your_post_type
Hope this helps.
Tori
Thank you for the response. When I do that, I see this error message — any thoughts?
______
This page contains the following errors:
error on line 2 at column 1: Extra content at the end of the document
Below is a rendering of the page up to the first error.
WPBeginner Support
Hey Tori,
Please see our guide on how to fix RSS feed Errors.
管理者
Cédric Charles
Hi and thanks for this !
I would like to add custom fields for my custom post type feed (not for the regular posts, only for my custom post type).
How could I do that ?
Thanks a lot !
Toni
Great tip! I almost made it from scratch! thank you!
erika
Thank you a lot! your website helped me so much
mike
I’ve gotten this to work but it limits the posts in the rss feed to 10 when I feedburn it. Is there any way to create a full rss feed for custom post types without limiting the quantity of posts it pulls in?
Editorial Staff
Main feed normally displays the most recent posts. If a user tries to pull your feed using their feed reader, it will pull all older posts as well.
管理者
Andrew
Hi there. Could you tell me how to create a feed for all post types, so someone can signup to a single RSS feed for all posts on the site, regardless of which post type they are in?
Editorial Staff
You can combine custom post types in your main RSS feed.
https://www.wpbeginner.com/wp-tutorials/how-to-add-custom-post-types-to-your-main-wordpress-rss-feed/
管理者
Rems
THANK YOU VERY MUCH, i was looking for this info for 2 hours. Glad i found your info. Fu…. taxonomy, where were you?!! aahhh!
Work so fine now
gabearnold
Thanks! This is simple and a nice tip I didn’t know.
AlexAmelines
it works for me and I love you for it. I created a link to each pos type I’ve got, but in the RSS reader they are all called the same, any way I can affect the title of the feed to reflect the post type?
Alan
If I am using a slug re-write for the taxonomy that wouldn’t make a difference and be causing the problem would it? I’ve tried both ways and it doesn’t work either way, with the actual registered taxonomy title or the slug.
Alan
No plugins. But I haven’t been able to figure out how to url my taxonomies with my custom post types like…
http://www.mysite.com/custompost/taxonomy/taxonmyterm
It’s just…
http://www.mysite.com/taxonomy/taxonomyterm
Would this have an effect?
Alan
That doesn’t seem to work with the taxonomies.
Editorial Staff
In our example if you notice, the genre is a taxonomy and it should work.
管理者
Alan
Yeah, I replaced that with my own taxonomy followed by an equal sign and then one of my taxonomy terms, but it still just displayed the custom post type’s feed.
Alan
It actually redirects back to the content post type’s feed url.
Editorial Staff
Are you using any plugin to redirect this? Because this should not be happening…
Alan
No plugins. But I haven’t been able to figure out how to url my taxonomies with my custom post types like…
http://www.mysite.com/custompost/taxonomy/taxonmyterm
It’s just…
http://www.mysite.com/taxonomy/taxonomyterm
Would this have an effect?
Aldi
I can’t seem to make that work. It only takes me back to the custom post type archive page again.
Btw, I use Custom Post Permalinks plugin to allow custom post type permalinks and archive pages. Could that have created the issue??
Cheers!
Aldi
Oops, sorry.. it was my theme’s problem. I had an action call to redirect anything that is related to custom post types, thus the redirection of the feeds. But got it fixed now.