• Доброго времени суток, уважаемые специалисты.

    Подскажите, пожалуйста, как в WordPress показывать в RSS ленте только те посты, в которых указано значение пользовательского поля, к примеру, add_in_rss и значение yes для него.

    Дабы в RSS не попадали все опубликованные\обновлённые статьи, а только указанные. Такой кастомный RSS получится в итоге.

    Нашёл такой код:

    // Loop starts here
    while (have_posts()) : the_post();
    // Get the meta field
    $meta = get_post_meta($post->ID, "Meta Name", false);
    // Do no show post if the meta equals "Meta Value"
    if($meta != "Meta Value"){
    // Content Here
    }
    endwhile;
    // Loop ends

    Вписал его в файл feed-rss2.php WordPress, отвечающий за RSS (только восклицательный знак убрал, чтобы было не исключение записи, а вставка записи при наличии у неё произвольного поля)

    ...do_action( 'rss2_head' );
            
            while ( have_posts() ) :
            	the_post();
        		$meta = get_post_meta($post->ID, "add_in_rss", false);
        		if($meta = "yes"){
            	?>
            <item>
            	<title><?php the_title_rss(); ?><....
        ....
        ....p echo get_comments_number(); ?></slash:comments>
            	<?php endif; ?>
            
            	<?php rss_enclosure(); ?>
            
            	<?php
            	/**
            	 * Fires at the end of each RSS2 feed item.
            	 *
            	 * @since 2.0.0
            	 */
            	do_action( 'rss2_item' );
            	?>
            </item>
            <?php } endwhile; ?>...

    Но почему то он не срабатывает 🙁

    P.S.

    Я знаю, что нежелательно редактировать feed-rss2.php, он будет затёрт при обновлении. Но у меня там вписано (и каждый раз вписываю вновь после обновления) вывод картинки для поста, так что в любом случае он уже мной редактируется.

    • Тема изменена 4 года, 5 месяцев назад пользователем ikiterder.
  • Тема «Показ поста в RSS только при налич. postmeta» закрыта для новых ответов.