web-dev-qa-db-ja.com

WordPressブログのページネーションが機能しない

私はまだこの問題で立ち往生しています。

私のWordPressブログが機能していません http://www.example.com/news

別のページ番号をクリックすると、URL(およびページタイトル)が正しく更新されますが、別の投稿は表示されません。

私はもう試した:

  • すべてのプラグインを無効にする
  • パーマリンク構造の変更
  • [設定]> [閲覧]に表示されるブログ投稿の数を変更する
  • http://www.example.com/recall-news を別のパスに変更して、「news」という名前の投稿カテゴリとの競合を回避します

私には何もうまくいきませんでした。

カスタムクエリの解決策はたくさんありますが、[設定]> [読み取り]> [投稿ページ]で設定した投稿ページを使用しているため、このページに投稿を表示するコードは記述していません。

  • この場合、ブログのページ付けを修正するためにどのWordPressファイルを変更しますか?functions.phpに何かを追加できると思いますが、まだ解決策が見つかりません。

更新:私はまだ解決策を見つけていません。私は自分のクエリを書くことでそれができることを知っていますが、デフォルトのWPブログを使い続けたいです。

9
cpcdev

あなたの問題がWordPressに関連しているという保証はありません。しかし、あなたは非常に一般的な質問をしていないので、私はあなたに非常に一般的な答えを与えるつもりです。これはあなたが理解するのに役立つはずです何が悪いのかを見つけ出し、自分で解決します。

  1. チェックアウト アンダースコア 。ダウンロードしてテンプレート(index.phparchive.phpなど)を確認し、下線が含まれているものが不足していないかどうかを確認します。アンダースコアの良いところは、実行中のテーマを作成するために必要なすべての基本的なものであり、飾り気のないものです。したがって、コードに含まれていない場合は、調査する価値があるかもしれません。 have_postsに関連するコードブロックには特に注意してください。

  2. 実際にはテーマに問題はないかもしれません。別のテーマ(たとえば、便利にダウンロードした下線)をテストして、テーマが含まれているかどうかを確認してください。ページネーションは機能し、無傷です。もしそうなら、あなたは運がいいです...つまり、アンダースコアで正しいコードの何が悪いのかを調整するために、もう少し深く掘り下げる必要があるということです。

  3. テーマに問題はないが、実際にはサーバー構成に問題があることに気付いた場合、それは、いわば安心の1つでもあります。これは、理論的には、インストールを別の場所でテストするか、サーバーを再インストールして機能させることができるはずであることを意味します。ここまで進む前に、WordPressのバージョンを再インストールしてみてください。誰が知っている...それはうまくいくかもしれない。

1
smcjones

Category.phpファイル(別名archive.php)のWPループ)を確認してください。次のものが含まれている必要があります。

if (have_posts()) : while (have_posts()) : the_post();

そして終了しました:

endwhile; endif;
1
pouriya kordaki

Query_post関数で「page」/「paged」変数を渡す必要があります。

if ( get_query_var('paged') ) {
 $paged = get_query_var('paged');
} elseif ( get_query_var('page') ) {
 $paged = get_query_var('page');
} else {
 $paged = 1;
}
query_posts(array('paged' => $paged));
if (have_posts()) : while ( have_posts() ) : the_post(); ?>
<!--Your HTML-->.
<?php endwhile; endif;  wp_reset_query(); ?>
1
Kable

テーマにファイルarchive-learning.phpを作成します。

つまり、post_typeは「学習」です

<?php
if ( get_query_var( 'paged' ) ) {
        $paged = get_query_var( 'paged' );
    } elseif ( get_query_var( 'page' ) ) {
        $paged = get_query_var( 'page' );
    } else {
        $paged = 1;
    } 


<?php
$custom_args = array(
        'post_type'     => 'learning',
        'post_status'   => 'public',
        'orderby'       =>  'date',
        'order'         =>'DESC',    
         'posts_per_page'=>12,//limit 6
         'paged' => $paged
    );
$wp_query = new WP_Query( $custom_args );
$getPosts =  get_posts($custom_args);

?>
<?php if ($getPosts) : ?>
                                <?php global $post,$wp_query;?>
                                <?php foreach ($getPosts as $post): ?>
                                <?php setup_postdata($post);?>
                                <?php echo "your content here";?>
                                <?php endforeach;?>
                                        
                                <?php
                                else :
                                        
                                        

                                endif;
                        ?>
<div class="pagenation"><?php if (function_exists(custom_pagination)) {custom_pagination($wp_query->max_num_pages,"",$paged);} ?></div></div>
    <?php wp_reset_postdata(); ?>
function custom_pagination($numpages = '', $pagerange = '', $paged='') {

  if (empty($pagerange)) {
    $pagerange = 2;
  }

  /*
   * This first part of our function is a fallback
   * for custom pagination inside a regular loop that
   * uses the global $paged and global $wp_query variables.
   * 
   * It's good because we can now override default pagination
   * in our theme, and use this function in default queries
   * and custom queries.
   */
  global $paged;
  if (empty($paged)) {
    $paged = 1;
  }
  if ($numpages == '') {
    global $wp_query;
    $numpages = $wp_query->max_num_pages;
    if(!$numpages) {
        $numpages = 1;
    }
  }

  /** 
   * We construct the pagination arguments to enter into our paginate_links
   * function. 
   */
  
  $pagination_args = array(
  'base'           =>add_query_arg('page','%#%'),
  'format'          => 'page/%#%',
  'total'           => $numpages,
  'current'         => $paged,
  'show_all'        => False,
  'end_size'        => 1,
  'mid_size'        => $pagerange,
  'prev_next'       => True,
  'prev_text'       => __('&laquo;'),
  'next_text'       => __('&raquo;'),
  'type'            => 'plain',
  'add_args'        => false,
  'add_fragment'    => ''
);

  $paginate_links = paginate_links($pagination_args);

  if ($paginate_links) {
    echo "<nav class='custom-pagination'>";
      //echo "<span class='page-numbers page-num'>Page " . $paged . " of " . $numpages . "</span> ";
      echo $paginate_links;
    echo "</nav>";
  }

}
0
css.cutter

Wp-Pagenavi を使用してページネーションを生成してみてください。そうすれば、少なくとも問題がデフォルトのページングなのか、ページングされた変数を正しく埋めていないコーディングのエラーなのかを確認できます。

0
Skipp

これを試して

    global $wpdb;

    $pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
    $limit = 20;
    $offset = ( $pagenum - 1 ) * $limit;
    //$entries = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}design_information LIMIT $offset, $limit" );
     $entries = $wpdb->get_results("Select * From design_information ORDER BY id DESC LIMIT $offset, $limit",ARRAY_A);

echo '<div class="wrap">';
<table class="widefat">
    <thead>
        <tr>
           <th>SNo.</th><th>Layout</th><th>Org Description</th>
        </tr>
    </thead>

    <tbody>
        <?php if( $entries ) { ?>

            <?php
            $count = 1;
            $class = '';
    //echo "<pre>";
    //print_r($entries);
    for($i=0;$i<count($entries); $i++)
    {

$pid=$entries[$i]['id'];
                $class = ( $count % 2 == 0 ) ? ' class="alternate"' : '';
          ?>
            <tr<?php echo $class; ?>>
                <td>
              <?php echo $entries[$i]['id'];
                //echo $count; 
                $count++;?>
          </td>
<td>
      <?php echo $entries[$i]['layout'];?>
  </td>
  <td> 
      <?php echo $entries[$i]['org_description'];?>
  </td>

  </tr>
</table>
0
Ricky

私も「投稿ページ」で遊んだことがありますが、結果が出ません。

私にとって唯一有効な解決策は、 Page-Navi プラグインと組み合わせたカスタムクエリでした。

私のテンプレートには次のコードがあります:

    <?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array(
        'post_type'         => 'post',
        'orderby'           => 'date',
        'order'             => 'DESC',
        'post_status'       => 'publish',
        'posts_per_page'    => 5,
        'paged'             => $paged,
    );
    $q = new WP_Query( $args );

    if ( $q->have_posts() ) {
        $displaylist = '<div class="list-group">';

        while ( $q->have_posts() ) {
            $q->the_post();

            // build up your entry

            unset( $displayTag );
        }

        $displaylist .= '</div>';

        echo( $displaylist );

        wp_pagenavi( array( 'query' => $q ) );

        wp_reset_postdata();
    }
?>

とともに post_per_pageサイトごとにエントリを管理します。 whileループでは、表示する必要のあるエントリを作成します。

0
Manu Zi