编辑:下面的功能和插件可以工作,但不需要Nexgen galley的最新版本作为设置特色图像的功能:
编辑2:我的插件只是为了练习,我使用了最初发布的函数来创建一个具有OP所需功能的插件。
代码位于Gist.
首先,在所有要显示预览图像的帖子中,必须添加一个名为“gallery\\u id”的自定义字段:
请注意,您无需将NexGEN gallery放入帖子中,您可以使用图库中的图像,即使没有图库附加到帖子中,只需将gallery_id
文章中的自定义字段,您就完成了。
之后,在你的functions.php
放置:
function nextgen_preview_img( $post = null, $linkto = \'post\') {
if ( intval($post) ) $postid = $post;
if ( empty($post) ) global $post;
if ( is_object($post) && ! isset($postid) ) $postid = $post->ID;
if ( ! intval($postid) ) return;
$gallery_id = (int)get_post_meta($postid, \'gallery_id\', true);
if (! intval($gallery_id) ) return;
global $wpdb;
$galleries = $wpdb->prefix . \'ngg_gallery\';
$images = $wpdb->prefix . \'ngg_pictures\';
$gallery = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $galleries WHERE gid = %d", $gallery_id) );
if ( $gallery ) {
if ( intval($gallery->previewpic) ) {
$thumb = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $images WHERE pid = %d", $gallery->previewpic) );
} else {
$thumb = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $images WHERE galleryid = %d ORDER BY sortorder ASC LIMIT 1", $gallery_id) );
}
if ( $thumb ) {
$meta = (array) maybe_unserialize($thumb->meta_data);
$file = ( isset($meta[\'thumbnail\'][\'filename\']) ) ? \'thumbs/\' . $meta[\'thumbnail\'][\'filename\'] : $thumb->filename;
}
$url = site_url( trailingslashit($gallery->path) . $file );
$img = sprintf(\'<img src="%s" class="nextegen_preview_img" alt="%s" />\', esc_url($url), $thumb->alttext );
$link = $linkto == \'post\' ? get_permalink($post) : site_url( trailingslashit($gallery->path) . $thumb->filename );
printf(\'<a href="%s" class="nextegen_preview_a">%s</a>\', $link, $img);
}
}
This function get the preview image from the NexGEN gallery identified by the custom field \'gallery_id\' attached to a post.
画廊有一些帖子,那么,该功能如何选择要显示的图像?很简单:如果在NexGEN gallery设置中选择了“预览图像”,则将使用该图像,否则将根据您在NexGEN设置中设置的排序顺序使用第一个图像。