0

我正在开发一个 WordPress 主题,并且我创建了一个选项页面,该页面已经为输入和文本区域设置和运行。可以通过以下方式轻松将其带到模板页面:

<?php $options = get_option('kittytheme_options'); echo $options['kittens']; ?>

现在,如何将其修改为有条件的复选框?以下内容在很多方面可能是错误的,但应该说明我正在尝试的内容:

<?php $options = get_option('kittytheme_options'); if ( $options['kittycheckbox'] == '0' ) : ?>Theme By: <a href="http://someurl.com/">Company Name</a><?php endif; ?>

所以基本上这个想法是链接应该默认显示为 0 或什么都没有。但是,当在选项中选中隐藏此区域的复选框时,它将等于 1,因此将其隐藏。

从选项页面/表单这里是复选框:

<input id="kittytheme_options[kittycheckbox]" name="kittytheme_options[kittycheckbox]" type="checkbox" value="1" <?php checked( '1', $options['kittycheckbox'] ); ?> />
<label class="description" for="kittytheme_options[kittycheckbox]"><?php _e( 'Hide Kitty Credit', 'kittytheme' ); ?></label>

最终的验证函数是:

function theme_options_validate( $input ) {
global $select_options;
if ( ! isset( $input['kittycheckbox'] ) )
$input['kittycheckbox'] = null;
$input['kittycheckbox'] = ( $input['kittycheckbox'] == 1 ? 1 : 0 );
return $input;
}
4

2 回答 2

0

更新:

theme_options_validate您的代码除了仍然可以工作但以错误方式编码的功能外几乎是不错的;下面应该是:

function theme_options_validate( $input ) {
   $input['hidecred'] = isset($input['hidecred']) ? 1: 0;
   return $input;
}

所以我想真正的问题是您没有在所有所需的 WP 页面中包含条件语句。很可能你只将它包含在page.php而不是包含在page-blog.php等等......

$options = get_option('startuppro_options');
if ( $options['hidecred'] ){
  // do something here
}
于 2012-04-29T10:05:13.293 回答
0

您要首先检查在处理复选框时是否设置了该选项。使用isset来检查这一点。

if(isset($options['kittycheckbox'])){
    echo 'Theme By: <a href="http://someurl.com/">Company Name</a>';
}
于 2012-04-28T22:11:26.450 回答