向页面模板添加自定义域,管理员端

时间:2012-08-16 作者:Carlo

我正在向当前使用的主题添加页面模板。有没有办法让管理编辑器显示一些输入文本字段或模板的其他选项?

例如,我需要两个文本区域。

1 个回复
SO网友:Brian Fegter

您可以通过JavaScript很容易地做到这一点。以下是您需要采取的步骤。我在下面创建了一个示例(未测试)脚本,作为您的概念证明。

注册元框

add_action(\'add_meta_boxes\', \'foo_page_template_meta_box\');
function foo_page_template_meta_box(){
    add_meta_box(
        \'foo_page_template_options\',
        __(\'Foo Page Template Options\'),
        \'foo_page_template_options\',
        \'page\'
    );
}

function foo_page_template_options(){
    //Your custom field form goes here
}
将JavaScript和CSS添加到admin\\u head以便发布。php和post new。php
add_action(\'admin_head-post.php\', \'foo_page_template_script\');
add_action(\'admin_head-post-new.php\', \'foo_page_template_script\');

function foo_page_template_script(){
    global $post;

    # Only use this script for pages
    if(\'page\' !== $post->post_type)
        return;

    #Name of page template file
    $file = \'foo_page_template.php\';

    $output = "
        <!-- Hide the Meta Box -->
        <style type=\'text/css\'>
            #foo_page_template_options{display:none;}
        </style>

        <script type=\'text/javascript\'>
            jQuery(document).ready(function($){
                var _file = \'$file\';
                var _meta_box = $(\'#foo_page_template_options\');
                var _page_template = $(\'#page-template\');

                //Show meta box on page load
                if(_file == _page_template.val())
                    _meta_box.show();

                //Sniff changes to the page template dropdown
                _page_template.change(function(){
                    if(_file == _page_template.val())
                        _meta_box.show();
                });
            });
        </script>
    ";
    echo $output;
}
这种方法的主要前提是在所有“页面”编辑屏幕上加载元框,但仅当页面模板选择值与页面模板文件名匹配时才显示元框。

希望这有帮助!

结束

相关推荐

更改站点根目录后,wp-admin如何也反映这一点?

我的网站文件结构如下:index.php wp/wp files ... 一般在网站地址(URL)我有。。。地点com公司在索引中。php我有: define(\'WP_USE_THEMES\', true); require(\'./wp/wp-blog-header.php\'); 一切都很好,但为wp管理我有。。。地点com/wp/wp管理员/我的问题是:我是否可以更改wp admin的url以同时具有。。。地点com/wp admin/?