我设法使用get_post_gallery()
我在“编辑库”窗口中为每一个输入了描述。
我试过使用get_image_tag()
从包括标题在内的所有图像中获取属性。问题是它显示了所有属性,而我只需要title属性。
此外,它在每个标题属性中始终显示“1”。
我的php代码:
$gallery = get_post_gallery(7, false );
$imageIds = explode(\',\', $gallery[\'ids\']);
// THE VALUES ARE HIGH TO AVOID THE EMPTY OUTPUT THAT OCCUR FOR SOME REASON
$randIds = array_rand($imageIds, 20);
for($i = 15; $i < 20; $i++)
{
$image = wp_get_attachment_image_src($randIds[$i], \'large\');
$line = \'<li><img src="\';
$line .= $image[0];
$line .= \'" title="\';
//$line .=
$line .= \'"/></li>\';
echo $line;
echo "GET_IMAGE_TAG";
echo get_image_tag($randIds[$i], false, true, false);
}
下面是我为每个迭代的HTML输出:
<li><img src="http://mywebsite.com/wp-content/uploads/2014/12/PA107885-768x1024.jpg" title=""/></li>
GET_IMAGE_TAG
<img src="http://mywebsite.com/wp-content/uploads/2014/12/PA107885-225x300.jpg" alt="" title="1" width="225" height="300" class="align size-medium wp-image-32" />
如何只获取title属性而不必放弃所有代码?
最合适的回答,由SO网友:Howdy_McGee 整理而成
WordPress实际上为附件使用内置的Post类型(称为attachment
) 因此,您可以使用以下相同的函数get_the_title()
这就是你要找的。尽管如此,我还是在下面修改了您的代码,使用了foreach
而不是for
回路:
$gallery = get_post_gallery( 7, false ); // Attempt to get Post Gallery
if( ! empty( $gallery ) ) { // IF Gallery Exists, proceed
$imageIds = explode( \',\', $gallery[\'ids\'] ); // Get an array of Gallery IDs
$randIds = array_rand( $imageIds, 20 ); // Randomize array
foreach( $randIds as $imageId ) { // Foreach instead of For, just easier
$image = wp_get_attachment_image_src( $imageId, \'large\' );
echo \'<li><img src="\' . $image[0] . \'" title="\' . get_the_title( $imageId ) . \'" /></li>\';
}
}