2017-09-27 3 views
0
// 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]; 
?> 

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

} 

// 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"]); 
} 

Je devais ajouter une méta case à cocher personnalisée sur la page posts pour activer certains contenus. Le code ci-dessus provient d'une autre réponse de stackoverflow. Quand je clique sur update post, cela enregistre la valeur de vérification, mais je ne comprends pas comment tester si elle est cochée sur une page dont je veux afficher le contenu.Vérifiez la méta case à cocher personnalisée si elle est cochée Wordpress

if (isset()) fait if (isset()) s'il y a une valeur, donc il retourne toujours vrai même s'il n'est pas coché. Est-il possible de tester la valeur checked = "checked"? C'est ce qui est mise à jour si j'inspecte l'élément.

Répondre

1

Vérifier le

if($field_id_value == "on") $field_id_checked = 'checked="checked"'; 
+0

merci. J'ai enlevé la valeur "oui" de l'entrée et vérifié pour. cela semblait avoir fonctionné. Je ne sais pas pourquoi toutes les réponses que j'ai regardées ont fait la valeur "oui" – corporalpoon

+0

Heureux que cela a aidé. :) – shazyriver