自定义字段元数据未显示在我的窗口小部件中

时间:2012-06-01 15:49:31

标签: php wordpress metadata widget custom-post-type

感谢本网站上其他人的帮助,我现在可以在页面上正常使用我的进度条。

但是每次我尝试使用相同的源代码并将其保存为窗口小部件时,它会将我的两个自定义字段中的数据 - Target和Complete - 返回为零。由于Target和complete是相同的,因此它显示了小部件中完成的所有任务。

这是小部件中的“相关”代码段,如果需要,我可以发布完整的源代码:

$challenge_widget_query = new WP_query( array( 'post_type' => 'challenges', 'posts_per_page' => 3 ) );

while ($challenge_widget_query->have_posts()) : $challenge_widget_query->the_post(); 

    echo "<li><a href='".get_permalink()."'>".get_the_title()."</a>";

$target = (int) get_post_meta($post->ID, 'target', true);             
$complete = (int) get_post_meta($post->ID, 'complete', true);       
$percentage = $complete / $target;
$percentage = round($percentage * 100);
$whatsleft = 100-$percentage;
if($whatsleft < 0) $whatsleft=0;

echo "<table width='250' border='0' cellpadding='0' cellspacing='0'><tr>";

if($complete === $target) 
{echo "<td><img src='http://www.smokeyvstheworld.com/wp-content/uploads/2012/05/completed.gif' style='width:200px;height:24px;'></td>";}
elseif($complete == "0")
{echo "<td><img src='http://www.smokeyvstheworld.com/wp-content/uploads/2012/05/pending.gif' style='width:200px;height:24px;'></td>";}
else
{echo "<td width=". $percentage ."%><img src='http://www.smokeyvstheworld.com/wp-content/themes/spectre/images/brown/grnbar.jpg' style='width:100%;height:12px;'></td><td width=". $whatsleft ."%><img src='http://www.smokeyvstheworld.com/wp-content/themes/spectre/images/brown/grybar.jpg' style='width:100%;height:12px;'></td>";}


echo "</tr><tr><td colspan='2'><div align='right'>". $complete ." of ". $target ." completed</div></td>
  </tr></table></li>";

endwhile;
echo "</ul>";

我页面上的相同源代码工作正常......我不知所措

你可以在页面和小部件中看到这个: http://smokeyvstheworld.com/challenges

它似乎在某一点上切断了“回声”中的内容。我想我没有格式化它以显示

1 个答案:

答案 0 :(得分:0)

尝试这样做以确定实际问题的位置。

print "get_post_meta({$post->ID}, 'target', true)<br />";
print get_post_meta($post->ID, 'target', true);

这应该给你类似

的东西
get_post_meta(12, 'target', true);
12000

如果12中没有出现数字,则表示您尚未添加

global $post;

位于顶部,因此它不知道$ post-&gt; ID是什么。

如果未显示“12000”或其他数字,则实际上尚未存储该帖子的“目标”元键。您可以通过查看 wp_postmeta 表中的数据库进行检查。

祝你好运!