2017-08-17 21 views
0

enter image description hereenter image description here私はカスタムメタボックスを作成しようとしており、その値を単一のポストに表示していますが、コードは単一のポストに値を表示しません。その値は管理側のポストに保存されます。今私はtheme.iがfunction.phpファイルでカスタムメタボックスのためにこのコードを使用しています20 17使用していますwell.Rightとしてサイド:私はsingle.phpにしようとしているコードは次のようになりwordpressのシングル投稿にカスタムメタボックスの値を表示するには?

add_action('add_meta_boxes', 'm_param_meta_box_add'); 
function m_param_meta_box_add() { 
    add_meta_box('m_param_post', 'Box Title', 'm_param_post_meta_box_cb', 'post', 'normal', 'high'); 
} 

function m_param_post_meta_box_cb($post) 
{ 
    $values = get_post_custom($post->ID); 
    if (isset($values['m_meta_description'])) { 
     $m_meta_description_text = esc_attr($values['m_meta_description'][0]); 
    } 
    wp_nonce_field('my_meta_box_nonce', 'meta_box_nonce'); 

?> 
<table class="form-table"> 
<tr valign="top"> 
<th scope="row"><label for="m_meta_description">Post Description</label></th> 
<td><textarea rows="3" cols="50" name="m_meta_description"><?php echo $m_meta_description_text; ?></textarea></td> 
</tr> 
</table> 

<?php 
} // close m_param_post_meta_box_cb function 

add_action('save_post', 'cd_meta_box_save'); 
function cd_meta_box_save($post_id) 
{ 
    // Bail if we're doing an auto save 
    if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; 

    // if our nonce isn't there, or we can't verify it, bail 
    if(!isset($_POST['meta_box_nonce']) || !wp_verify_nonce($_POST['meta_box_nonce'], 'my_meta_box_nonce')) return; 

    // if our current user can't edit this post, bail 
    if(!current_user_can('edit_post')) return; 

    // Make sure your data is set before trying to save it 
    if(isset($_POST['m_meta_description'])) { 
     update_post_meta($post_id, 'm_meta_description', wp_kses($_POST['m_meta_description'])); 
    }  
} 

add_action('wp_head', 'add_to_wp_head'); 
function add_to_wp_head() 
{ 
    if (is_single()) 
    { 
     global $post; 
     $m_meta_description = get_post_meta($post->ID, 'm_meta_description', true); 
     echo '<meta name="description" content="' . $m_meta_description . '"/>'; 
    } 
} 

です:

   <?php 
       add_action('wp_head', 'add_to_wp_head'); 
       function add_to_wp_head() 
       { 
        if (is_single()) 
        { 
         global $post; 
         $m_meta_description = get_post_meta($post->ID, 'm_meta_description', true); 
         echo '<meta name="description" content="' . $m_meta_description . '"/>'; 
        } 
       } 
       ?> 
+0

あなたのコードは21のテーマでうまく機能します。 – vel

+0

私の場合、シングルポストでカスタムメタボックスの値が表示されません... –

+0

シングルポストで値を更新しましたか? – vel

答えて

1

"template-parts/post/content"ファイルに下記のコードを挿入してください。

<?php 
     $m_meta_description = get_post_meta($post->ID, 'm_meta_description', true); 
     echo 'meta box value: ' . $m_meta_description; 
    ?> 
+1

ありがとう、完璧な作品、私はコンテンツファイルを変更することを忘れてしまった。 –

関連する問題