我正在尝试制作一个插件来改变主题的行为。
在主题文件中,我有一个get_template_part(\'libs/templates/user_menu\');
.
我想让我的插件“强制”get_template_part
返回另一个slug文件(插件文件夹中文件的路径)。
到目前为止,这是我在插件中的代码:
function wpse21352_template_part_cb( $slug )
{
if(slug == \'user_menu\') {
return WP_PLUGIN_URL.\'/\'.$slug;
} else {
return $slug;
}
}
do_action( "get_template_part_user_menu", \'user_menu\' );
add_action( \'wpse21352_template_part_cb\', \'get_template_part_user_menu\', 10, 1 );
SO网友:zahoor
我通过在主题中的get\\u template\\u part()函数上方添加一些代码来处理这个问题,如下所示:
//Theme
/* If any filter set */
if(has_filter(\'ppr_one_search_item_view\'){
$themePartSlug = apply_filters(\'ppr_one_search_item_view\');
}
else{
$themePartSlug = \'templates/search/place\';
}
get_template_part($themePartSlug);
在我的插件中:
/* Plugin Code */
function get_template_part_place(){
// Template file from plugin Directory
load_template(PPR1_PLUGIN_PATH.\'templates/search_places.php\');
}
add_filter( \'ppr_one_search_item_view\', \'get_template_part_place\');
/* plugin Code End*/
希望这对你有帮助