将自定义字段添加到标题中的Lightbox仅提取当前页面数据,而不提取Lightbox项目数据

时间:2012-06-17 作者:Andrew Saenz

我当前正在使用高级自定义字段创建自定义字段has_the_portrait_sold 这将显示在我的Prettypto/Lightbox项目上。

但是,当我使用示例中的PHP时(正确或错误):

if(get_field(\'has_the_portrait_sold\')){
echo "The item has been sold.";
}else{
echo "The item has not been sold";
}
在标题中。php:

<script type text/javascript>
jQuery(document).ready(function($) {
$("a[href$=\'.jpg\'], a[href$=\'.jpeg\'], 
a[href$=\'.gif\'], a[href$=\'.png\']").prettyPhoto({
theme: \'dark_square\',
show_title: true, /* true/false */
social_tools: \'<?php the_title(); ?> <?php
if(get_field(\'has_the_portrait_sold\')){
echo "do something";
}else{
echo "do something else";
}
?>\'
});
});
</script>
然而,尽管这可能会根据需要在lightbox中包含自定义字段,但它显然只显示当前页面的自定义字段数据。我需要为当前lightbox项目/WordPress的图像附件打印自定义字段数据。

因此,我尝试在post-template.php. 请注意我的PHP技能是有限的,我非常决心使这项工作。

return apply_filters( \'wp_get_attachment_link\', "<a title=\'$post_title\'
href=\'$url\'>$link_text</a><?php
if(get_field(\'has_the_portrait_sold\')){
echo "do something";
}else{
echo "do something else";
}
?>", $id, $size, $permalink, $icon, $text );
}
我觉得我在包含自定义字段调用方面走的是正确的道路post-template.php . 然而,我只是不具备创建正确调用所需的PHP技能。我想知道这里是否有人能帮忙。我很绝望,但不愿意放弃。提前谢谢。

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

第一件事第一-YOU ARE NOT ON THE RIGHT PATH IF YOU ARE MODIFYING CORE FILES. 如果它不在wp-content, DO NOT MODIFY IT, 尤其是如果你可以诚实地说“我只是没有XXXX所需的PHP技能”。STAY OUT OF CORE FILES, PERIOD. 我不是在刻薄,我是在为你省去每次WordPress更新时丢失更改的麻烦,以及WordPress开发人员的愤怒。

你这样做会有问题的。听上去,你想打电话get_field() 在循环外部的标题中,但不知何故希望它知道它在循环中的位置。

一些可能有用的解释:自定义字段附加到特定页面/帖子(如您所知)。这意味着get_field() 将根据中的当前对象返回值$post - 在标题中,这是当前页面。不确定对象在$post 是否在任何给定点?在您想知道的地方使用此代码块:

<pre>
<?php print_r($post); ?>
</pre>
您也可以交换$post 具有$post->ID 查看它正在处理哪个帖子(尤其对于查看循环中的帖子非常有用)。

因此,您需要通过检查循环来注册一件物品是否售出,然后可能会将CSS类附加到循环中的输出,并使用CSS显示/隐藏该位。

如果您试图通过挂接到一个函数(例如,对于附件重写),那么将该挂接放在functions.php. 您可以在中修改或重写核心函数functions.php 使用过滤器和挂钩-查看Codex以了解更多信息。

结束

相关推荐