Use of Templates in a Plugin

时间:2017-08-30 作者:SpreadWideWings

我正在创建一个插件。为此,我编写了自己的模板。现在我想在我的插件目录中创建模板文件。

但这并不管用。由于我使用了插件目录,wordpress doesent知道我的模板是wp templates。让WP知道这些文件是wordpress模板的最佳方式是什么?

感谢您的回答:)

2 个回复
SO网友:Cedon

您需要向page_template 钩子将查找您需要的任何标准。

例如,如果您的插件是针对自定义帖子类型的,则会有如下内容:

function myCustomTemplate( $page_template ) {

   // Check theme for template file
   $located = locate_template( \'single-{{postype}}\' );

   if ( ! empty( $located ) && is_singular( \'{{posttype}}\' ) ) {
      $page_template = dirname( __FILE__ ) . \'templates/my-custom-template.php\';
   }

   return $page_template;
}
add_filter( \'page_template\', \'myCustomTemplate\' );
The$located 检查查看用户的当前主题是否已经有一个文件来显示自定义帖子类型,因为您可能不想覆盖该文件。如果没有,并且帖子类型是插件定义的自定义帖子类型,那么它会告诉WordPress将其与插件一起使用。

SO网友:SpreadWideWings

谢谢你的回答。这让我进一步了解了问题所在。但不知怎么的,它确实奏效了。

我会发布我的代码,也许你知道问题在哪里。

add_action(\'template_redirect\',\'check_access\');
add_filter(\'page_template\', \'plug_in_load_template\');

function check_access() {     
    if ($_SESSION[\'login\'] != \'ok\') {
        wp_redirect(content_url(\'plugins/Login_Plugin/templates/index.php\'));
        exit();
    }       
}

function plug_in_load_template() {
    $located = locate_template(\'single-{{postype}}\');
    if (! empty($located) && is_singular(\'{{posttype}}\')) {
        $page_template = plugin_dir_path( __FILE__ ) . \'Login_Plugin/templates/index.php\';
    }
    return $page_template;
}

结束

相关推荐

更新页面(update-core.php)和插件页面(plugins.php)恢复到主页

我在Wordpress网站的管理视图中收到通知,我有一个网站和插件的可用更新(在我的网络管理仪表板中,在“插件”和“更新”旁边的红色圆圈中有“1”)。。。但当我尝试同时转到“更新”页和;插件页面,是否显示主页?此时的URL为http:///wp-admin/network/update-core.php/和http:///wp-admin/plugins.php/分别地因此,我永远无法到达真正的更新页面,也无法更新我的Wordpress或插件。如何显示更新或插件页面?