值打印在回声之外

时间:2011-06-21 作者:glu

我的代码验证并返回自定义字段值。但是,我无法获取要在锚内返回的值。

代码如下:

<div id="meta_mblink">
<?
if(function_exists(\'get_custom_field_data\')) {
echo \'<a href="\'.get_custom_field_data(\'mblink\', true).\'"></a>\';
} 
?>
</div>
返回的内容如下:

<div id="meta_mblink">
http://yada.yadayada.yada:5000/pop.jsp?id=1711436
<a href=""></a>
</div>

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

以下是我编写代码的方式:

$url = get_post_meta( get_the_ID(), \'mblink\', true );
if ( ! empty( $url ) ) {
    print \'<a href="\' . esc_url( $url ) . \'">MBLINK</a>\';
}

SO网友:Chip Bennett

我怀疑问题出在自定义函数上get_custom_field_data(). 你能发布函数定义吗?

第二个参数很可能对应于是否响应结果。尝试将其更改为false?

EDIT

Here\'s an example of this function being defined in a tutorial:

<?php function get_custom_field_data($key, $echo = false) {
    global $post;
    $value = get_post_meta($post->ID, $key, true);
    if($echo == false) {
        return $value;
    } else { 
        echo $value;
    }
}
?>
我建议只使用get_post_meta(), 而不是使用包装函数。

SO网友:Ryan Street

您需要在get\\u custom\\u field\\u data函数中将第二个参数设置为FALSE(或将其留空)。执行以下操作:

<div id="meta_mblink">
 <?php
 if(function_exists(\'get_custom_field_data\')) {
 ?>
 <a href="<?php echo get_custom_field_data(\'mblink\'); ?>"></a>
 <?php
 }
  ?> 
</div>

SO网友:Rev. Voodoo

<div id="meta_mblink">
 <?php
 if(function_exists(\'get_custom_field_data\')) {
 ?>
 <a href="<?php echo get_custom_field_data(\'mblink\', true); ?>"></a>
 <?php
 }
  ?> 
</div>
也许是这样的?我记得以前echos退出html时遇到过一些问题,这样做对我很有用

结束