用于覆盖标题、图像和内容的挂钩

时间:2020-04-12 作者:mrKC.988

我正在用插件创建一个自定义帖子类型,我想显示我的cpt标题/缩略图/内容。。。etc使用挂钩(假设这比加载自定义模板更好)。

但主题显示的是标题/缩略图/内容。php模板。。。。。。那么,是否有一个钩子可以用来覆盖所有这些内容,或者我是否需要使用两个钩子来删除标题/图像,并使用第三个钩子来覆盖我的cpt内容?

我还计划在我的cpt中添加自定义元字段。

你会怎么做?

1 个回复
最合适的回答,由SO网友:rudtek 整理而成

如果您正确创建了cpt,并且只希望它像任何其他帖子一样显示出来,那么您无需执行其他操作。WordPress将使用single。php,并将您的帖子类型的单个版本显示为普通帖子。

如果你想添加额外的meta,你可以通过一个函数和一个过滤器来完成。例如,要在内容之后添加元,请执行以下操作:

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;
}

相关推荐