如何覆盖自定义字段的值?

时间:2013-08-25 作者:0bserver07

我创建了一个名为source的自定义值,它是在主题中检索到的href="" 位置现在,当我想在帖子中为source添加一个新值时,它只是将值相加,而不是替换我输入的值。我的意思是,当我将鼠标悬停在图像上时href 有两个我输入的链接。以下是我检索值的方式:

<a href="<?php echo get_post_meta($post->ID,"source",TRUE); ?>" target="_blank">
<?php the_post_thumbnail(); ?>
</a>
我知道如何从数据库中删除它,但对于新手来说,这几乎无法做到。有什么建议吗?

提前谢谢。

附言:我最初没有找到一种方法让帖子的缩略图href, 就这件事而言,我曾经这样想过。

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

我认为问题不在于自定义元字段的工作方式(查看XY problem). 问题在于使用相对URL,无论您是否意识到这是您正在做的事情。

留空,<a href="" target="_blank"> 默认情况下是您所在的页面。同样地echo \'<a href="\'.get_post_meta($post->ID,"nada",TRUE).\'" target="_blank">Hi</a>\'; 如果没有“nada”元键,则默认为您所在的页面。如果有一个键,则链接最终显示如下:

<a href="yourkeyvalue" target="_blank">
这是一个相对URL,将由浏览器转换为“您所在的页面”加上“yourkeyvalue”。在这里,您可以看到事物“添加”在一起。

我不能百分之百确定你想要完成什么,但我认为是这样的:

$url = get_post_meta($post->ID,"source",TRUE);
if (empty($url)) {
  $url = get_permalink();
} else {
  // make an absolute URL
  $url = site_url($url);
} ?>

<a href="<?php echo $url; ?>" target="_blank">
<?php the_post_thumbnail(); ?>
</a><?php
唯一需要注意的是下面这条线// make an absolute URL. 我不知道你到底在插入什么样的信息,或者你需要什么样的清理/验证/操作。

如果您只想在有源值的情况下打印链接,请使用以下选项:

$url = get_post_meta($post->ID,"source",TRUE);
if (!empty($url)) { ?>
  <a href="<?php echo $url; ?>" target="_blank">
  <?php the_post_thumbnail(); ?>
  </a><?php
} 
您的source 元值has to be 绝对URL--http://example.com/whatever. (You can probably get away with a protocol relative URL.)

结束

相关推荐