如何选择页面模板名称?

时间:2019-06-29 作者:Nathan

我想修改管理员,以便在有人使用默认模板时删除默认文本编辑器。(如果他们手动选择默认以外的内容,请保留编辑器)。

if ($currentPage == \'Default Template\') {
  remove_post_type_support( \'page\', \'editor\' );
}
因此,我正在寻找一种方法来确定加载时所选的页面模板,并在此基础上执行操作。如果运行此查询,我将尝试执行以下操作:

add_action(\'init\', function () { 

  var_dump(wp_get_theme()->get_page_templates());

});
在新主题上,它返回一个数组template-custom.blade.php. 但当我运行此命令时:

add_action(\'init\', function () { 

  var_dump(get_page_template());

});
它返回page.php. 如果我将页面切换到“自定义模板”并保存。即使重新加载,它仍会返回page.php. 我的选择是什么?

我也在init 也没用。

$template_filename = get_post_meta( get_the_ID(), \'_wp_page_template\', true );
好吧,我应该remove_post_type_supportinit 钩子,但想知道模板信息是否可用。

1 个回复
最合适的回答,由SO网友:Antti Koskinen 整理而成

我从这里的答案中选择了以下代码,https://stackoverflow.com/questions/2544870/remove-main-editor-from-wordpress-edit-page-screen/42093956. 我调整了代码,使用默认页面模板删除页面上的经典编辑器。并添加了评论。

function remove_editor_init() {
  $post_id = 0;
  if ( isset( $_GET[\'post\'] ) ) {
    $post_id = $_GET[\'post\'];
  }
  $template_file = get_post_meta( $post_id, \'_wp_page_template\', TRUE );
  // var_dump($template_file) to see which template the page is using
  // no value on new pages and when template haven\'t been changed yet
  // default if changed back to default template
  if ( ! $template_file || \'default\' === $template_file ) {
    remove_post_type_support( \'page\', \'editor\' );
  }
}
add_action( \'admin_init\', \'remove_editor_init\' );
这在我的本地WP安装中起到了作用,也许你可以试试?

相关推荐

Custom term templates

所以,我在网上做了一些研究,但没有找到可靠的答案,所以我来了。我需要为特定类别创建自定义woocommerce类别页面。例如,我有一个类别叫做“Awesome”。而不是使用由短代码生成的常规类别页面[product_category category=\"something\"], 我想为自定义特定类别页面Awesome.我发现我需要编辑taxonomy-product_cat.php 但我不知道如何将其链接到名为awesome.换句话说,我正在考虑制作php文件的自定义副本,然后将其添加为主题templ