我使用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>';
};
}
?>
任何有关教程或提示的想法或链接都会非常有用。
答案 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。