我正在用插件创建一个定制的post类型,我想显示我的cpt标题/缩略图/内容.使用钩子(假设它比加载自定义模板更好)。
但是主题用他们的single.php模板显示标题/缩略图/内容.那么,是否有一个钩子可以用来覆盖所有这些,还是需要使用2个钩子来删除标题/图像,第三个钩子用我的cpt内容覆盖内容?
我还计划在cpt中添加自定义元字段。
你会怎么做?
发布于 2020-04-13 21:33:59
如果您正确地创建了您的cpt,并且只希望它像任何其他帖子一样显示,那么您就没有什么需要做的了。WordPress将使用主题中的single.php,并将您的post类型的单个版本显示为普通的post。
如果要添加额外的元,可以使用函数和筛选器来完成。例如,要在内容之后添加元内容,如下所示:
function rt_before_after($content) {
if(is_singular('your_post_type')) {
$beforecontent = '', //what you want before ie meta
$aftercontent = '', //what you want after ie custom meta
$fullcontent = $beforecontent . $content . $aftercontent;
return $fullcontent;
} else {
return $content;
}
}
add_filter('the_content', 'rt_before_after');如果您试图自定义您的CPT的显示,这将是有点困难。
每个主题都要用自己的钩子..。如果他们真的用的话。你在玩一个猜测游戏,看他们对每个主题可能做什么,或者不做什么。似乎更容易确保他们使用您的数据与模板。下面是我使用的内容:(您需要修改代码以适应您的CPT名称和模板位置)
function rt_load_custom_template( $template ) {
if ( is_singular( 'your_post_type' ) ) {
$template = plugins_url( 'templates/your_post_type.php', __FILE__ );
}
add_filter( 'single_template', 'rt_load_custom_template', 50, 1 );
return $template;
}https://wordpress.stackexchange.com/questions/363884
复制相似问题