onetrickpony
  • 0
Гуру

Хорошие URL-адреса RSS-каналов для каждого пользовательского типа сообщений

  • 0

По умолчанию 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/, что бы отображались только нормальные посты…

Share
  1. Если вы установите тип поста '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/ . Пост не будет отображаться в основной ленте.

    • 0

Оставить ответ

You must login to add an answer.