【问题标题】:Wordpress pagination url 404 error with WP-PAGINATEWP-PAGINATE 的 Wordpress 分页 url 404 错误
【发布时间】:2012-07-10 08:57:06
【问题描述】:

有谁知道为什么 Wordpress Multisite 的 WP-PAGINATE 插件在页码和上一个/下一个箭头的链接中重复一个站点的主页 url?该页面是默认帖子页面,不使用自定义帖子。该插件的所有分页链接都生成 404。我已尝试更新永久链接。

以下是它提供的 URL 示例: http://www.site.com/a_site_name/a_site_name/page/2

应该是: http://www.site.com/a_site_name/page/2

谢谢。

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    为了解决这个问题,我打开 wp-includes/link-template.php 并注释掉第 1389 行,将其替换为以下内容:

    //$home_root = preg_quote( trailingslashit( $home_root ), '|' );
    $home_root = preg_quote( $home_root, '|' );
    

    (使用的 Wordpress 版本是 3.3.1)

    【讨论】:

      【解决方案2】:

      我知道这篇文章有点陈旧......但是如果它对某人有所帮助,那就太好了。我尝试使用 WP Paginate 插件,但它并没有为我做杰克,所以我选择了这个替代方案,它为我解决了所有问题。

      HTML/PHP:

      <?php
          //Fix homepage pagination
          if ( get_query_var('paged') ) { $paged = get_query_var('paged'); } else if ( get_query_var('page') ) {$paged = get_query_var('page'); } else {$paged = 1; }
      
          $temp = $wp_query;  // re-sets query
          $wp_query = null;   // re-sets query
          $args = array( 'post_type' => array('assignment', 'student-post'), 'orderby' => 'date', 'order' => 'DESC','posts_per_page' => 15, 'paged' => $paged);
          $wp_query = new WP_Query();
          $wp_query->query( $args );
          while ($wp_query->have_posts()) : $wp_query->the_post(); 
      ?>
      

      这允许做几件事。一种是检查您是在主页、页面还是单身,并告诉 $paged 变量如何依次做出反应。它还允许您使用自定义帖子类型查询分页。此外,通过不使用 query_post,您可以避免使用它时有时会遇到的一些非常时髦的东西。

      在你的functions.php中

      function paginate() {
      global $wp_query, $wp_rewrite;
      $wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
      
      $pagination = array(
          'base' => @add_query_arg('page','%#%'),
          'format' => '',
          'total' => $wp_query->max_num_pages,
          'current' => $current,
          'show_all' => true,
          'type' => 'list',
          'next_text' => '&raquo;',
          'prev_text' => '&laquo;'
          );
      
      if( $wp_rewrite->using_permalinks() )
          if ( is_home() ) {
              //fixes index.php weird error on how it displays the pagination URL which causes errors only on index.php
              $pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . '?page=%#%/', 'paged' );
          } else {
              $pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
          }
      if( !empty($wp_query->query_vars['s']) )
          $pagination['add_args'] = array( 's' => get_query_var( 's' ) );
      
      echo paginate_links( $pagination );
      }
      

      这最初来自http://bavotasan.com/2011/simple-pagination-for-wordpress/,我稍微修改了它以使分页在主页上工作。

      这又做了几件事。它为您的页面分页,每个页面都有自己的链接(我觉得这很好),它还重写了 URL 以允许漂亮的永久链接。出于某种原因,wordpress 在 index.php 上提供了 404 页面,所以我更改了 'page/%#%/', 'paged' );到 '?page=%#%/', 'paged' );并将其包装在 is_home() 的条件中。这解决了我的分页问题和漂亮的永久链接。

      可选的分页样式

      ul.page-numbers {
          margin: 20px 0 10px;
          width: 100%;
          padding: 0;
          font-size: 12px;
          line-height: normal;
          clear: both;
          float: left;
      }
      
      ul.page-numbers li {
             float: left;
          }
      
      ul.page-numbers a,
      ul.page-numbers span {
          border-radius: 3px;
          -moz-border-radius: 3px;
          -webkit-border-radius: 3px;
          background: -webkit-gradient(linear, left top, left bottom, from(#E4E3E3), to(#FFFFFF));
          background: -moz-linear-gradient(top,  #E4E3E3,  #FFFFFF);
          filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#E4E3E3', endColorstr='#FFFFFF');
          padding: 3px 4px 2px 4px; 
          margin: 2px;
          text-decoration: none;
          border: 1px solid #ccc;
          color: #666;
      }
      
      ul.page-numbers a:hover,
      ul.page-numbers span.current {  
          border: 1px solid #666;
          color: #444;
      }
      

      【讨论】:

        猜你喜欢
        • 2015-07-18
        • 1970-01-01
        • 2013-05-30
        • 1970-01-01
        • 1970-01-01
        • 2018-12-10
        • 2012-05-31
        • 2013-01-11
        • 2017-09-22
        相关资源
        最近更新 更多