[实测]wordpress获取当前文章所在分类下的全部文章

在百度知道有知友提出这样的问题:

wordpress程序,怎样可以获取当前文章分类下的所有文章

http://zhidao.baidu.com/question/364511154678771292

根据这个问题可以整理出的思路:

  • 1、利用get_the_ID()函数获取当前文章的ID
  • 2、自定义函数,并根据文章ID获取其所在的全部分类ID
  • 3、根据文章ID、分类ID,重构query

据此思路,提供代码如下:

if ( ! function_exists('wpdit_get_posts_in_same_categories') ) {
	function wpdit_get_posts_in_same_categories( $post_id = 0 ){

		// 验证文章ID
		$post = get_post( $post_id );

		if ( ! $post )
			return;

		// 获取文章所属分类
		$categories = get_the_category($post_id);

		if ( ! count( $categories ) )
			return;

		$cid = array();
		foreach ( $categories as $key => $category ) {
			$cid[] = $category->term_id;
		}

		// 重构query
		$args = array(
			'post__not_in' => array( $post_id ), 
			'category__in' => $cid,
			'posts_per_page'	=> 10 // 每页显示数量,-1表示获取全部,但不建议
		);

		$relate_posts = get_posts( $args );

		if ( is_wp_error($relate_posts) )
			return;

		// 输出
		foreach ($relate_posts as $key => $relate_post ) {
			printf( '%s',
					get_permalink( $relate_post->ID ),
					get_the_title( $relate_post->ID )
				);
		}

	}
}

调用方法:

$post_id = get_the_ID(); //必须位于循环内,否则get_the_ID()无结果
wpdit_get_posts_in_same_categories( $post_id );

将该调用方法放置到需要的地方,只要指定post_id即可。
客官,动手试试吧~~~

建议同步阅读:
几招搞定wordpress自由获取指定分类中的日志

2 thoughts on “[实测]wordpress获取当前文章所在分类下的全部文章”

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注