2017-04-13 8 views
0

ブログリストページに表示される投稿の数を選択できる選択があります。現時点では、selectが自動的にフォームを送信し、posts-per_pageの値が再ロード時のページクエリに対して更新されます。標準のWordPressの機能を使用してワードプレスページ毎の値をページング時に保持する

global $query_string; 
if(isset($_REQUEST['set_posts_per_page'])) 
    $ppp = $_REQUEST['set_posts_per_page']; 
else 
    $ppp = 12; 
query_posts("{$query_string}&posts_per_page=".$ppp); 

現在生成改ページボタン:

previous_posts_link('<span class="etc"></span>'); 
next_posts_link('<span class="etc"></span>'); 

ユーザーがページネーションとposts_per_pageオプションを使用できるように、この仕事を再するための最良の方法は何ですか?

同じように動作しなければならない異なるカスタムポストタイプのリストがいくつかあります(違いがある場合)。

答えて

0

ありがとうございました。唯一の欠点は、URLに変数getを追加することですが、これは世界の終わりではありません。

ここでは、next_posts_link()とprevious_posts_link()を完全に置き換え、代わりに独自のコードを追加しました。 get_previous_posts_page_link()とget_next_posts_page_link()を使用してページング機能が通常取得するURLを取得し、set_posts_per_page REQUESTパラメータを確認し、ページングURLに貼り付けます。

次に、手動でナビゲーションボタンを作成し、getパラメータでURLを入力します。 strtok関数は、このgetパラメータが毎回それを取り除くことによってURLに積み重なるのを止めます。

<?php global $wp_query; 
    $current_page = $wp_query->get('paged'); 


    /* Previous link */ 
    $prev_url = strtok(get_previous_posts_page_link(), '?'); 

    if($prev_url && $current_page!=1 && $_REQUEST['set_posts_per_page']!='') 
     $prev_url.="?set_posts_per_page=".$_REQUEST['set_posts_per_page']; 

    if($prev_url && $current_page!=1) : ?> 
     <a href="<?=$prev_url; ?>"> 
      <span class="navbuttons__btn navbuttons__btn--next btn btn--ui" rel="next"> 
       <i class="fa fa-arrow-left"></i> 
      </span> 
     </a> 
    <?php endif; 


    /* Next link */ 
    $next_url = strtok(get_next_posts_page_link(), '?'); 

    if($next_url && $current_page!=$wp_query->max_num_pages && $_REQUEST['set_posts_per_page']!='') 
     $next_url.="?set_posts_per_page=".$_REQUEST['set_posts_per_page']; 

    if($next_url && $current_page!=$wp_query->max_num_pages) : ?> 
     <a href="<?=$next_url; ?>"> 
      <span class="navbuttons__btn navbuttons__btn--next btn btn--ui" rel="next"> 
       <i class="fa fa-arrow-right"></i> 
      </span> 
     </a> 
    <?php endif; ?> 
0

ブログを取得するには、次のコードをご覧ください。

<?php 
     $queryObject = new WP_Query('post_type=blog&posts_per_page=5'); 
     // The Loop! 
     if ($queryObject->have_posts()) { 
     ?> 
     <ul> 
     <?php 
     while ($queryObject->have_posts()) { 
     $queryObject->the_post(); 
     ?> 

ページに改行を追加したい場合は、wpページ付けプラグインを使いやすくしてください。

ちょうど私は、これはあなたを助けることを願っています

<?php echo wp_paginate(); ?> 

を追加します。

は、これは私がやってしまったものである

+0

申し訳ありませんが、これは本当に問題にはなりません。そして、私は、絶対に必要でない限り、プラグインソリューションを探しているわけではありません。 –

+0

以下の係数をチェックしてページ番号を設定します。<?php next_posts_link(); ?> <?php previous_posts_link(); ?> – Vipin

0
<?php 
// the query to set the posts per page to 5 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args = array('posts_per_page' => 5, 'paged' => $paged); 
query_posts($args); ?> 
<!-- the loop --> 
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
     <!-- rest of the loop --> 
     <!-- the title, the content etc.. --> 
<?php endwhile; ?> 
<!-- pagination --> 
<?php next_posts_link(); ?> 
<?php previous_posts_link(); ?> 
<?php else : ?> 
<!-- No posts found --> 
<?php endif; ?> 
+0

質問のポイントは、改ページ時に失われない可変ページ/ページ値を持つことです。あなたの答えはどちらも質問をした理由を無視しています。 –

関連する問題