如何在页面中显示自定义字段的值


17

我有一个称为“软件”的自定义帖子类型,其中包含各种自定义字段,例如字幕,价格,屏幕截图,下载链接等。我创建了一个函数,允许对其中一些自定义字段使用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_keyLIKE%...%,然后将“ subtitle”指定为meta_key值。您将确切看到Wordpress用来存储自定义字段的名称。
pixeline 2013年

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

Answers:


17

好吧,您正在使用:

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

因此,您对Wordpress说要获取“字幕”字段的元值,并且返回的值应为字符串格式。参见get_post_meta()docu

要获取帖子的所有元数据,您应该改用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)
碳化物

1
似乎$custom['price']返回了一个数组,所以您可能需要做$custom['price'][0]
wal

3

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

$key_name = get_post_custom_values($key = 'Key Name');
echo $key_name[0];
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.