PHP Foreach循环仅显示该帖子的描述

时间:2012-01-14 16:35:55

标签: php wordpress post loops foreach

我使用wordpress,我想在每个页面上实现这一点,我会在自定义字段中看到不同的标题和描述:

  

1页(id为1)tile,description

     

2页(id为2)标题,描述

     

等。

我尝试过这段不同的代码(现在它只显示了id),但我所取得的只是将所有标题和描述放在每一页上。

$titles = array();
$result = mysql_query("SELECT * FROM wp_postmeta WHERE meta_key='_aioseop_title' OR meta_key='_aioseop_description'" );

while($row = mysql_fetch_array($result))
{
    $titles[] = $row['meta_value'];
    $ids[] = $row['post_id'];
}
?>
<?php 
if ($post_id = the_id()) 
{
    foreach ($titles as $meta_key=>$meta_value)
    {
        print $post_id;
        print '<div class="white">' . $meta_value . '</div>';
        print '<div class="green">' . $meta_value . '</div>';
    };
}
?>

任何有关教程或提示的想法或链接都会非常有用。

3 个答案:

答案 0 :(得分:0)

您的查询获取所有帖子后元数据 - 将其限制为post_id = the_id()

答案 1 :(得分:0)

您必须先获取该特定帖子的标题和说明。这可以通过确保字段post_id等于get_the_ID()

来完成
$result = mysql_query("SELECT * FROM wp_postmeta WHERE (meta_key='_aioseop_title' OR meta_key='_aioseop_description') AND `post_id` = '".get_the_ID()."';");

然后你可以把结果读成变量;

while ($row = mysql_fetch_array($result)) {
  $meta_data[$row["meta_key"]] = $row["meta_value"];
}

现在$meta_data["_aioseop_title"]应包含标题,$meta_data["_aioseop_description"]应包含说明。

答案 2 :(得分:0)

好的Patrickdev的帮助我设法做到了:)虽然不知何故,当我写foreach循环所有它做的是显示标题和描述两次(对于meta_data数组中的每个元素),所以当我删除foreach并只是使用了来自该数组的元素,它开始按原样运行:)

如果有人需要,这是代码:

<?php           

                                    $result = mysql_query("SELECT * FROM wp_postmeta WHERE (meta_key='_aioseop_title' OR meta_key='_aioseop_description') AND `post_id` = '".get_the_ID()."' ORDER BY meta_id DESC;");

                                    while ($row = mysql_fetch_array($result)) 
                                        {
                                            $meta_data[$row["meta_key"]] = $row["meta_value"];
                                        }
                                            print '<div class="white">' . $meta_data["_aioseop_title"] . '</div>';
                                            print '<div class="green">' . $meta_data["_aioseop_description"] . '</div>';
                                ?> 

再次感谢Patrickdev。