Heim  >  Artikel  >  php教程  >  wordpress添加文章浏览统计(刷新不重复)

wordpress添加文章浏览统计(刷新不重复)

WBOY
WBOYOriginal
2016-06-13 11:31:17818Durchsuche

wordpress本身不带文章浏览统计,可以用插件wp-postview,但是刷新还是算一个浏览次数。

1.首先在主题下functions.php里增加以下代码,这段代码也是网上可以找到的

<span  1</span> <span //</span><span add by charleswu</span>
<span  2</span> <span function</span> getPostViews(<span $postID</span><span ) {
</span><span  3</span>     <span $count_key</span> = 'post_views_count'<span ;
</span><span  4</span>     <span $count</span> = get_post_meta(<span $postID</span>, <span $count_key</span>, <span true</span><span );
</span><span  5</span>     <span if</span> (<span $count</span> == ''<span ) {
</span><span  6</span>         delete_post_meta(<span $postID</span>, <span $count_key</span><span );
</span><span  7</span>         add_post_meta(<span $postID</span>, <span $count_key</span>, '0'<span );
</span><span  8</span>         <span return</span> "0"<span ;
</span><span  9</span> <span     }
</span><span 10</span>     <span return</span> <span $count</span><span ;
</span><span 11</span> <span }
</span><span 12</span> <span function</span> setPostViews(<span $postID</span><span ) {
</span><span 13</span>     <span $count_key</span> = 'post_views_count'<span ;
</span><span 14</span>     <span $count</span> = get_post_meta(<span $postID</span>, <span $count_key</span>, <span true</span><span );
</span><span 15</span>     <span if</span> (<span $count</span> == ''<span ) {
</span><span 16</span>         <span $count</span> = 0<span ;
</span><span 17</span>         delete_post_meta(<span $postID</span>, <span $count_key</span><span );
</span><span 18</span>         add_post_meta(<span $postID</span>, <span $count_key</span>, '0'<span );
</span><span 19</span>     } <span else</span><span  {
</span><span 20</span>         <span $count</span>++<span ;
</span><span 21</span>         update_post_meta(<span $postID</span>, <span $count_key</span>, <span $count</span><span );
</span><span 22</span> <span     }
</span><span 23</span> }

2.解决刷新统计数增加,一定要放在文章页面的最前面,貌似php设置cookie之前不能有输出,蛋疼。我的是single.php页面

<span  1</span> <?<span php
</span><span  2</span>     <span $post_id</span>=<span get_the_ID();
</span><span  3</span>     <span if</span>(<span isset</span>(<span $_COOKIE</span>['views'.<span $post_id</span>.COOKIEHASH]) && <span $_COOKIE</span>['views'.<span $post_id</span>.COOKIEHASH] == '1'<span )
</span><span  4</span> <span     {
</span><span  5</span>             
<span  6</span> <span     }
</span><span  7</span>     <span else</span><span {    
</span><span  8</span>         setPostViews(<span $post_id</span><span );
</span><span  9</span>         <span setcookie</span>('views'.<span $post_id</span>.COOKIEHASH,'1',<span time</span>() + 3600,COOKIEPATH,COOKIE_DOMAIN);<span //</span><span 设置时间间隔</span>
<span 10</span> <span     }
</span><span 11</span> ?>

 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn