【问题标题】:WordPress Next and Previous Links (Custom Post Type) in same levelWordPress 下一个和上一个链接(自定义帖子类型)在同一级别
【发布时间】:2015-12-19 12:46:52
【问题描述】:

我想在同一级别中添加下一页和上一页链接。

我在 WordPress 代码库中找到了适用于所有页面(子页面和父页面)的解决方案:https://codex.wordpress.org/Next_and_Previous_Links#The_Next_and_Previous_Pages

但我想要的是同一级别内的导航。

有什么办法解决这个问题吗?

编辑:

<?php
        $pagelist = get_pages('post_type=publikation&sort_column=menu_order&sort_order=asc');
        $pages = array();
        foreach ($pagelist as $page) {
           $pages[] += $page->ID;
        }

        $current = array_search(get_the_ID(), $pages);

        $testPost = (get_pages( array( 'post_type' => 'publikation' ,'child_of' => $post->ID ) ) || $post->post_parent);

        $prevID = $pages[$current-1];
        $nextID = $pages[$current+1];
        ?>

        <div class="navigation">
        <?php if (!empty($prevID) && !$testPost) { ?>
        <div class="alignleft">
        <a href="<?php echo get_permalink($prevID); ?>"
          title="<?php echo get_the_title($prevID); ?>">Previous</a>
        </div>
        <?php }
        if (!empty($nextID) && !$testPost) { ?>
        <div class="alignright">
        <a href="<?php echo get_permalink($nextID); ?>"
         title="<?php echo get_the_title($nextID); ?>">Next</a>
        </div>
        <?php } ?>
        </div><!-- .navigation -->`

【问题讨论】:

    标签: wordpress navigation


    【解决方案1】:

    我知道这个主题已有 5 年历史,但我遇到了同样的问题并找到了一个简单的解决方案。我会在这里分享它,以防有人也在处理这个问题。

    您只需将get_pages(); 更改为get_posts();

            $pagelist = get_posts('post_type=publikation&sort_column=menu_order&sort_order=asc');
    

    【讨论】:

      【解决方案2】:

      这个呢……

      在您引用的代码中:

      <?php
      $pagelist = get_pages('sort_column=menu_order&sort_order=asc');
      $pages = array();
      foreach ($pagelist as $page) {
         $pages[] += $page->ID;
      }
      
      $current = array_search(get_the_ID(), $pages);
      $prevID = $pages[$current-1];
      $nextID = $pages[$current+1];
      ?>
      
      <div class="navigation">
      <?php if (!empty($prevID)) { ?>
      <div class="alignleft">
      <a href="<?php echo get_permalink($prevID); ?>"
        title="<?php echo get_the_title($prevID); ?>">Previous</a>
      </div>
      <?php }
      if (!empty($nextID)) { ?>
      <div class="alignright">
      <a href="<?php echo get_permalink($nextID); ?>" 
       title="<?php echo get_the_title($nextID); ?>">Next</a>
      </div>
      <?php } ?>
      </div><!-- .navigation -->
      

      编辑这个...

      <?php if (!empty($prevID)) { ?>
      

      ...检查帖子是当前帖子的父级还是子级。

      <?php 
      
      $testPost = (get_pages( array( 'child_of' => $post->ID ) ) || $post->post_parent);
      
      if (!empty($prevID) && !$testPost) { ...
      
      if (!empty($nextID) && !$testPost) { ...
      

      【讨论】:

      • 感谢您的帮助。但现在我根本没有导航:(
      • 它与 codex 中的示例中的代码相同。我只在 get_pages() 中添加了帖子类型。看起来像这样:$pagelist = get_pages('post_type=posttype&amp;sort_column=menu_order&amp;sort_order=asc');
      • 我们需要看看你如何实现我建议的代码
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-11
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-17
      相关资源
      最近更新 更多