国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 建站經(jīng)驗(yàn) > 正文

WP-PostViews插件顯示設(shè)定時(shí)間內(nèi)熱門文章的方法

2024-04-25 20:42:10
字體:
供稿:網(wǎng)友

不知道出于什么原因,1.30后的WP-PostViews插件取消了原先存在的get_timespan_most_viewed函數(shù),這也是最近在網(wǎng)上得知的,因?yàn)樽罱行那樾薷闹黝}、插件,博客上面這個(gè)插件提供的小工具在邊欄的顯示內(nèi)容幾個(gè)月都不怎么變,原因很簡單,設(shè)置的是瀏覽最多的文章,自然多的越來越多了,于是想修改下顯示設(shè)置,很遺憾后臺(tái)沒有相關(guān)設(shè)置,雖然有最近的,但是好像還不是我要的結(jié)果。

百度一陣子才知道原先這個(gè)插件有這個(gè)功能的,現(xiàn)在沒有了,但是有人在網(wǎng)上共享了之前的函數(shù),這樣就簡單多了。把以下函數(shù)復(fù)制到wp-postviews.php文件的任意地方(當(dāng)然是要合適點(diǎn)的任意地方,不要放其他函數(shù)中間就ok了)。

functionget_timespan_most_viewed($mode='',$limit=20,$days=1,$display=true){

global$wpdb,$post;

$limit_date=current_time('timestamp')-($days*86400);

$limit_date=date("Y-m-dH:i:s",$limit_date);

$where='';

$temp='';

if(!empty($mode)&&$mode!='both'){

$where="post_type='$mode'";

}else{

$where='1=1';

}

$most_viewed=$wpdb->get_results("SELECTDISTINCT$wpdb->posts.*,(meta_value+0)ASviewsFROM$wpdb->postsLEFTJOIN$wpdb->postmetaON$wpdb->postmeta.post_id=$wpdb->posts.IDWHEREpost_date<'".current_time('mysql')."'ANDpost_date>'".$limit_date."'AND$whereANDpost_status='publish'ANDmeta_key='views'ANDpost_password=''ORDERBYviewsDESCLIMIT$limit");

if($most_viewed){

foreach($most_viewedas$post){

$post_title=get_the_title();

$post_views=intval($post->views);

$post_views=number_format($post_views);

$temp.="<li><ahref=/"".get_permalink()."/">$post_title</a>-$post_views".__('views','wp-postviews')."</li>";

}

}else{

$temp='<li>'.__('N/A','wp-postviews').'</li>'."/n";

}

if($display){

echo$temp;

}else{

return$temp;

}

}

單單的放上以上語句其實(shí)還是不行的,雖然很多博客說可以,可能都是認(rèn)為寫博客的都懂語言吧?雖然我也能改,但小子覺得這個(gè)對(duì)于那些不懂php為何物的新手來說,真的是難上加難啊。

這里小子為了大家方便就整理了下,為大家分享。

case'least_viewed':

get_least_viewed($mode,$limit,$chars);

break;

很簡單,打開wp-postviews.php文件在###Function:DisplayLeastViewedPage/Post或者其他的函數(shù)上面貼上以上函數(shù),再次說明,函數(shù)添加位置隨意,但是盡量與其他業(yè)務(wù)函數(shù)放到一起,便于分析嘛!之后的操作就是再小工具的選項(xiàng)StatisticsType中添加get_timespan_most_viewed選項(xiàng),這個(gè)直接在wp-postviews.php文件中搜索StatisticsType,你可以看到

<optionvalue="least_viewed"<?phpselected('least_viewed',$type);?>><?php_e('LeastViewed','wp-postviews');?></option>

或者其他選項(xiàng)的內(nèi)容,復(fù)制一行,粘貼到上面或者下面(當(dāng)然也可以是中間),然后將以上語句中l(wèi)east_viewed或者其他的你復(fù)制的語句中的值,修改為get_timespan_most_viewed,這樣就完成了后臺(tái)操作,不過目前選擇這個(gè)選項(xiàng)后邊欄是無顯示的,因?yàn)檩敵龅牡胤竭€要改進(jìn),下一步同樣是在wp-postviews.php文件中操作,搜索classWP_Widget_PostViews,在functionwidget函數(shù)中找到switch語句,其中應(yīng)該有四個(gè)轉(zhuǎn)向,形如

case'least_viewed':

get_least_viewed($mode,$limit,$chars);

break;

不用想,重新復(fù)制一份,粘貼到并列的位置,將least_viewed修改為get_timespan_most_viewed,這樣,回到首頁刷新下,顯示效果應(yīng)該是一天熱門的,因?yàn)槭呛瘮?shù)默認(rèn)的(原函數(shù)是默認(rèn)30天,小子設(shè)置為1天了),這里沒有在后臺(tái)添加選項(xiàng),有需要可以自己需求修改函數(shù)體內(nèi)數(shù)據(jù)即可。

另外,還有一點(diǎn)就是,上面提供的get_timespan_most_viewed函數(shù)是舊版本中的函數(shù),不支持目前新版的輸出格式化等,這里小子又根據(jù)新的變量定義整理了如下函數(shù),需要的可以直接復(fù)制替換上面提供的get_timespan_most_viewed函數(shù)來使用,函數(shù)體如下

$where="post_type='$mode'";

}else{

$where='1=1';

}

$most_viewed=$wpdb->get_results("SELECTDISTINCT$wpdb->posts.*,(meta_value+0)ASviewsFROM$wpdb->postsLEFTJOIN$wpdb->postmetaON$wpdb->postmeta.post_id=$wpdb->posts.IDWHEREpost_date<'".current_time('mysql')."'ANDpost_date>'".$limit_date."'AND$whereANDpost_status='publish'ANDmeta_key='views'ANDpost_password=''ORDERBYviewsDESCLIMIT$limit");

if($most_viewed){

foreach($most_viewedas$post){

$post_views=intval($post->views);

$post_title=get_the_title($post);

if($chars>0){

$post_title=snippet_text($post_title,$chars);

}

$post_excerpt=views_post_excerpt($post->post_excerpt,$post->post_content,$post->post_password,$chars);

$temp=stripslashes($views_options['most_viewed_template']);

$temp=str_replace("%VIEW_COUNT%",number_format_i18n($post_views),$temp);

$temp=str_replace("%POST_TITLE%",$post_title,$temp);

$temp=str_replace("%POST_EXCERPT%",$post_excerpt,$temp);

$temp=str_replace("%POST_CONTENT%",$post->post_content,$temp);

$temp=str_replace("%POST_URL%",get_permalink($post),$temp);

$output.=$temp;

}

}else{

$output='<li>'.__('N/A','wp-postviews').'</li>'."/n";

}

if($display){

echo$output;

}else{

return$output;

}

}

}

如函數(shù)參數(shù)所示,設(shè)置天數(shù)的地方已經(jīng)用注釋標(biāo)注了,這里仍然不再提供面板設(shè)置的選項(xiàng)了,需要的朋友可以自己折騰,在調(diào)試的時(shí)候可能因?yàn)楫?dāng)日訪問量過低,設(shè)置1天不能實(shí)現(xiàn)預(yù)期的顯示效果,就設(shè)置回30天了,大家可以根據(jù)需要設(shè)置。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 吴旗县| 蒙自县| 鲁甸县| 新河县| 泗水县| 汝州市| 静宁县| 江源县| 岢岚县| 弥渡县| 扎赉特旗| 陇西县| 武夷山市| 屏东县| 东城区| 嘉鱼县| 共和县| 建平县| 固安县| 元江| 东兰县| 英山县| 陇西县| 文登市| 成都市| 牡丹江市| 高台县| 新竹市| 桦川县| 邻水| 凯里市| 昆明市| 锦屏县| 礼泉县| 师宗县| 双辽市| 鄂托克前旗| 白玉县| 隆化县| 蒙阴县| 罗源县|