通过插件更改GET_TEMPLATE_Part上的文件路径

时间:2014-03-26 作者:Crerem

我正在尝试制作一个插件来改变主题的行为。

在主题文件中,我有一个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 );

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*/
希望这对你有帮助

结束

相关推荐