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または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

チェックボックスを処理するときにオプションが設定されているかどうかを最初に確認する必要があります。issetを使用してこれを確認します。

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