我有一个称为“软件”的自定义帖子类型,其中包含各种自定义字段,例如字幕,价格,屏幕截图,下载链接等。我创建了一个函数,允许对其中一些自定义字段使用tinyMCE编辑窗口。我一直试图在页面上显示这些字段,但是没有成功。

我正在使用的方法是:

<h1><?php the_title();?></h1>
<h3><?php echo get_post_meta(get_the_ID(), 'subtitle', TRUE); ?></h3>


这是页面的链接。

页面上的<hr/>下方是所有创建的元的列表。由于某些奇怪的原因,唯一会显示的字段是“价格”。

任何人都知道我缺少什么吗?

评论

它确实是get_post_meta()函数,并且如果您在循环内调用它,它应该可以工作...除非您没有使用正确的自定义字段名称。如果它们是通过诸如meta-box之类的插件实现的,则通常带有前缀。您可以张贴代码如何声明自定义字段吗?一种解决方案是在PhpMyAdmin中打开wp_postmeta表,并在meta_key列中搜索LIKE%...%,然后将“ subtitle”指定为meta_key值。您将确切看到Wordpress用来存储自定义字段的名称。

我知道这很旧,但是我使用此sql来获取phpmyadmin中所有元字段的列表:从wp_postmeta m中选择m.meta_key m GROUP BY m.meta_key

#1 楼

好吧,您使用的是:

get_post_meta(get_the_ID(), 'subtitle', TRUE);


所以,您对Wordpress说要获取“字幕”字段的元值,并且返回值的格式为串。请参阅get_post_meta()文档。

要获取帖子的所有元数据,应改用get_post_custom()函数。例如,如果您在循环内:

$custom = get_post_custom();
foreach($custom as $key => $value) {
     echo $key.': '.$value.'<br />';
}


这将返回帖子的所有元数据。例如,如果要检查“价格”元字段:

if(isset($custom['price'])) {
    echo 'Price: '.$custom['price'][0];
}


评论


最后一个代码块缺少a)

–carbide20
18年4月28日在23:37

看来$ custom ['price']返回一个数组,所以您可能需要执行$ custom ['price'] [0]

– Wal
19年6月25日在14:41

#2 楼

使用此代码解决您的问题。

$key_name = get_post_custom_values($key = 'Key Name');
echo $key_name[0];