通过插件更改存档CPT类别和单个CPT的行为,而不是通过主题

时间:2012-10-07 作者:kokareff

我需要知道:我已经写了60%的插件,它在后端工作得很好(一些设置,一些cpt,一些自定义字段…没什么特别的)。它使用带有自定义字段的自定义帖子类型。

现在,我需要更改默认的归档类别行为,以及更改此CPT的单个帖子的行为\\u dons\'t\\u touching\\uTemplates(因为此插件将不仅在1个站点中使用,而且将有许多模板)。

只是通过编程,通过过滤器/操作-根据我的喜好进行更改。。例如,我需要在这个单一的自定义帖子类型中显示这个自定义字段。

有人知道如何通过插件实现吗?

1 个回复
SO网友:Tomas Buteler

您可以使用插件中的模板,而不是主题文件,如下所示:

add_filter(\'archive_template\', \'redirect_to_plugin_archive_template\');
function redirect_to_plugin_archive_template($template) {

    if(is_post_type_archive(\'my_cpt\')) {
        return dirname(__FILE__) . \'/templates/my_archive_template.php\';
    }
}

add_filter(\'single_template\', \'redirect_to_plugin_single_template\');
function redirect_to_plugin_single_template($template) {

    if(is_singular(\'my_cpt\')) {
        return dirname(__FILE__) . \'/templates/my_single_template.php\';
    }
}
显然,您需要更改自定义的post类型slug和模板路径,但这只是一般的想法。

结束