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