如何获取元框名称和值

时间:2014-08-11 作者:Mithun Sarker Shuvro

我有几个元字段,如

属性名称------->bla bla,属性ID------->1234,属性地址------->bla bla bla,

等等

我想打印所有元框名称及其值。我该怎么做?

1 个回复
最合适的回答,由SO网友:codearachnid 整理而成

看起来您正在尝试构建一种方法来显示自定义帖子类型的一组元字段。使用get_post_custom 您可以在一个请求中获取单个帖子的所有自定义帖子元。然后使用循环的组合,您可以根据需要构建输出。如何实现这一点的粗略示例如下:

wpse_157410_custom_meta_box( $display_fields = array(), $ID = null, $echo = true ) {

    // if provided $ID is null fetch the current post
    $ID = is_null( $ID ) ? get_the_ID() : $ID;
    $output = \'\';
    $row_template = apply_filters( \'wpse_157410_custom_meta_box/row_template\', \'<div><label>%s</label><span>%</span></div>\' );
    $values_delimiter = apply_filter( \'wpse_157410_custom_meta_box/values_delimiter\', \',\' ):
    $custom_post_meta = get_post_custom( $ID );

    foreach( $custom_post_meta as $key => $values ){

        $title = \'\';
        if( array_key_exists( $key, $display_fields ) || empty( $display_fields ) ){
            $title = empty( $display_fields ) ? $key : $display_fields[ $key ];
        }

        // skip to the next record if we can\'t display a title
        if( empty( $title ) )
            continue;

        $value = implode( $values_delimiter, $values );
        $output .= apply_filters( \'wpse_157410_custom_meta_box/row_template\', 
            sprintf( $row_template, $title, $value ), 
            $values, 
            $key, 
            $ID,
            $custom_post_meta, 
            $display_fields
            );
    }

    output = apply_filter( \'wpse_157410_custom_meta_box/output\', $output, $custom_post_meta, $ID, $display_fields, $echo ):

    if( $echo ) {
        echo $output;
    } else {
        return $output;
    }
}
要在模板中显示这一点,您只需为字段组创建一个简单的数组。使用适当的标记进行修饰,然后将方法放置到位,它将构建字段输出:

// get the meta group for the current post (for a specific post 
// just supply the $post_id as the second argument)
$field_group = array(
    \'property_name\' => \'Property Name\',
    \'property_address\' => \'Property Address\',
    \'property_value\' => \'Property Value\'
    );
wpse_157410_custom_meta_box( $field_group );

结束

相关推荐

WPAlChemy Metabox重写插件

所以我的问题是:我创建了一个名为“项目”的自定义帖子类型。我已经通过WPAlchemy成功添加了几个代谢组。这些很好用。我遇到的问题是,当我为相关项目创建带有复选框的元框时,我可以使用复选框列出所有项目标题,但当我至少选择一个并保存自定义帖子时,它会重写Slug。我想是因为我打电话<?php the_title(); ?>. 下面是我的meta PHP文件代码:<div class=\"my_meta_control\"> <p>Add or subt