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

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

WBOY
WBOYasal
2016-06-13 11:31:17819semak imbas

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> ?>

 

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn