如何在帖子上显示多个选中框选择自定义域?

时间:2013-09-06 作者:luckyrajiv

我已经创建了一个名为“Places”的自定义帖子类型。我创建了一个自定义字段

字段类型“多复选框”选项标题“酒吧类型”选项值“运动、摇滚、自行车、啤酒、现场乐队、休息室、美食、爱尔兰、卡拉OK酒吧”字段标题“酒吧类型”字段名称“酒吧类型”

当我添加新位置时,编辑页面上会显示带有复选框的值的Pub类型。我选择了所有的价值观(体育、摇滚……)

如何调用要显示的元数据是帖子上的自定义字段。

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

回路内部:

echo implode (\', \', get_post_meta($post->ID, \'typeofpub\', true) ? : array() );
这将打印所有逗号分隔的“typeofpub”。

如果您想在打印时做一些更高级的事情,例如用一些html包装它,一个好方法是在函数中创建自己的函数。php,谎言:

function typeofpub( $post_id = 0 ) {
  if ( empty( $post_id ) ) {
    global $post;
    $post_id = isset( $post->ID ) ? $post->ID : 0;
  }
  if ( empty( $post_id )  ) return;
  $types = (array) get_post_meta($post->ID, \'typeofpub\', true);
  if ( ! empty($types) ) {
    echo \'<ul class="types_container">\';
    foreach( $types as $type) {
      echo \'<li class="type-\' . sanitize_title_with_dashes($type) . \'">\';
      echo ucwords($type);
      echo \'</li>\';
    }
    echo \'</ul>\';
  }
}
然后在循环中简单地使用它,就像这样:typeofpub();

您可以根据需要更改html输出,在我的示例中,将打印无序列表,其中ul 标记具有类types_container 而且每li 项具有类type-{$type} e、 g.对于“Sport”类型,输出如下:

<li class="type-sport">Sport</li>
该函数也可以在循环外部使用,将post id作为param传递,例如。

typeofpub( 10 );

SO网友:cybmeta

您需要使用get_metadata()get_post_custom()作用在中,您位于可以使用的a主题文件的循环内,例如:

$post_meta = get_post_custom($post->ID);

if(isset($post_meta[\'typeofpub\'])) echo $post_meta[\'typeofpub\'];
如果该字段允许多重选择,则需要按照@G.M.在其答案中的建议循环或内爆结果。例如:

$post_meta = get_post_custom($post->ID);

if(isset($post_meta[\'typeofpub\']) && is_array($post_meta[\'typeofpub\'])) {
    echo implode(\' - \', $post_meta[\'typeofpub\']);
}

结束

相关推荐