如何使用上一张/下一张图片链接,而忽略父帖子/附件?

时间:2017-10-11 作者:Phil Gyford

我有一个图库页面,由gallery 短代码。

每个缩略图都链接到其图像的附件页,其中使用image.php 模板在我的孩子的二一六主题。

如果将图像附加到帖子,则previous_image_link()next_image_link() 仅链接到附加到同一帖子的其他图像(如果有)。

如何将上一个/下一个导航添加到image.php 哪个选项会忽略所有帖子附件,以及指向库中上一个/下一个图像的链接?如果它能让生活更轻松,那么图库将包含所有已发布的图像。

1 个回复
SO网友:Phil Gyford

也许有更好的方法可以做到这一点,但到目前为止,我必须做到这一点。我很高兴任何一个更了解WP的人能告诉我怎么做会更好!

“我的库”页面包含以下短代码:

[gallery media_category="943" orderby="post_date" order="DESC"]
我把它限制在学期943 在名为media_category. 如果使用这样的东西,还需要在$args 在下面

请注意orderbyorder 影响我们如何在下面的代码中获取下一个/上一个图像。

在我的image.php 模板一开始就有:

// Initial query args used for both next and previous:
$args = array(
    \'post_type\' => \'attachment\',
    \'post_mime_type\' => \'image/jpeg,image/gif,image/jpg,image/png\',  
    \'posts_per_page\' => 1, 
    \'post_status\' => \'inherit\',
    // The same orderby as in our gallery shortcode:
    \'orderby\' => \'post_date\',
    // The same taxonomy as in our gallery shortcode:
    \'tax_query\' => array(
        \'taxonomy\' => \'media_category\',
        \'field\' => \'term_id\',
        \'terms\' => 943,
    ),
    \'date_query\' => array()
);

// Add query args for finding previous image:
$args[\'order\'] = \'DESC\';
$args[\'date_query\'] = array(\'before\' => $post->post_date);

// Get previous image:
$prev_query = new WP_Query( $args );

while ($prev_query->have_posts()) {
    $prev_query->the_post();
    // Set previous image:
    $prev_image = get_post();
}
wp_reset_postdata();

// Add query args for finding next image:
$args[\'order\'] = \'ASC\';
$args[\'date_query\'] = array(\'after\' => $post->post_date);

// Get next image:
$next_query = new WP_Query( $args );

while ($next_query->have_posts()) {
    $next_query->the_post();
    // Set next image:
    $next_image = get_post();
}
wp_reset_postdata();
然后在模板中我想要链接的位置:

<?php
if ($prev_image) {
    ?>
    <a href="<?php the_permalink($prev_image); ?>" title="<?php echo get_the_title($prev_image); ?>">Previous image</a>
<?php
}
if ($next_image) {
    ?>
    <a href="<?php the_permalink($next_image); ?>" title="<?php echo get_the_title($next_image); ?>">Next image</a>
<?php
}
?>
我从不同的例子中把它拼凑在一起,似乎很有效。。。如果你知道改进,一定要让我知道!

结束

相关推荐

Hard coded main navigation

Theme twentyeleven版本1.5请帮助我,我收到了@Mayeneul Islam的回复,但这并没有解决我的问题,如果我不能激活导航节目,那不是世界末日,但我真的想解决title 和name 使用我的代码发布以下问题我已经尽了最大的努力自己去寻找答案。PHP新手;o/由于我找不到与客户主站点相匹配的博客主导航样式,我删除了以下内容: <nav id=\"access\" role=\"navigation\"> <h3 class