BbPress和BuddyPress如何将自己的页面模板添加到页面编辑屏幕上的页面模板下拉列表中

时间:2013-11-10 作者:rashid

我正在写一个插件,需要知道如何在插件中的编辑页面屏幕中添加页面模板。bbPress和Buddypress都在这个下拉列表中添加了页面模板,我不知道他们是如何做到的。

不寻找template\\u重定向解决方案,需要在后端工作。我已经在使用template\\u重定向,不需要任何帮助!

如有任何帮助,将不胜感激。

1 个回复
SO网友:gmazzap

因为我不知道Buddypress和bbPress是如何将选项添加到页面模板下拉列表中的,我可能错了,但我认为唯一的方法(不包括将文件添加到主题文件夹或黑客核心)是使用javascript。

创建一个包含以下内容的文件,将其保存在某处,我将假定它的名称为my-script.js 它在一个子文件夹中\'js\' 主题文件夹的

jQuery(document).ready(function($) {
   if (  $(\'select#page_template\').length ) {
     var tmpl = myscriptdata.template;
     var label = myscriptdata.template_label;
     $(\'select#page_template\').append(\'<option value="\' + tmpl + \'">\' + label + \'</option>\');
   }
});
然后将其排队post.phppost-new.php, 仅适用于页面,并传递要添加的模板:

add_action(\'admin_enqueue_scripts\', \'add_my_scripts\');

function add_my_scripts( $page ) {
  if ( $page === \'post.php\' || $page === \'post-new.php\' ) {
    global $typenow;
    if ( $typenow === \'page\' ) {
      wp_enqueue_script(\'myscript\', get_template_directory_uri() . \'/js/my-script.js\', array(\'jquery\'), null);
      $data = array(
        \'template\' => "my-template", // what you want to assign to dropdown value
        \'template_label\' => "My Template" // what you want to assign to dropdown label
      ); 
      wp_localize_script(\'myscript\', \'myscriptdata\', $data );
    }
  }
}

结束

相关推荐

Can't create new Pods pages

这很奇怪。突然,我无法创建更多的Pods页面!在编辑页面屏幕中,主按钮显示submit for review,而不是publish,当我按下该按钮时,WP会说:不允许编辑此帖子。嗯,我是管理员,所以我不应该有任何问题,事实上,我以前创建过其他页面。角色和能力对我来说似乎没问题。。。发生什么事了?编辑:我的函数上次升级时似乎出现问题。php代码。但我弄不到什么!