将文件从插件复制到主题不起作用

时间:2015-08-04 作者:deemi-D-nadeem

我正在开发一个插件。在插件文件夹中,有一个文件夹“模板”,我从中复制了文件并粘贴到活动主题中的“my\\u文件夹”。他们动作完美。现在,当我从主题编辑文件时,他们没有编辑,但当我从插件文件夹编辑文件时,他们编辑了。

我只想当我从主题编辑文件时,结果会显示在前端,而不是插件。

我还使用template_include 胡克,但我不知道哪里出错了。

这是我的代码:

add_filter(\'template_include\', \'my_template_chooser\');
function my_template_chooser($template){
    global $wp_query;
    $plugindir = dirname(__FILE__);

    $post_type = get_query_var(\'post_type\');

    if( $post_type == \'my_items\' ){
        if(file_exists(TEMPLATEPATH . \'/my_items/my_items.php\')) {
            return locate_template(\'my_items/my_items.php\');
        } else {
            return $plugindir . \'/template/my_items.php\';
        }
    }

    if( $post_type == \'my_items\' && is_single() ){
        if(file_exists(TEMPLATEPATH . \'/my_items/single-my_items.php\')) {
            return locate_template(\'my_items/single-my_items.php\');
        } else {
            return $plugindir . \'/template/single-my_items.php\';
        }
    }

    if (is_tax(\'my_items_tags\')) {
        if(file_exists(TEMPLATEPATH . \'/my_items/taxonomy-my_items_tags.php\')) {
            return locate_template(\'my_items/taxonomy-my_items_tags.php\');
        } else {
            return $plugindir . \'/template/taxonomy-my_items_tags.php\';
        }
    }

    return $template;   
}
我也试过这个

return locate_template(\'my_items/taxonomy-my_items_tags.php\');

return TEMPLATEPATH .\'my_items/taxonomy-my_items_tags.php\';
但什么都没发生。请告诉我哪里做错了

1 个回复
最合适的回答,由SO网友:5ervant - techintel.github.io 整理而成

要获取模板目录,可以使用get_template_directory_uri() 像这样:

$themeDir = get_template_directory_uri();

// ...
$themeItems = $themeDir . \'/my_folder/my_items.php\';
if (file_exists($themeItems))
  return $themeItems;
else
  return $pluginDir . \'/template/my_items.php\';
欲了解更多信息,请访问Function Reference/get template directory uri.. 如果要将PHP代码放在主题目录中,最好放在“functions.PHP”文件中,或者include($theFile) 在“functions.php”中放置php代码的位置。

结束

相关推荐