我设置了一个新的自定义帖子类型,它将是我们电子邮件新闻稿的在线副本所在的位置,就像任何基于网络的新闻稿存档一样。
我试图创建一个条件语句来添加到自定义帖子类型的single中。php模板,以便在最近的帖子中显示其他内容。
这样做的目的是,我们可以通过电子邮件向订阅者发送最新时事通讯的链接,供他们在网站上查看,其中包括内容上方和下方的相关广告和新闻。为什么?因为在不是最新发行的新闻稿上,广告和新闻是不相关的,不应该显示出来。
有没有办法查询我的单曲。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.\';
}
我知道这个函数实际上并不存在。这是假设代码。我希望这是有意义的-提前感谢您的提示!
最合适的回答,由SO网友:sanchothefat 整理而成
首先,最好创建一个名为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;
您还可以将特定的post ID传递给函数,以便它在其他上下文中也可用。