Wordpress - 功能自定义管理页面 [英] Wordpress - Functions Custom Admin Page

查看:92
本文介绍了Wordpress - 功能自定义管理页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好的,所以我在创建自定义管理页面时遇到了问题。我可以创建一个自定义页面来保存信息没有问题,但是当我然后创建如下的子菜单页面并通过wordpress仪表板填写信息时,它会擦除​​其他先前保存的数据。这与注册设置有关吗?



请注意,代码更整洁,在使用中需要使用一次,但我想我会把它放在这里。



提前致谢



Ok so I have having trouble creating a custom admin page. I can create a custom page that saves the information no problem, however when I then create a submenu page as below and fill in the infromation through the wordpress dashboard it wipes the other previously saved data. Is this something to do with registering the settings?

Please note, code is tidier are uses require once in the fucntions but thought I would lay it out on here.

Thanks in advance

/* ======== Default Values ======== */

$blav_options = array(
    'first_name' => 'Photographers First Name',
    'surname' => 'Photographers Surname',
    'city' => 'City',
    'facebook' => 'Facebook',
    'google' => 'Google',
    'twitter' => 'twitter',
);

/* ======== Validations ======== */

function blav_validate_options( $input ) {
global $blav_options;
$settings = get_option( 'blav_options', $blav_options );
$input['first_name'] = wp_filter_nohtml_kses( $input['first_name'] );
$input['surname'] = wp_filter_nohtml_kses( $input['surname'] );
$input['city'] = wp_filter_nohtml_kses( $input['city'] );
$input['facebook'] = wp_filter_nohtml_kses( $input['facebook'] );
$input['google'] = wp_filter_nohtml_kses( $input['google'] );
$input['twitter'] = wp_filter_nohtml_kses( $input['twitter'] );


return $input;
}

/* ======== Add Actions ======== */

add_action( 'admin_init', 'theme_settings_init' );
add_action( 'network_admin_menu', 'blavou' );
add_action( 'admin_menu', 'master' );

/* ======== Add Pages to Master Menu ======== */

function master() {
add_menu_page( __( 'Blavou' ), __( 'Blavou'), 'manage_options', 'blav-index-    sites', 'blavou_index_sites');
add_submenu_page( 'blav-index-sites', 'Setup Index', 'Setup Index',     'manage_options', 'blav-setup-index', 'blavou_setup_index');
add_submenu_page( 'blav-index-sites', 'Setup Address', 'Setup Address', 'manage_options', 'blav-setup-address', 'blavou_setup_address');
}

/* ======== Register Settings ======== */

function theme_settings_init(){
register_setting( 'blav_theme_options', 'blav_options',   'blav_validate_options' );
}

/* ======== Content for Pages ======== */

function blavou_existing_sites() {
echo '<div id="blav-wrapper">';
echo '<div class="blav-nav-wrapper">';
echo '<ul class="blav-drop">';
echo '<form action="../">';
echo '<select name="mySelectbox" id="mySelectbox">';
echo '<option value="">Choose Existing</option>';
$sites = wp_get_sites();
foreach ($sites as $site) {
    $details = get_blog_details($site['blog_id']);
    printf( '<option value="%s">%s</option>', 'http://'.$site['domain'].'/wp-admin/', $details->blogname );
}
echo '</select>';
echo '<input type="button" onclick="window.open(this.form.mySelectbox.options[this.form.mySelectbox.selectedIndex].value,\'_top\')" value="Confirm">';
echo '</form>';
echo '</ul>';
echo '</div>';
echo '</div>';
}

function blavou_setup_index() {
global $blav_options;
if ( ! isset( $_REQUEST['updated'] ) )
    $_REQUEST['updated'] = false;

?>
<?php if ( isset( $_GET['settings-updated'] ) ) {

    echo "<div class='updated'><p>Settings Saved. <a href='?page=blav-setup-address'>Continue Setup</a>.</p></div>";
} ?>
    <div id="blav-wrapper">
<div class="blav-nav-wrapper">
    <h5 class="standard-title">General Information</h5>
    <form method="post" action="options.php" class="standard-form">
    <?php $settings = get_option( 'blav_options', $blav_options ); ?>
    <?php settings_fields( 'blav_theme_options' );?>
        <input type="text" name="blav_options[first_name]" value="<?php  esc_attr_e($settings['first_name']); ?>" ></input>
        <input type="text" name="blav_options[surname]" value="<?php  esc_attr_e($settings['surname']); ?>"></input>
        <input type="text" name="blav_options[city]" value="<?php  esc_attr_e($settings['city']); ?>"></input>
        <input type="submit" value="Save"></input>
    </form>
</div>
</div>
<?php

}



function blavou_setup_address() {

global $blav_options;

if ( ! isset( $_REQUEST['updated'] ) )

    $_REQUEST['updated'] = false;



?>
<?php if ( isset( $_GET['settings-updated'] ) ) {

    echo "<div class='updated'><p>Settings Saved. <a href='?page=blav-setup-social'>Continue Setup</a>.</p></div>";
} ?>
    <div id="blav-wrapper">
<div class="blav-nav-wrapper">
    <h5 class="standard-title">Facebook, Google and Twitter</h5>
    <form method="post" action="options.php" class="standard-form">
    <?php $settings_address = get_option( 'blav_options', $blav_options_address ); ?>
    <?php settings_fields( 'blav_theme_options' );?>
        <input type="text" name="blav_options[facebook]" value="<?php esc_attr_e($settings_address['facebook']); ?>"></input>
        <input type="text" name="blav_options[google]" value="<?php esc_attr_e($settings_address['google']); ?>"></input>
        <input type="text" name="blav_options[twitter]" value="<?php esc_attr_e($settings_address['twitter']); ?>"></input>
        <input type="submit" value="Save"></input>
    </form>
</div>
</div>
<?php

}



?>







所有最好的




All the best

推荐答案

blav_options = array(
'first_name' => '摄影师名字',
'姓'=> '摄影师姓氏',
'city'=> 'City',
'facebook'=> 'Facebook',
'google'=> 'Google',
'twitter'=> 'twitter',
);

/ * ========验证======== * /

函数blav_validate_options(
blav_options = array( 'first_name' => 'Photographers First Name', 'surname' => 'Photographers Surname', 'city' => 'City', 'facebook' => 'Facebook', 'google' => 'Google', 'twitter' => 'twitter', ); /* ======== Validations ======== */ function blav_validate_options(


输入){
global
input ) { global


blav_options;
blav_options;


这篇关于Wordpress - 功能自定义管理页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆