所以如果你注册了一个CPTwpse_242473_custom_post_type
您可以使用它将6篇此类最新帖子放在静态首页(或任何地方)。您可以使用短代码或模板标记,该函数应该可以同时用于这两种情况。
这是对我在许多网站上使用的一些代码的修改。把它放在你的主题中functions.php
. 当然,请修改我使用的HTML以适合您自己。
我已经添加了一个扭曲,我一直想尝试一段时间,所以如果它窒息你让我知道,我会测试它正确。我所添加的是一整套可选参数,我希望它们可以让同一个函数同时用于短代码和模板标记。你可以[recentposts]
在任何页面上的可视化编辑器中,或者<?php wpse_242473_recent_posts(); ?>
进入主题的任何模板。
要将其放入静态首页的模板中,请编辑(或创建)模板front-page.php
. 这将自动为静态首页选择,而无需在页面编辑屏幕中选择。
function wpse_242473_recent_posts( $atts = null, $content = null, $tag = null ) {
$out = \'\';
$args = array(
\'numberposts\' => \'6\',
\'post_status\' => \'publish\',
\'post_type\' => \'wpse_242473_custom_post_type\' ,
);
$recent = wp_get_recent_posts( $args );
if ( $recent ) {
$out .= \'<section class="overview">\';
$out .= \'<h1>Recent Projects</h1>\';
$out .= \'<div class="overview">\';
foreach ( $recent as $item ) {
$out .= \'<a href="\' . get_permalink( $item[\'ID\'] ) . \'">\';
$out .= get_the_post_thumbnail( $item[\'ID\'] );
$out .= \'</a>\';
}
$out .= \'</div></section>\';
}
if ( $tag ) {
return $out;
} else {
echo $out;
}
}
add_shortcode( \'recentposts\', \'wpse_242473_recent_posts\' );
这是对你想要的帖子的直接检索。
这个foreach
循环构建HTML,然后如果使用了短代码,则最后的条件返回HTML,如果将函数作为模板标记调用,则返回HTML。
web上的许多文章没有向您展示的是传递给所有短代码处理程序的第三个参数。使用短代码时,它包含短代码名称,因此处理程序理论上可以处理多个短代码。在本例中,我们使用它来判断函数是否确实被作为短代码处理程序调用。