2017年6月27日 | | 标签:

今天进行技术分享的是 @ellen 和 @leo ,精彩内容如下:

鉴于 @leo 6月份精彩技术分享,隽永东方继续奖励红包一个。

@ellen 分享了一些项目开发过程中的实用代码:

使用select下拉框,添加链接的方法

<select onchange="self.location.href=options[selectedIndex].value">

           <?php

             $args=array(

              'orderby' => 'name',

              'order' => 'ASC',

              'number' => '20',

              'hide_empty' => '0',

             'parent' => '0',

            );

           $categories=get_categories($args);

           foreach($categories as $category) :

           ?>

     <option value ="<?php echo get_category_link( $category->term_id ) ?>" ><?php echo $category->name; ?></option>

      <?php endforeach; ?>

</select>
自定义各个分类每页显示的文章数:

function iteblog_posts_per_page($query) {
 $is_home = $query->get('is_home');
 if($is_home){
 $query->set('posts_per_page', 10);
 }
 if(empty($is_home)){
 if (is_category()) {
 $query->set('posts_per_page', 20); } if (is_tag()) {
 $query->set('posts_per_page', 30);
 } //endif
 }
 } //function
 add_action('pre_get_posts', 'iteblog_posts_per_page');



不同文章类型分类页面显示不同数量文章

function ashuwp_posts_per_page($query){

 //industry为文章类型  industyr_category为对应分类法

 //is_tax判断是否为分类页面

 //is_post_type_archive判断是否为归档页面

//$query->is_main_query使得仅对页面主循环有效

//!is_admin避免影响后台

 if((is_tax('industry_category')||is_post_type_archive('industry') )&& $query->is_main_query() && !is_admin()){

 $query->set('posts_per_page', 15); //设置为15篇每页

}

  return $query;

}

add_action('pre_get_posts','ashuwp_posts_per_page');


不同分类页面显示不同的篇数文章

<?php $posts = query_posts($query_string . '&orderby=date&showposts=5'); ?>

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

但如果使用了 WP-PageNavi 等分页插件,通常会导致的一个问题是:分页数量是正确的,但访问后面的页数时,会提示 404 错误。

function.php里面添加

function powerxing_custom_posts_per_page( $query ) {
 // 为特定分类指定显示数量,键为分类别名(可在后台的分类目录中查看),值为显示数量
 $ppp = array(
 // 比如为分类 notes 和 gallery 设置不同的显示数量
 'notes' => 10,
 'gallery' => 15,
 );

 if ( $query->is_category() && $query->is_main_query() ) {
 // 获取当前分类别名
 $slug = $query->query_vars['category_name'];

 if ( array_key_exists($slug, $ppp) ) {
 $query->set( 'posts_per_page', $ppp[$slug] );
 }
 }
 }undefined

add_action('pre_get_posts', 'powerxing_custom_posts_per_page');

@leo 的精彩分享如下: