如何从附件或图库中获取下一个和上一个图片标题?

时间:2012-12-24 作者:Samia Ruponti

我想做一个滑块,就像this 在wordpress中。除了下一个/上一个按钮外,我已成功使滑块工作。我需要为下一个/上一个按钮获取下一个图像标题和上一个图像标题。我的代码如下:

 <script type="text/javascript" charset="UTF-8">

  var clist_autoplay = false;
  var ctemp_autoplay = clist_autoplay;

  jQuery(document).ready(function($) {        
    var larr = { 


<?php  //This is the desired value of Looping

$num=1;foreach ( $images as $attachment_id => $attachment ) {
    $image_img = wp_get_attachment_image_src( $attachment_id, \'large\' );



      $alt = get_post_meta($attachment->ID, \'_wp_attachment_image_alt\', true);
  $image_title = $attachment->post_title;
$caption = $attachment->post_excerpt;
  $description = $attachment->post_content;     
?>
            "<?php echo $image_title ?>": {
            "0": "<?php echo  $image_img[0] ?>",
            "1": 600,
            "2": 400,
            "3": "<?php echo $image_title ?>",
            "4": "#",
            "5": "<?php echo $image_title ?>",
            "6": "",
            "7": "",
            "8": "",
            "9": "",
            "num": <?php  echo $num++; ?>,
            "slideTitle": "<?php echo $caption ?>",
            "slideContent": "<p><?php echo $description; ?></p>",
            "slideNum": null,
            "next": "<?php echo $image_title ?>",
            "prev": "<?php echo $image_title ?>"
        },
        <?php    
     }
}

endwhile;
?>
我拿不到"next": "<?php echo $image_title ?>", "prev": "<?php echo $image_title ?>" 工作。

1 个回复
最合适的回答,由SO网友:Ahmad M 整理而成

您正在使用的关联数组$attach_id => $attach_obj 然后循环通过它。虽然有一些方法可以获取此数组中的下一个和上一个元素,但我更愿意依赖连续索引数组来获取这些对象。首先转换数组:

$images = array_values($images);
现在使用连续索引循环:

foreach ($images as $index => $attachment) {
最后检查下一个和上一个对象:

<?php if (isset($images[$index+1])) { ?>
    , "next": "<?php echo $images[$index+1]->post_title; ?>"
<?php } ?>
<?php if (isset($images[$index-1])) { ?>
    , "prev": "<?php echo $images[$index-1]->post_title; ?>"
<?php } ?>
编辑:下面是代码的外观:

<script>
    var clist_autoplay = false;
    var ctemp_autoplay = clist_autoplay;
    jQuery(document).ready(function($) {        
        var larr = {
<?php
$num = 1;
$images = array_values($images);
foreach ($images as $key => $attachment) {
    $image_img = wp_get_attachment_image_src( $attachment->ID, \'large\' );
    $alt = get_post_meta($attachment->ID, \'_wp_attachment_image_alt\', true);
    $image_title = $attachment->post_title;
    $caption = $attachment->post_excerpt;
    $description = $attachment->post_content;     
?>
            "<?php echo $image_title ?>": {
                "0": "<?php echo  $image_img[0] ?>",
                "1": 600,
                "2": 400,
                "3": "<?php echo $image_title ?>",
                "4": "#",
                "5": "<?php echo $image_title ?>",
                "6": "",
                "7": "",
                "8": "",
                "9": "",
                "num": <?php  echo $num++; ?>,
                "slideTitle": "<?php echo $caption ?>",
                "slideContent": "<p><?php echo $description; ?></p>",
                "slideNum": null
                <?php if (isset($images[$key+1])) { ?>
                    , "next": "<?php echo $images[$key+1]->post_title; ?>"
                <?php } ?>
                <?php if (isset($images[$key-1])) { ?>
                    , "prev": "<?php echo $images[$key-1]->post_title; ?>"
                <?php } ?>
                }
<?php } // end foreach ?>
    }
}

结束

相关推荐

没有#!的AJAX URL,如何防止在加载或重载时落入Single.php?

我正试图通过一个支持ajax的单页公文包来正确地处理问题。我读到没有必要#! 让它可以被谷歌抓取。所以我有干净的URL更新.pushState 当我加载一个帖子时。我的问题是,如果你点击F5或直接加载一个URL,你就会陷入单一。php。您可以在此处亲自尝试:http://www.youpiemonday.com/我怎样才能避免掉进文章页面?我想从单曲中重新定向。php到主页并触发打开那里的帖子。但是发表评论,这似乎不是一个好主意。不管怎样,我现在被困住了。。。你可以看到我对StackOverflow的思考