Хорошие URL-адреса RSS-каналов для каждого пользовательского типа публикации
По умолчанию WP, похоже, отображает все сообщения всех типов в основной RSS-ленте. Вам нужно добавить переменную запроса post_type, чтобы отобразить запись определенного типа...
Итак, как я могу повернуть это:
http://site.com/feed/?post_type=book
В
http://site.com/feed/books/
?
И, если возможно, перепишите http://site.com/feed/
на http://site.com/feed/blog/
, в котором должны отображаться только обычные сообщения...
1 answers
Если вы установите 'has_archive' => TRUE
в register_post_type()
, тип публикации будет иметь свой собственный канал на /books/feed/
, и его элементы не будут включены в основной канал.
Пример плагина
<?php
/*
Plugin Name: WPSE13006 feed for CPT demo
*/
! defined( 'ABSPATH' ) and exit;
add_action( 'init', 'wpse13006_register' );
// Call wp-admin/options-permalink.php once after activation to make permalinks work
function wpse13006_register()
{
register_post_type(
'wpse13006'
, array (
'has_archive' => TRUE
, 'label' => 'wpse13006'
, 'public' => TRUE
, 'publicly_queryable' => TRUE
, 'query_var' => 'wpse13006'
, 'rewrite' => array ( 'slug' => 'wpse13006' )
, 'show_ui' => TRUE
, 'show_in_menu' => TRUE
, 'supports' => array ( 'title', 'editor' )
)
);
}
Создайте один пост, опубликуйте и просмотрите его. Если вы подниметесь на один уровень до /wpse13006/
сейчас, вы найдете канал на /wpse13006/feed/
. Сообщение не будет отображаться в основной ленте.