NextGen Gallery从1.00版开始支持模板引擎系统,用户可以定制自己的模板,用户自定义的模板优先级高于插件默认的模板。自定义模板的好处不用多说,NexGen提供给我们很多有用的数据,如何安排将由我们来决定。
修改album模板
在当前主题目录下创建一个目录名为nggallery,自定义的模板放在该目录下,NextGen Gallery总是先到该目录下寻找用户自定义模板,如果没有找到再调用默认模板。
先找到album的默认模板,默认有compact和extend两种样式,选择一个即可,该模板位于
/wp-content/plugins/nextgen-gallery/view/目录下(album-compact.php or album-extend.php)
选择一个拷贝到主题目录下的nggallery目录中,重命名为album-sample1.php,做任何你需要的修改。
要调用album-sample1.php,只需要这样写short code
[ album id=1 template=sample1 ]
修改其它模板的方式亦相同。
gallery.php – 默认的图集模板,shortcode[ nggallery id=1 ]调用该模板
imagebrowser.php – 默认的imagebrowser模板,如果后台options->gallery中选中“ The gallery will open the ImageBrowser instead the effect”这个模板就会用到
美中不足的是,选择自定义模板只能通过shortcode方式,也就是说如果album调用了album-sample1.php,通过点击某个gallery到达gallery页面,该页面仍然调用默认的gallery.php,而不是gallery-sample1.php,无法实现gallery的定制化。当然我可以将gallery.php也放到nggallery文件夹下,插件会优先调用主题目录下的gallery.php,缺点是不能同时拥有多个gallery样式。
看看NextGen Gallery调用模板的程序,问题就一目了然了
/** * Renders a section of user display code. The code is first checked for in the current theme display directory * before defaulting to the plugin * Call the function : nggGallery::render ('template_name', array ('var1' => $var1, 'var2' => $var2)); * * @autor John Godley * @param string $template_name Name of the template file (without extension) * @param string $vars Array of variable name=>value that is available to the display code (optional) * @param bool $callback In case we check we didn't find template we tested it one time more (optional) * @return void **/ function render($template_name, $vars = array (), $callback = false) { foreach ($vars AS $key => $val) { $$key = $val; } // hook into the render feature to allow other plugins to include templates $custom_template = apply_filters( 'ngg_render_template', false, $template_name ); if ( ( $custom_template != false ) && file_exists ($custom_template) ) { include ( $custom_template ); } else if (file_exists (STYLESHEETPATH . "/nggallery/$template_name.php")) { include (STYLESHEETPATH . "/nggallery/$template_name.php"); } else if (file_exists (NGGALLERY_ABSPATH . "/view/$template_name.php")) { include (NGGALLERY_ABSPATH . "/view/$template_name.php"); } else if ( $callback === true ) { echo "Rendering of template $template_name.php failed"; } else { //test without the "-template" name one time more $template_name = array_shift( explode('-', $template_name , 2) ); nggGallery::render ($template_name, $vars , true); } }
请问 我想在网站上显示2个画廊 该如何实现????我想实现在网站上显示两栏图片一栏是植物的 一栏是动物的(在主页上只显示一张) 点击后想实现画廊效果 即点击动物的 从服务器上查看、、、、、
两个画廊是指两个gallery还是两个album?
首页上显示一张图片,点击后跳转到另一个页面显示画廊吗?
gallery是通过shortcode插入,一页可以显示多个gallery,可以通过修改gallery模板达到你要的效果,只是不清楚你要的是不是两个gallery两列栏显示的效果
不好意思 描述模糊了 是这样的=>我想实现在网站上显示两张图片一张是植物的 一张是动物的 点击后想实现画廊效果 即点击动物的 从服务器上查看所有动物的图片 点击植物的查看所有植物的图片 都是在当前页面实现。
如果不刷新页面,就需要用ajax请求数据
服务器上所有的动物或植物图片,如果你用nextgen gallery的话,将他们分别加入到gallery就可以调用,如果你需要更特殊的画廊效果,也可以采用其他的gallery脚本
首页两张图片就是两个链接,出发ajax事件。
这个比较定制化,需要自己写代码,实现方法也很多,取决于你的具体需求。
这个可以单独拿个页面出来做相册吗?
可以,创建一个page模板,插入shortcode就行了
下次放假了请教你哈~
请多多指教啊
这应该是我说的吧…