Произвольные типы записей не отображаются в RSS ленте

Вопрос решен

    Уважаемые знатоки, сайт на вордпресс, использует произвольные типы записей, но в стандартном RSS фиде их нет. Пробовал:
    /feed
    /rss
    /wp-rss2.php
    ?feed=rss2
    произвольные типы отсутствуют в RSS ленте. Помогите!

    P.S. Нашел инструкцию вида (хук для functions.php):

    
    function wph_feed_all($vars) {
    
    if (isset($vars['feed']) && !isset($vars['post_type']))
    
    $vars['post_type'] = array('post', 'custom_type');
    
    //custom_type - название произвольного поля
    
    return $vars;
    
    }
    
    add_filter('request', 'wph_feed_all');
    
    

    Пробовал не помогло!

    Специалист Вопрос задан в 17.06.2016 в RSS.
    Добавить комментарий
    3 Ответ (-ов)
      Лучший ответ

      Вывод произвольных типов записей в RSS реализован в ядре WordPress и не подразумевает использование сторонних хуков. Чтобы получить по RSS записи произвольных типов, нужно вызвать урл в следующем формате:

      
      /feed/?post_type=custom_type
      
      
      Гуру Отвечено в 17.06.2016.
      Добавить комментарий

        Не знаю, насколько будет работать нижеследующий код, но попробуйте.
        Подключаем записи произвольных типов в общую RSS ленту WordPress:

        
        function add_new_post_types_to_feed( $query ) {
        
        if( ! $query->is_feed || ! $query->is_main_query() )
        
        return;
        
        $query->set( 'post_type', array('post', 'custom_type') );
        
        }
        
        add_filter('pre_get_posts', 'add_new_post_types_to_feed');
        
        
        Мастер Отвечено в 17.06.2016.

        Спасибо. Но не работает и этот код. У меня версия WP – 4.5.2 (может в новом кодексе подобные штучки уже не работают?)

        в 17.06.2016.
        Добавить комментарий

           

          Здравствуйте, использовал фильтр, для подключения фидов к произвольному типу записей, но он не сработал, может подскажете, в чем может быть ошибка.

          участок кода отвечающий за добавление произвольного типа записей

          /* Portfolio */
          function my_post_type_portfolio() {
          	register_post_type( 'portfolio',
          		array(
          			'label'             => theme_locals("portfolio"),
          			'singular_label'    => theme_locals("portfolio"),
          			'_builtin'          => false,
          			'public'            => true,
          			'show_ui'           => true,
          			'show_in_nav_menus' => true,
          			'hierarchical'      => true,
          			'capability_type'   => 'page',
          			'menu_icon'         => ( version_compare( $GLOBALS['wp_version'], '3.8', '>=' ) ) ? 'dashicons-portfolio' : PARENT_URL . '/includes/images/icon_portfolio.png',
          			'rewrite'           => array(
          										'slug'       => 'portfolio-view',
          										'with_front' => FALSE,
          									),
          			'supports' => array(
          								'title',
          								'editor',
          								'thumbnail',
          								'excerpt',
          								'comments',
          							)
          		)
          	);
          	register_taxonomy(
          		'portfolio_category',
          		'portfolio',
          		array(
          			'hierarchical'  => true,
          			'label'         => theme_locals("categories"),
          			'singular_name' => theme_locals("category"),
          			'rewrite'       => true,
          			'query_var'     => true
          		)
          	);
          	register_taxonomy(
          		'portfolio_tag',
          		'portfolio',
          		array(
          			'hierarchical'  => false,
          			'label'         => theme_locals("tags"),
          			'singular_name' => theme_locals("tag"),
          			'rewrite'       => true,
          			'query_var'     => true
          		)
          	);
          }
          add_action('init', 'my_post_type_portfolio');

          фильтр

          add_filter('pre_get_posts', 'add_new_post_types_to_feed');
          function add_new_post_types_to_feed( $query ) {
          	// Выходим если это запрос не фидов
          	if( ! $query->is_feed || ! $query->is_main_query() )
          		return;
          
          	$query->set( 'post_type', array('post', 'portfolio'));
          }
          По умолчанию Отвечено в 14.03.2019.
          Добавить комментарий

          Ваш ответ

          Размещая свой ответ, вы соглашаетесь с политикой конфиденциальности и условиями предоставления услуг.