1

这是我的单选按钮代码。我希望它们显示在设置页面中并保存以供将来使用。

<form method="post" action="options.php">  
<?php 
    wp_nonce_field('update-options'); 
    $rsp_position = get_option('rsp_position');
    if(empty($rsp_position)){
        $rsp_position = "true";
    } else {
        $rsp_position = get_option('rsp_position');
    }
?>  
<p><strong>Ad Placing:</strong><br />

<input type="radio" id="1" name="rsp_position" <?php if($rsp_position == 'true') echo 'checked="checked"'; ?> value="true" />yes <br />
<input type="radio" id="2" name="rsp_position" <?php if($rsp_position == 'false') echo 'checked="checked"'; ?> value="flase" />no <br />

<input type="text" name="publisher-id" size="45" value="<?php echo get_option('publisher-id'); ?>" />  
</p>  
<p><input type="submit" name="Submit" value="Save" /></p>  
<input type="hidden" name="action" value="update" />  
<input type="hidden" name="page_options" value="publisher-id" /> 
<?php 
    settings_fields( 'save_position' ); 
    register_setting( 'save_position', 'rsp_position');
?>
4

1 回答 1

1

您走的是正确的路线,但是您对 settings_fields 和 register_setting 的调用不在正确的位置。

阅读Otto 的教程,这是对设置 API 的一个很好的介绍。

基本上,添加一个 admin_init 操作并在回调中注册设置并使用 add_settings_field 创建表单项。

然后在 add_options_page 回调中调用 settings_fields 以显示使用 add_settings_field 创建的条目。

如果您在完成 Otto 的教程后仍然苦苦挣扎,请再次发帖。

编辑:在 pastebin 条目之后。

保存失败是您的验证函数未返回预期值的结果。preg_match 在保存之前没有找到正确的值并将字符串转换为 '' (无) - 所以看起来它没有保存,而实际上它什么也没保存。

您还可以查看以下可能有用的功能。

于 2013-01-18T18:11:20.840 回答