我找到了解决办法。经过一系列的搜索,我found some code 它确定帖子中是否包含特定的短代码。
该代码还尝试将参数解析为短代码。这很好,因为我需要库ID。发布的代码有一些问题,所以我对其进行了调整。下面是可以在帖子中找到短代码并获取其参数的代码:
<?php // Look for a NextGEN gallery
$galleryID;
$previewIndex = 1;
$regex_pattern = get_shortcode_regex();
preg_match (\'/\'.$regex_pattern.\'/s\', $post->post_content, $regex_matches);
if ($regex_matches[2] == \'nggallery\') :
// Found a NextGEN gallery find out what ID
// Turn the attributes into a URL parm string
$attribureStr = str_replace (" ", "&", trim ($regex_matches[3]));
$attribureStr = str_replace (\'"\', \'\', $attribureStr);
// Parse the attributes
$defaults = array (
\'preview\' => \'1\',
);
$attributes = wp_parse_args ($attribureStr, $defaults);
if (isset ($attributes["id"])) :
$galleryID = $attributes["id"];
endif;
if (isset($attributes["preview"])) :
$previewIndex = $attributes["preview"];
endif;
endif;
?>
需要调整的是参数的处理。使用trim而不是某种秘密宪章并切换到
wp_parse_args
正确处理短代码参数。一旦上述代码在WP循环中完成执行
$galleryID
将保存下一个画廊ID和
previewIndex
将设置为预览索引,如果没有,则设置为1
previewIndex
属性存在。
previewIndex
是我“添加”的一个属性,用于指示要用于库预览的缩略图。NextGEN会忽略它,并且库渲染为正常,但现在我可以将其用于我的主题,在预览条目中显示特定图标。
这是我的loop-index.php
和loop-category.php
处理创建库预览的:
<?php /* Enhance the content preview with an image from the NextGEN gallery */ ?>
<?php
global $nggdb;
$gallery = $nggdb->get_gallery ($galleryID, \'sortorder\', \'ASC\', true, 0, 0);
$image = $gallery[$previewIndex];
$total_images = count ($gallery);
?>
<?php if (isset($image) && isset($image->thumbURL)) : ?>
<?php /* Show the thumbnail */ ?>
<a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( \'Permalink to %s\', \'twentyten\' ), the_title_attribute( \'echo=0\' ) ); ?>" rel="bookmark">
<img class="entry-preview-image" src="<?php echo $image->thumbURL ?>" align="left" />
</a>
<?php endif; ?>
<?php /* Show the text excerpt */ ?>
<?php the_excerpt(); ?>
<?php /* Show the statement of number of images contained */ ?>
<em><?php printf( _n( \'This gallery contains <a %1$s>%2$s photo</a>.\', \'This gallery contains <a %1$s>%2$s photos</a>.\', $total_images, \'twentyten\' ),
\'href="\' . get_permalink() . \'" title="\' . sprintf( esc_attr__( \'Permalink to %s\', \'twentyten\' ), the_title_attribute( \'echo=0\' ) ) . \'" rel="bookmark"\',
number_format_i18n( $total_images )); ?>
</em>
<?php endif; ?>
这将利用另一个答案中有关访问的信息
NextGEN gallery 对象,以获取库中的缩略图和图像计数。