Добавление условного содержимого в один шаблон post-type

У меня есть новый настраиваемый тип почтового сообщения, в котором будет храниться онлайн-рассылка нашего электронного бюллетеня, например, любой веб-архив бюллетеней.

Я пытаюсь создать условный оператор, чтобы добавить к шаблону single.php настраиваемого типа сообщения, чтобы на последней странице отображался дополнительный контент.

Цель этого заключается в том, чтобы мы могли отправлять подписчикам ссылку на последнюю новостную рассылку для просмотра на веб-сайте, которая включала бы релевантные объявления и новости выше и ниже содержания. Зачем? Потому что в новостных бюллетенях, которые НЕ являются самой последней проблемой, реклама и новости неактуальны и не должны отображаться.

Есть ли способ, которым я могу запросить мой цикл шаблона single.php, чтобы отображать только контент на последнем посту в этом пост-типе?

Что-то вроде:

if ( is_most_recent_post('post_type=newsletter') ) { echo 'Content that shows up only in the most recent post in the Newsletter post type is output here.'; } 

Я знаю, что функция на самом деле не существует. Это гипотетический код. Надеюсь, это имеет смысл – заблаговременно за подсказки!

Во-первых, вам лучше создать файл шаблона для вашего типа сообщений, создав файл под названием single-newsletter.php . WordPress подберет его и автоматически использует.

Во-вторых, добавьте эту функцию в свой файл functions.php и вызовите ее, если она будет самой последней:

 function is_latest_newsletter( $post_id = 0 ) { $latest = array_shift( get_posts( array( 'post_type' => 'newsletter', 'posts_per_page' => 1 ) ) ); if ( ! $post_id && in_the_loop() ) $post_id = get_the_ID(); return $latest->ID == $post_id; } 

Затем в файле шаблона:

 if ( have_posts() ) : while ( have_posts() ) : the_post(); if ( is_latest_newsletter() ) { // do stuff } endwhile; endif; 

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