为什么这段代码只是循环相同的图像?我想在<li>
html标签中显示不同的图像,但它只是重复图像。
$querystr = "
SELECT wposts.ID, wposts.post_title
FROM $wpdb->posts wposts
WHERE wposts.post_type = 'attachment'
AND wposts.post_mime_type = 'image/jpeg'
ORDER BY RAND() LIMIT 10
";
$id = $wpdb->get_results($querystr, ARRAY_A);
) );
if(is_array($id) || is_object($id)){
// var_dump($id);
// echo "Total Photos: " . count($id);
foreach($id as $data){
$photo= wp_get_attachment_url( get_post_thumbnail_id( $data->ID));
$title = wp_get_attachment_image($data->post_title);
echo '<li><img src="'.$photo.'" alt="'.$title.'"/></li>';
//var_dump($photo);
}
}
答案 0 :(得分:3)
$id
后面有语法错误,括号) );
将其删除ARRAY_A
返回数组结果集,使用错误的对象。wp_get_attachment_url
它将返回图片网址。 但如果您同时使用wp_get_attachment_url
和get_post_thumbnail_id
,则只返回使用页面中的Featured Image
附加帖子的图片或发布部分。 使用 $array['column_name']
或者
如果它在对象 USE:$object->column_name
所以正确的代码是。
$querystr = "
SELECT wposts.ID, wposts.post_title
FROM $wpdb->posts wposts
ORDER BY RAND() LIMIT 10
";
$img_array = $wpdb->get_results($querystr, ARRAY_A);
// For Array
if (is_array($img_array)) {
foreach ($img_array as $data) {
$photo = wp_get_attachment_url(get_post_thumbnail_id($data['ID']));
$title = ($data['post_title']);
echo '<li><img src="' . $photo . '" alt="' . $title . '"/>' . $title . '</li>';
}
}
// For Object
$img_object = $wpdb->get_results($querystr);
if (is_object($img_object)) {
foreach ($img_array as $data) {
$photo = wp_get_attachment_url(get_post_thumbnail_id($data->ID));
$title = ($data->post_title);
echo '<li><img src="' . $photo . '" alt="' . $title . '"/>' . $title . '</li>';
}
}
答案 1 :(得分:0)
要从帖子中选择图片,您应该选择已发布的帖子。 将查询更改为
$querystr = "
SELECT wposts.ID, wposts.post_title
FROM $wpdb->posts wposts
WHERE wposts.post_type = 'attachment'
AND wposts.post_mime_type = 'image/jpeg'
AND wposts.post_status = 'publish'
ORDER BY RAND() LIMIT 10
";