如何在Wordpress中添加元数据?

时间:2015-11-02 07:24:31

标签: wordpress

<?php
function prfx_custom_meta()
{
add_meta_box(
    'some_meta_box_name'
    ,__( 'Some Meta Box Headline', 'plugin_textdomain' )
    ,'render_meta_box_content' //this is callback function.
    ,'post_type'
    ,'advanced'
    ,'high'
);

}
add_action( 'add_meta_boxes', 'prfx_custom_meta' );
?>
  

我使用上面的代码在Wordpress中创建了一个元数据箱。但是,为此   代码它没有显示出来   找不到解决方案。请提出任何有关该问题的想法   

1 个答案:

答案 0 :(得分:1)

这完全取决于您希望元数据出现的位置。

如果您希望它出现在帖子上,那么您需要使用

if ( ! function_exists( 'add_post_metabox' ) ){
    function add_post_metabox(){
        add_meta_box('post-meta', esc_html__('My Metabox', 'mytheme'), 'My_Metabox_function', 'post', 'side', 'low');
    }
}

add_action('admin_init', 'add_post_metabox');

然后使用

创建元数据箱
if ( ! function_exists( 'My_Metabox_function' ) ){
    function My_Metabox_function( $post ){
        //metabox layout and variables here
    }
}

if ( ! function_exists( 'My_Metabox_save_function' ) ){
    function My_Metabox_save_function($post_id){
        global $post;
        if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ){
                return $post_id;
            } else{
                //do save here
            }
        }
    }


add_action( 'save_post', 'My_Metabox_save_function' );

如果你想在页面上找到它,那么你可以像上面那样创建它但是用页面而不是帖子

if ( ! function_exists( 'add_page_metabox' ) ){
    function add_page_metabox(){
        add_meta_box('page-meta', esc_html__('My Metabox on Page', 'mytheme'), 'My_Metabox_page_function', 'page', 'normal', 'high');
    }
}

add_action('add_meta_boxes', 'add_page_metabox');

您可以挂钩admin_initadd_meta_boxes个钩子。有关详细说明,请参阅here

您可以将其放在functions.php文件中,也可以将其设置在单独的.php文件中,并在functions.php中使用以下内容进行调用:

require_once( get_template_directory(). '/include/metaboxes.php' );

这将包含位于您主题的metaboxes.php目录中的/include