2016-10-17 24 views
-1

我试图建立一个函数,其中游客可以选择每页显示的这样的职位数显示的帖子数量:我在哪里WordPress的:让用户选择每

enter image description here

开始以及如何实现这一目标?我目前使用query_post列出所有帖子:

<?php 
$paged = 1; 
query_posts(array('showposts'=> 10, 'post_type' => 'post', 'category_name' => 'jobseeker-announcements', 'order' => 'DESC', 'posts_per_page' => 10, 'paged' => get_query_var('paged'))); ?> 
<?php while (have_posts()) : the_post(); ?> 
<div class="post-list"> 
    <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> 
    <p class="datetime"><span>Date Posted:</span> <?php the_time('m/j/Y'); ?></p> 
    <p><?php the_excerpt(); ?></p> 
<!--/post-list--></div> 
<?php endwhile; ?> 
+0

在默认情况下,每页显示10后,如果你想显示的岗位作为游客,那么你需要自定义分页和使用GET方法,你可以设置每页和当前的页码后,这将是相处定制WordPress的查询在查询限制中使用。 –

回答

1

使用jquery change函数。

<?php 
if(isset($_GET['pageVal'])){ 
    $showposts = esc_sql($_GET['pageVal']); 
}else{ 
    $showposts = 10; 
} 
    $paged = 1; 
    query_posts(array('showposts'=> $showposts, 'post_type' => 'post', 'category_name' => 'jobseeker-announcements', 'order' => 'DESC', 'posts_per_page' => $posts_per_page, 'paged' => get_query_var('paged'))); ?> 
    <?php while (have_posts()) : the_post(); ?> 
    <div class="post-list"> 
     <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> 
     <p class="datetime"><span>Date Posted:</span> <?php the_time('m/j/Y'); ?></p> 
     <p><?php the_excerpt(); ?></p> 
    <!--/post-list--></div> 
    <?php endwhile; ?> 

<select class='page-select'> 
<option value='10'>10</option> 
<option value='10'>20</option> 
<option value='10'>30</option> 
</select> 
<script> 
jQuery.ready(function(){ 
$('.page-select').change(function(){ 
    $(location).attr('href', window.location.href+'?pageVal='+$('.page-select').val()); 
}); 
}); 
</script> 
+0

谢谢!这真的很有帮助。 –

+0

我做了一个小的修改,虽然,因为它没有得到pageVal的价值正确出于某种原因 \t如果(isset($ _ GET [ 'pageVal'])){ \t \t $页= $ _GET [ 'pageVal'] ; \t \t $ showposts = $ pages; \t} else { \t \t $ showposts = 10; \t} –

+0

使用esc_sql函数来避免sql注入。 –

0

这是您的解决方案的完美代码。

<?php 

    if(isset($_GET['page'])){ 
     $posts_per_page = esc_sql($_GET['page']); 
    } else { 
     $posts_per_page = 10; 
    } 

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

    query_posts(
     array( 
      'post_type' => 'post', 
      'category_name' => 'jobseeker-announcements', 
      'order' => 'DESC', 
      'posts_per_page' => $posts_per_page, 
      'paged' => get_query_var('paged'))); 

    while (have_posts()) : the_post(); ?> 

     <div class="post-list"> 
      <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> 
      <p class="datetime"><span>Date Posted:</span> <?php the_time('m/j/Y'); ?></p> 
      <p><?php the_excerpt(); ?></p> 
     </div> 

    <?php endwhile; ?> 

    <select class="page-select"> 
     <option value="10">10</option> 
     <option value="20">20</option> 
     <option value="20">30</option> 
    </select> 


    <script> 

    jQuery.ready(function(){ 

     $('.page-select').change(function(){ 

     var checkIndex = window.location.href.indexOf('?'); 

     if(checkIndex > -1){ 
      var Link = window.location.href.substr(0, checkIndex-1); 
      $(location).attr('href', Link+'?page='+$('.page-select').val()); 
     } else { 
      $(location).attr('href', window.location.href+'?page='+$('.page-select').val()); 
     } 

     }); 
    }); 

    </script>