首页 文章

WordPress创建设置页面

提问于
浏览
0

我正在尝试学习如何在WordPress中制作自定义仪表板页面和设置 . 我所遵循的教程非常清楚......但是有一件非常小的事情对我来说没有意义 .

demo_footer_message_display() 函数的 funcions.php 底部附近有一行代码,表示 option['message'] . 我不明白“消息”的定义 . 如果它说选项['footer_message']会有很多意义,因为'footer_message'是我正在处理的字段的id .

代码工作正常,但我只是不明白为什么? 'message'在哪里被定义为options数组的索引 . 任何人都可以向我解释这个吗?

PS . 如果不明显我的设置页面只有一个输入,您可以在主题的页脚中输入一些文本 .

functions.php

<?php
/ * -------------------------------------------- *
*菜单
/ * * --------------------------------------------- /

//将“DEMO THEME OPTIONS”添加到WordPress的“设置”菜单中

function demo_add_options_page(){
add_options_page(
'Lindsay演示主题选项',//浏览器 Headers
'Lindsay演示主题选项',//菜单文字
'manage_options',//用户访问此菜单所需的功能
'lindsay-demo-theme-options',// slug
'demo_theme_option_display'//用于显示内容的函数名称
);
}
add_action('admin_menu','demo_add_options_page');

/ * -------------------------------------------- *
*部分,设置和字段
/ * * --------------------------------------------- /

//在“演示主题选项”页面上注册新的设置字段

function demo_initialize_theme_options(){

//要在新选项页面上呈现的部分
add_settings_section(
'footer_section',// id
'页脚选项',//屏幕上的 Headers
'demo_footer_options_display',//回调
'lindsay-demo-theme-options'//页面ID
);

//定义设置字段
add_settings_field(
'footer_message',//字段ID
'主题页脚消息',//标签
'demo_footer_message_display',//回调
'lindsay-demo-theme-options',//页面
'footer_section'//要添加的部分
);

//使用“常规”部分注册“footer_message”设置
register_setting(
'footer_section',//设置组的名称
'footer_options'//选项名称
);
} //结束demo_initialize_theme_options

add_action('admin_init','demo_initialize_theme_options');

/ * -------------------------------------------- *
*回调
/ * * --------------------------------------------- /

function demo_theme_option_display(){
?>

<div class =“wrap”> <h2>演示主题选项</ h2> <form method =“post”action =“options.php”> <?PHP //渲染标识为“页脚部分”的设置部分的设置 settings_fields( 'footer_section');

//渲染“demo-theme-options”部分的所有设置
do_settings_sections(“林赛 - 演示主题选项”);

//添加提交按钮以序列化选项
submit_button();
?>
</ FORM>
</ DIV>
<?PHP
}

function demo_footer_message_display(){
$ options =(array)get_option('footer_options');
$ message = $ options ['message'];
echo'<input type =“text”name =“footer_options [message]”id =“footer_options_message”value =“' . $ message . '”/>';
}

function demo_footer_options_display(){
echo'这些选项旨在帮助您控制页脚中显示的内容';
}

footer.php

<div id="footer" class="col-md-12"> 
<?php wp_footer() ?>
        <div class="site-info">
            <a href="http://wordpress.org/" title="A Semantic Personal Publishing Platform" rel="generator">Proudly Powered by WordPress</a>
            <span class="sep"> | </span>
            <?php $options = (array) get_option('footer_options');?>
            <?php $message = $options['message'];?>
            <span id="footer-message"><?php echo $message; ?></span>
        </div>
</div>

1 回答

  • 1

    如果你在方法get_option之前查看单词(数组),它会显示他将返回作为数组进行转换(这篇文章说it's a serialised string) . 设置api也表示get_option的返回类型是"mixed" . 我猜这个表单是发布在选项页面上呈现的文本字段,保存从帖子到数据库的所有内容,当你检索它时,更容易将它转换为数组以检索帖子的"message"部分 . 尝试取消它并使用"var_dump"查看它返回的内容,看看你是否能提出比我更好的答案:)

    $options = get_option('footer_options');
    var_dump($options)
    

    http://codex.wordpress.org/Settings_API

相关问题