自定义Meta Box for Testimonials自定义帖子类型

时间:2017-05-23 23:29:42

标签: wordpress wordpress-theming

我有一个自定义帖子类型的推荐书,其工作方式与我期望的一样。以下是推荐书代码片段

add_action( 'init', 'register_cpt_testimonial' );
function register_cpt_testimonial() {

    ...

    $args = array( 
        ..
    );

    register_post_type( 'testimonial', $args );
}

然而,现在我想要花哨并添加元框,但我无法让它显示。

function testimonial_meta_boxes() {
    add_meta_box( 'testimonial_form', 'Testimonial Details', 'testimonial_form', 'testimonial', 'side', 'high' );
}

function testimonial_form() {
    $post_id = get_the_ID();
    $testimonial_data = get_post_meta( $post_id, '_testimonial', true );
    $client_name = ( empty( $testimonial_data['client_name'] ) ) ? '' : $testimonial_data['client_name'];

    wp_nonce_field( 'testimonial', 'testimonial' );
    ?>
    <p>
        <label>Client's Name (optional)</label><br />
        <input type="text" value="<?php echo $client_name; ?>" name="testimonial[client_name]" size="40" />
    </p>
    <?php
}

有人可以解释我在这里失踪的内容。我正在阅读https://developer.wordpress.org/reference/functions/add_meta_box/,但我没有得到我失踪的东西。

1 个答案:

答案 0 :(得分:1)

你必须添加这个钩子add_action('add_meta_boxes', 'testimonial_meta_boxes');

add_action('add_meta_boxes', 'testimonial_meta_boxes');

function testimonial_meta_boxes() {
   add_meta_box( 'testimonial_form', 'Testimonial Details', 'testimonial_form', 'testimonial', 'side', 'high' );
}