Wordpress the_meta and get_post_meta-在自定义字段中隐藏空值
如果自定义字段没有值,我试图隐藏它们的显示。如果我用的来显示它们,那么标题就会显示,无论自定义字段中是否有任何值 它生成以下html:Wordpress the_meta and get_post_meta-在自定义字段中隐藏空值,wordpress,Wordpress,如果自定义字段没有值,我试图隐藏它们的显示。如果我用的来显示它们,那么标题就会显示,无论自定义字段中是否有任何值 它生成以下html: <ul class="post-meta"> <li> <span class="post-meta-key">My Custom Field Title</span> </li> <li> </ul> 我的自定义字段标题 如果页面上没有内容,我真的不想要标题。所以
<ul class="post-meta">
<li>
<span class="post-meta-key">My Custom Field Title</span>
</li>
<li>
</ul>
-
我的自定义字段标题
-
如果页面上没有内容,我真的不想要标题。所以我试着:
<?php
$ck = get_post_custom_keys($post_id); //Array
foreach ($ck as $k) {
$cv = get_post_custom_values($k, $post_id ); //Array
foreach ($cv as $c) {
echo (' - ');
echo ($c);
}
}
?>
$c的Echo(应用于帖子的自定义值)如下所示:
没有值:
- 1-1343633746:1——现场_5014a45c9a2df——现场_5014a48c38f9d——现场_5014a48c2cc82
- 1-1343603999:1-3杯鸡蛋-field_5014a45c9a2df-field_5014a48c38f9d-2杯面粉-field_5014a48c2cc82
谢谢 主题是否仅显示某些自定义字段?与其测试所有内容,为什么不测试这些特定的自定义字段是否为空 例如
您可以使用
empty()
检查空值,您可以检查字段是否以下划线开头(内部值如\u edit\u last
)并跳过这些值
<?php
$ck = get_post_custom_keys($post_id); //Array
foreach ($ck as $k) {
if (substr ($k, 0, 1) == '_')
{ // skip keys starting with '_'
continue;
}
$cv = get_post_custom_values($k, $post_id ); //Array
foreach ($cv as $c) {
if (empty ($c))
{ // skip empty value
continue;
}
echo ($k . ': ' . $c . '<br/>');
}
}
?>
不幸的是,情况并非如此。例如,我有一个网站,在那里我为管理员安装了高级自定义字段,管理员不是我。如果我正在写一个主题供除我之外的任何其他管理员使用,那么我将不知道具体的字段名。奇怪的是,_meta足够聪明,可以分辨出差异,哪些是由admin添加的,但我不知道如何添加。这是返回非空字段的值-做得很好。现在,一旦我弄清楚如何取回标题,当字段不为空时,我将发布该解决方案。谢谢!:)如果按标题表示键名,则它们位于$k
变量中。因此,您可以使用echo($k.:'.$c.'显示它们代码>
<?php
$ck = get_post_custom_keys($post_id); //Array
foreach ($ck as $k) {
if (substr ($k, 0, 1) == '_')
{ // skip keys starting with '_'
continue;
}
$cv = get_post_custom_values($k, $post_id ); //Array
foreach ($cv as $c) {
if (empty ($c))
{ // skip empty value
continue;
}
echo ($k . ': ' . $c . '<br/>');
}
}
?>