如何提取所有图像的特定图像元?

时间:2012-02-28 作者:Pat

几个星期来我的头撞在墙上。。。我正在修改一个名为Thesography的地理标签Wordpress插件。我已经通知了开发人员我过去的增强功能,他们也同意,因为这个插件是根据GNU通用公共许可证的条款授权的。

目前,该插件将返回一个小弹出谷歌地图为一个单一的职位,与一个单一的图像。我期待着扩大它有另一个功能,将显示1大谷歌地图。这张更大的地图将把我所有的地理标记图像作为pinpoint,然后使用Google Maps API,还将显示特定图像和pinpoint的缩略图和帖子标题。

在代码上:

下面是插件中的当前代码片段。此代码段从数据库中检索特定图像的图像数据。如您所见,此代码适用于当前帖子。如何修改它以包含所有帖子中的所有图像?

    if (is_null($imgID)) {
    $images = get_children(array(
        \'post_parent\' => $post->ID,
        \'post_type\' => \'attachment\',
        \'numberposts\' => 1,
        \'post_mime_type\' => \'image\',
        \'orderby\' => \'ID\',
        \'order\' => \'ASC\'
        ));
    if ($images) {
        foreach ($images as $image) {
            $imgID = $image->ID;
        }
    }
}

$imgmeta = wp_get_attachment_metadata($imgID);

if ($imgmeta)
{
if ($imgmeta[\'image_meta\'][\'latitude\'])
    $latitude = $imgmeta[\'image_meta\'][\'latitude\'];
if ($imgmeta[\'image_meta\'][\'longitude\'])
        $longitude = $imgmeta[\'image_meta\'][\'longitude\'];
if ($imgmeta[\'image_meta\'][\'latitude_ref\'])
     $lat_ref = $imgmeta[\'image_meta\'][\'latitude_ref\'];
if ($imgmeta[\'image_meta\'][\'longitude_ref\'])
        $lng_ref = $imgmeta[\'image_meta\'][\'longitude_ref\'];

$lat = geo_single_fracs2dec($latitude);
$lng = geo_single_fracs2dec($longitude);
if ($lat_ref == \'S\') { $neg_lat = \'-\'; } else { $neg_lat = \'\'; }
if ($lng_ref == \'W\') { $neg_lng = \'-\'; } else { $neg_lng = \'\'; }

$latlng = $neg_lat . number_format($lat,6) . \',\' . $neg_lng . number_format($lng, 6);
这里是Google地图API的一个示例片段,我需要将这个纬度和经度融入其中。它将包含纬度、经度、图像源URL及其显示的帖子标题。这样,用户可以将鼠标悬停在某个精确点上,查看图像,然后单击它以阅读更多内容。

  var point = new GLatLng(43.91892,-78.89231);
  var marker = createMarker(point,\'<a href="http://#>The Title of the Page</a><br><img src="http://image.jpg" width=150 height=100>\')
  map.addOverlay(marker);
这是一个有趣的!我的头一直撞在墙上,每次尝试都一无所获。

1 个回复
最合适的回答,由SO网友:kaiser 整理而成

获取所有图像:

$all_images = get_posts( array(
     \'post_type\' => \'attachment\'
    ,\'numberposts\' => -1
) );

foreach ( $all_images as $img )
    echo $img;
<小时>

Some notes:

<您可以使用extract 要缩短代码,请执行以下操作:

extract( $image[\'image_meta\'], EXTR_SKIP );
echo $latitude;
使用Yoda Conditions.

// Instead of 
if ($lng_ref == \'W\') { $neg_lng = \'-\'; } else { $neg_lng = \'\'; }
// Write Shorthand
$neg_lng = \'W\' === lng_ref ? \'-\' : \'\';
遵守严格的类型检查:

// Instead of just checking if the value is met,...
if ( \'a\' == $b )
// ...also check if the value has the same type:
if ( \'a\' === $b )

结束

相关推荐

images are broken

我有一段代码,用于显示来自RSS提要的每篇帖子上的图像,这些图像将从yahoo images search获取,我将把这段代码粘贴到我的单曲中。php文件,这样它就会出现在我的帖子之后,我在其中一个网站上找到了这段代码,这段代码用于获取图像,但不是从yahoo获取图像,而是从不同的feed获取图像我使用的代码如下:- <?php include_once(ABSPATH.WPINC.\'/rss.php\'); // path to include script $f