我使用以下PHP脚本查找我网站Team
区域的最新帖子。
我也使用非常相似的一个来查找我主页上最新的新闻条目。
为了减少重复代码的数量(DRY
),我是否可以使用某个功能,只需提取特定的自定义帖子类型,例如most_recent('team');
会显示Team
CPT中的最新帖子。
这是我现有的代码:
<?php
// find most recent post
$new_loop = new WP_Query( array(
'post_type' => 'team',
'posts_per_page' => 1,
"post_status"=>"publish"
));
?>
<?php if ( $new_loop->have_posts() ) : ?>
<?php while ( $new_loop->have_posts() ) : $new_loop->the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php endwhile;?>
<?php else: ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
答案 0 :(得分:1)
<?php
function most_recent($type) {
$new_loop = new WP_Query( array(
'post_type' => $type,
'posts_per_page' => 1,
"post_status"=>"publish"
));
if ( $new_loop->have_posts() ) {
while ( $new_loop->have_posts() ) : $new_loop->the_post();
echo '<h2>'.the_title().'</h2>';
the_content();
endwhile;
}
wp_reset_query();
}
?>
答案 1 :(得分:1)
是的,确实有可能。
首先,您需要做的是,
将以下代码添加到主题的functions.php
文件中:
function most_recent($name){
// find most recent post
$new_loop = new WP_Query( array(
'post_type' => $name,
'posts_per_page' => 1,
"post_status"=>"publish"
));
if ( $new_loop->have_posts() ) :
while ( $new_loop->have_posts() ) : $new_loop->the_post();
echo "<h2>".the_title()."</h2>";
the_content();
endwhile;
else:
endif;
wp_reset_query();
}
现在您可以在主题文件夹模板中的任何位置使用它,如下所示:
$most_recent = most_recent('product');
echo $most_recent;
所以在你的情况下,它会是most_recent('team')
,甚至你也可以像其他product
一样用于其他人。
如果您有任何疑问,请告诉我。