Wordpress 添加主题自定义字段设置面板

add_theme_page()函数

add_theme_page()函数会在后台“外观”菜单项下面新建一个菜单项,有助于我们自己修改主题时功能的扩展。


语法结构

add_theme_page( $page_title, $menu_title, $capability, $menu_slug, $function); 

page_titile title标签的内容

menu_title 显示在后台左边菜单的标题

capability 访问这个页面需要的权限

menu_slug 别名,需要独一无二哦自己命名

function 执行的函数


例子:

# 加入主题的functions.php即可
function register_theme_submenu(){
  add_theme_page('Theme Submenu','主题设置','administrator','my_slug','theme_submenu');
}
function theme_submenu(){
  echo 'lol';
}
add_action('admin_menu','register_theme_submenu');



更详细的例子

<?php
     function getOptions() {
        $options = get_option('my_theme_options');
        if (!is_array($options)) {
            $options['meta_keywords'] = '';
            $options['meta_description'] = '';
            update_option('my_theme_options', $options);
        }
        return $options;
    }


    /* 初始化 */
    function init() {        
        if($_SERVER['REQUEST_METHOD']=="POST") {
            $options = getOptions();
            $options['meta_keywords'] = stripslashes($_POST['meta_keywords']);
            $options['meta_description'] = stripslashes($_POST['meta_description']);
            update_option('my_theme_options', $options);
        } else {
            getOptions();
        }
        add_theme_page("我的主题选项", "我的主题选项", 'edit_theme_options', "my_theme_panel_ss",  'display');
    }


    /* 界面 */
    function display() {
        $options = getOptions();
        ?>
        <form action="#" method="post" enctype="multipart/form-data" name="op_form" id="op_form">
            <div class="wrap">
                <h1>当前主题选项</h1>
                <p>相关描述</p>
                
                <table class="form-table" role="presentation">
                    <tbody>
                    <tr>
                        <th scope="row"><label for="meta_keywords">主题关键词</label></th>
                        <td><input name="meta_keywords" type="text" id="meta_keywords" value="<?php echo($options['meta_keywords']); ?>" class="regular-text"></td>
                    </tr>
                    <tr>
                        <th scope="row"><label for="meta_description">主题描述</label></th>
                        <td>
                            <input name="meta_description" type="text" value="<?php echo($options['meta_description']); ?>" class="regular-text">
                            <p class="description" id="tagline-description">用简洁的文字描述本站点。</p>
                        </td>
                    </tr>
                    </tbody>
                </table>


                <input type="submit" name="input_save" value="保存" />
            </div>
        </form>
        <?php
    }
    add_action('admin_menu', 'init');
 ?>


修改时间 2021-01-30

真诚赞赏,手留余香
赞赏
随机推荐
入门 Webpack,看这篇就够了
关于2D游戏中的几个坐标系的概念
uniapp 开发笔记(一)
Vue函数式路由
原生JavaScript插件的写法
HTTP中GET与POST的区别
微信接入验证与回复消息
Sequelize 批量导入和批量更新数据
ffmpeg基础使用
正则表达式变量拼接(未完)