国产又猛又爽又黄视频|在线观看人成视频免费|少妇高潮太爽了在线视频|911国产免费无码专区|特黄做受又大又粗又长大片|欧美一级二级免费在线观看|日日夜人人澡人人澡人人看免|欧洲午夜精品一级毛片在线播放

WordPress按指定時(shí)間調(diào)用文章(如最近一周、一月、一年)的方法

2016-10-12 15:18 欄目:技術(shù)開發(fā) 查看(16116)

使用WordPress開發(fā)網(wǎng)站,不管是做企業(yè)網(wǎng)站,還是個(gè)人博客,還是具備下單支付功能的商城。往往少不了諸如”最多關(guān)注”、”最多評(píng)論”、”熱賣商品”等等,總而言之,實(shí)際上這就是推薦。當(dāng)然WordPress默認(rèn)只有一個(gè)評(píng)論數(shù)據(jù),而諸如銷量、瀏覽量等等是需要通過postmeta來擴(kuò)充的,關(guān)于怎么按照自定義字段進(jìn)行文章排序可以參考我前兩天發(fā)布的文章《WordPress按照文章自定義字段進(jìn)行排序的內(nèi)部調(diào)用方法》。

大家可能都在思考一個(gè)這樣的問題?既然是按照某個(gè)指標(biāo)進(jìn)行排序,我們可能聽說過馬太效應(yīng),就拿最多瀏覽量文章排序來講,越是熱門的文章越會(huì)堅(jiān)挺在最前面。換而言之,在你推薦的位置,很可能永遠(yuǎn)都是那幾篇文章,比如5年后還是現(xiàn)在的某篇文章排在里面;而我們之所以弄一個(gè)排序就是供用戶參考的,如果時(shí)間太長這個(gè)參考幾乎沒有意義。那么我們能不能在加一個(gè)約束條件呢?比如一周熱門、一月熱門、本年度熱門等等。

當(dāng)然,這僅僅是一個(gè)基礎(chǔ)查詢問題,是一定可以實(shí)現(xiàn)的。但是我們盡量能使用其自帶方法來完成操作,大家可能第一想到的就是query_posts這個(gè)方法,但網(wǎng)上寫這個(gè)方法的參考大多是一些基礎(chǔ)查詢,而針對這種較為“冷門”的并沒有太多關(guān)注。這我們可以參考官網(wǎng)文檔或者直接參考方法源代碼。

實(shí)際上,在query.php中,也就是query_posts對應(yīng)的文件,其實(shí)就是一個(gè)WP_Query類,在里面有一個(gè)$date_query,而它是WP_Date_Query的一個(gè)實(shí)例。實(shí)際上WP_Date_Query類在官網(wǎng)文檔中就有,文檔地址:https://developer.wordpress.org/reference/classes/wp_date_query/。相關(guān)調(diào)用規(guī)則如下:

$date_query = new WP_Date_Query( array(
	'column' => '可選,日期查詢針對的數(shù)據(jù)列,默認(rèn)為 post_date',
	'compare' => '可選,一些比較運(yùn)算的符號(hào),在 WP_Date_Query::get_compare()中 有定義(如 '=', '!=', '>', '>=', '<', '<=', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN')',
	'relation' => '可選,OR 或者 AND,當(dāng)下面緊接著設(shè)定的日期數(shù)組超過 2 組時(shí),通過這個(gè)參數(shù)來決定其組合關(guān)系,默認(rèn)為 AND',
	array(
		'column' => '要求同上',
		'compare' => '要求同上',
		'after' => '字符串或數(shù)組,參考 WP_Date_Query::build_mysql_datetime()',
		'before' => '字符串或數(shù)組,參考 WP_Date_Query::build_mysql_datetime()',
		'inclusive' => '布爾值,針對上面的 after/before,是否要精確匹配給定日期',
		'year' => '4 位整數(shù)',
		'month' => '整數(shù),1-12',
		'week' => '整數(shù),0-53',
		'day' => '整數(shù),1-31',
		'hour' => '整數(shù),0-23',
		'minute' => '整數(shù),0-60',
		'second' => '整數(shù),0-60',
	),
	array(
		...
	),
	...
) );

然后可以在WP_Query或者query_posts中調(diào)用,如調(diào)用一個(gè)月內(nèi)最多閱讀量的十篇文章。

//時(shí)間約束
$date_query=array(
 array(
 'column' => 'post_date',
 'before' => date('Y-m-d H:i',time()),
 'after' =>date('Y-m-d H:i',time()-3600*24*30)
 )
);
//查詢條件
$args=array(
 'meta_key' => 'views',
 'orderby' => 'meta_value_num',
 'posts_per_page'=>10,
 'date_query' => $date_query,
 'order' => 'DESC'
 );
//查詢
 query_posts($args);
與我們的項(xiàng)目經(jīng)理聯(lián)系
掃二維碼與項(xiàng)目經(jīng)理溝通

我們在微信上24小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

轉(zhuǎn)載請注明出處:WordPress按指定時(shí)間調(diào)用文章(如最近一周、一月、一年)的方法 - 微構(gòu)網(wǎng)絡(luò)
分享: