1

WordPressでカスタムメタボックスを使用しようとしています。現在の私の目標は、特定のコンテンツをオンにするためのスイッチとして使用できるチェックボックスを備えたメタボックスを作成することです。私は機能するものをつなぎ合わせようとしてWebを精査してきましたが、これまでのところ、チェックボックス付きのメタボックスを生成できるところまで到達しましたが、チェックされた値がループに引き継がれていません。理由。配列を出力して何かを取得できるかどうかを確認しようとすると、空になります。私はたくさんのことを見て、いくつかのメタボックス作成スクリプトを試しましたが、それらのどれも動作させることができません。この方法が最も有望であるように見えましたが、今は行き詰まっています。私がここで見逃している重要なものはありますか?データが保存されていないかのようです。以下に含まれるコード:

メタボックス機能。Functions.phpにあります:

// Checkbox Meta
add_action("admin_init", "checkbox_init");

function checkbox_init(){
add_meta_box("checkbox", "Checkbox", "checkbox", "post", "normal", "high");
}

function checkbox(){
global $post;
$custom = get_post_custom($post->ID);
$field_id = $custom["field_id"][0];

echo '<label>Check for yes</label>';
$field_id_value = get_post_meta($post->ID, 'field_id', true);
if($field_id_value == "yes") {
    $field_id_checked = 'checked="checked"';
}
echo ' <input type="checkbox" name="field_id" value="yes" '.$field_id_checked.' />';
}

// Save Meta Details
add_action('save_post', 'save_details');

function save_details(){
  global $post;

  if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
     return $post->ID;
  }

update_post_meta($post->ID, "field_id", $_POST["field_id"]);
}

チェックボックスがオンの場合にコンテンツを出力するために使用されるコード。これもfunctions.phpにあります。関数はループで使用されます。

function custom_content() {
    if(isset($_POST['field_id']) && $_POST['field_id'] == 'yes') {
        echo "It works!";
    }
}
4

1 に答える 1

2

functions.php の関数を次のように変更します

function custom_content($id) {
    $field_id = get_post_meta($id, 'field_id', true);

    if($field_id == yes) {
        echo "It works!";
    }
    else{
        echo 'Not working...';
    }
}

そしてあなたのテンプレートは、ffのようにループ内で呼び出します:

custom_content(get_the_ID());
于 2012-06-15T07:08:09.983 に答える