如何使用jQuery加载上一个或下一个附件?

时间:2011-10-25 作者:rogaroga

当我单身的时候。php页面中,我显示了第一个图像附件。然后,我想加载下一个(和上一个)图像附件,而无需重新加载页面。

所以在单曲中。php我从这里开始检索带有图像html的数组:

<?php $args = array(\'post_type\' => \'attachment\', \'post_mime_type\' => \'image\', \'order\'=> \'ASC\', \'numberposts\' => -1, \'post_status\' => null, \'post_parent\' => $post->ID ); 
      $attachments = get_posts($args);
  if ($attachments) {
            foreach ( $attachments as $attachment ) {
                 $my_image = wp_get_attachment_image($attachment->ID, large) );
         $attachments_list[] = $my_image;
    }
  }
  reset($attachments_list);
  $first_image = current($attachments_list);
  echo $first_image; 
?>
然后在脚本中。js文件我想获取我的php数组$attachments\\u列表的值,以便执行以下操作:

$(document).ready(function(){
    var count = attachments_list.lenght();
    var init = 0;
    var current = init;

    if (count > 1) {
        $(\'#next-img\').click(function() {
            if (current+1 < count) {
                current++
            } else if (current+1 === count) {
                current = init;
            }
            $(\'#image-container\').html(attachments_list[current]);
        });
        $(\'#previous-img\').click(function() {
            if (current > init) {
                current--
            } else if (current === init) {
                current = count-1;
            }
            $(\'#image-container\').html(attachments_list[current]);
        });
    }
});
如何在脚本中检索php$attachments\\u list数组到attachments\\u list的值。js文件?可能是Json?

感谢您的关注

2 个回复
SO网友:rogaroga

@米洛,谢谢!我用过a technique 在您发送的页面上找到。

它几乎起作用了。

我在前一首单曲的结尾添加了这个。php代码:

array_unshift($attachments_list,"");
wp_enqueue_script(\'myscript\');
wp_localize_script(\'myscript\', \'attachments_list\', $attachments_list);
要工作,必须在wp\\u head()之前调用此代码。然后,出于一个神秘的原因,第一个元素(索引为0)被打印在html头部的JS数组之后。这就是为什么在使用wp\\u localize\\u脚本发送之前,我必须取消移动数组中的空字符串。

最后一件事:

var count = attachments_list.length;
未定义。当我用一个数字替换count时,一切正常,我甚至可以使用attachments\\u list[索引]访问数组的元素,但数组的长度没有定义。

有什么想法吗?非常感谢。

SO网友:olenzilla

我刚刚在rogaroga遇到了你的问题,我相信它是以一种不那么刻薄的方式解决的。我试图通过wp_localize_script, 其中数组是通过重复调用array_push( $array, $value ), 所以数组是,如果var\\u dump\'d{ [0] => { "stuff" }, [1] => { "etc" } }, 然后在一条线上,他可怜的小孤独在小<script> 标签打印人wp_localize_script 是“东西”,打破了我的剧本。同样的问题。所以,我所做的只是简单地用数组的值指定数组的索引(绝对是hackish),然后wp_localize_script 在var\'d设置之后没有添加内容,现在很高兴包含了第一个设置,stuff。所以,明显的错误是wp_localize_script 错误处理传递给其索引为0的数据;我不知道为什么,但有一个经验上没有根据但功能性的答案。

结束

相关推荐

Create a blank test.php

有时有必要找出CSS错误或其他什么,如果您有一个最小的测试页面,只需插入要测试的特定代码,那就太好了。我如何创建这样一个空测试。php?我只能找到this. 但是,这样做只会创建与页面样式相同的页面。php一号,不是吗?我想我需要在我的功能中加入一些东西。php告诉Wordpress它应该为测试创建一个新模板。php?我该怎么做?提前非常感谢!:)