使用FancyBox在单页网站上加载发布的附加图像

时间:2013-06-05 作者:wyem

我正在尝试创建一个单页网站,在某些部分将帖子显示为缩略图。然后,如果单击缩略图,我希望在用户停留在家中时,使用fancybox加载本文中包含的所有图像。

我正在用这个加载模板上的第一个图像<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(); ?></a>.
和post图像就是这样在编辑器中创建的
<a href="blabla/image.jpg"><img src="blabla/image.jpg" /></a> .

单击缩略图时,浏览器将跟随永久链接。所以我现在只能用两种不同的方法。

加载the_content 然后隐藏所有图像,但第一个。。。

继续the_post_thumbnail(); 然后写一些可以找到帖子ID的东西,然后显示其余的附加图像。

我的目标是第二个,但我是一个非常新手的WP开发人员,所以不知道如何编写“find ID”函数。。。有人能帮忙吗?顺便说一句,Fancybox运行正常,我可以打开图像。

1 个回复
SO网友:GhostToast

我想我理解你现在想要实现的目标。您需要修改single.php (或single-post-type.php 如果是CPT),则可以通过ajax、gallery或其他方式运行if 内容通过ajax查看。这是我过去用来做这件事的东西(稍加修改)。

这是主循环,就像您上面指出的那样。我们假设fancybox已加载并准备就绪。

while($loop->have_posts()) : $loop->the_post();
    echo \'<a href="\'.get_permalink().\'" class="fancybox fancybox.ajax">\'.
    get_the_post_thumbnail($post->ID, \'some-size\', array(\'class\' => \'some-class\')).\'</a>\';
endwhile;
将此函数添加到functions.php. 如果通过ajax请求查看内容,则返回true。

// content loading in ajax? 
function is_ajax() {
    return (isset($_SERVER[\'HTTP_X_REQUESTED_WITH\']) && 
    $_SERVER[\'HTTP_X_REQUESTED_WITH\']=="XMLHttpRequest");
}
然后在你的单曲中,你会想弄清楚你是否在使用ajax,创建类似这样的内容:

if(is_ajax()){ 
    echo \'<div class="gallery-holder">\';
} else {
    get_header(); 
    // put any other divs that need to happen in a normal page here
}

// do something with your images here, such as an attachment loop

if(is_ajax()){ 
    echo \'</div>\'; // close anything we opened
} else {
    get_footer(); 
    // put any other closing divs here
}
wp_reset_query();
要知道,许多人“tab browse”和so会在新选项卡中打开缩略图预览,因此这将允许您的页面仍可以使用其他方法查看。

这也取决于你想怎么做run through all the imagessingle.php.

结束

相关推荐

Change order of posts

我最近发了一篇帖子,没有正确解释自己!再来一次,但要有更好的解释。我需要“选择选项”更改query\\u帖子的顺序。我当前的代码是:<select> <option selected=\"selected\">Select order of posts</option> <option>Highest price</option><!-- hypercart_meta_price \"order=DESC\