WordPress类型插件获得post's标题而不是image's标题


WordPress types plugin getting post's title instead of image's title

我使用的是一个叫做Types的wordpress插件。

我正在使用他们的自定义字段功能将图像上传到我的自定义侧边栏中的图库中。我还使用了一个灯箱来显示这些图像。

所以我试着让每个图像的标题出现

<?php $resortimages = get_post_meta(get_the_ID(), 'wpcf-r-images'); 
foreach ($resortimages as $resortimage) {
echo '<li><a href="'. $resortimage. '" rel="lightbox" title="" ><img src="'. $resortimage. '"/></a></li>';
}

我试过获取post title,但它只是获取post本身的标题。

Jesper,它看起来像类型图像字段只存储图像URL,而不是其内容。如果您想检索一些其他信息(例如,标题、说明和描述),可能必须尝试通过URL获取图像ID。在functions.php中:

/**
 * Retrieve the attachment ID from its URL
 * 
 * @param string $image_url
 * @return int $attachment[0] The attachment ID
 *
 * @link http://pippinsplugins.com/retrieve-attachment-id-from-image-url/
 */
function mytheme_get_attachment_id( $image_url ) {
    global $wpdb;
    $prefix = $wpdb->prefix;
    $attachment = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM " . $prefix . "posts" . " WHERE guid='%s';", $image_url ) ); 
        return $attachment[0]; 
}

之后,您可以使用您的foreach并检查您的id:

<?php
$resortimages = get_post_meta(get_the_ID(), 'wpcf-r-images'); 
foreach ($resortimages as $resortimage) {
    // Get attachment ID by its URL
    if ( $resortid = mytheme_get_attachment_id( $resortimage ) )
        $resortname = get_the_title($resortid);
    echo '<li><a href="'. $resortimage. '" rel="lightbox" title="' . $resorttitle . ' ><img src="'. $resortimage. '"/></a></li>';
}
?>

但是要注意要执行的查询的数量。希望能有所帮助!