begin自带一个随机文章的小工具,可以拿来放页脚或者侧边栏。但是,有一些分类也许不想显示。怎么办呢?
首先,找到文件:/wp-content/themes/begin/inc/core/widgets.php
PS:我是怎么找到这个文件的呢?建设我是一个菜鸟,我可以利用文件搜索功能,搜索相对的关键字,如果找不到呢?可以找同一个类型的,比如说tag小工具,搜索tag总可以吧?或者搜索widget。
OK。找到文件,我们编辑器打开,进去搜索下关键词“随机文章”,看到有两处地方,其中一处关键在这里:
- // 随机文章
- class random_post extends WP_Widget {
- function random_post() {
- $widget_ops = array('description' => '显示随机文章');
- $this->WP_Widget('random_post', '主题 随机文章', $widget_ops);
- }
- function widget($args, $instance) {
- extract($args);
- $title = apply_filters( 'widget_title', $instance['title'] );
- echo $before_widget;
- if ( ! emptyempty( $title ) )
- echo $before_title . $title . $after_title;
- $number = strip_tags($instance['number']) ? absint( $instance['number'] ) : 5;
- ?>
- <div id="random_post_widget">
- <ul>
- <?php query_posts( array ( 'orderby' => 'rand', 'showposts' => $number, 'ignore_sticky_posts' => 10 ) ); while ( have_posts() ) : the_post(); ?>
- <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
- <?php endwhile; ?>
- <?php wp_reset_query(); ?>
- </ul>
- </div>
这个代码第18行可以看到有一组数组在这里,就是改这里了。如果要指定分类,那么:
- <?php
- //原代码
- query_posts( array ( 'orderby' => 'rand', 'showposts' => $number, 'ignore_sticky_posts' => 10 ) ); while ( have_posts() ) : the_post();
- // 修改为
- query_posts( array ( 'orderby' => 'rand', 'showposts' => $number, 'category__in' => array(1,2), 'ignore_sticky_posts' => 10 ) ); while ( have_posts() ) : the_post();
- ?>
这里用 category__in 这个系统函数来指定。也可以用 cat
但是如果只是想排除分类呢?
- <?php
- //原代码
- query_posts( array ( 'orderby' => 'rand', 'showposts' => $number, 'ignore_sticky_posts' => 10 ) ); while ( have_posts() ) : the_post();
- // 修改为
- query_posts( array ( 'orderby' => 'rand', 'showposts' => $number, 'category__not_in' => array(3,4), 'ignore_sticky_posts' => 10 ) ); while ( have_posts() ) : the_post();
- ?>
这里用 category__not_in 这个系统函数来指定排除的分类。
修改好了文件,保存,替换线上的文件,然后多刷新几次测试看看,看看有没有显示被排除的分类。
参考:
2016年03月27日 23:35 -9楼
哎哟,不错哦
2016年03月28日 00:03 地下1层
@chencool 还行啊。