这个问题可以给template_redirect这个钩子添加判断函数进行处理,示例:
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的杂多网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
add_action( 'template_redirect', function() {
// 判断条件可根据实际情况自行拟定
// 跳转到哪里可以自行指定,如 get_page(6)
// 这里针对未登录用户,使其始终跳转到登录页面
if ( ! is_user_logged_in() ) {
nocache_headers();
wp_safe_redirect( wp_login_url(home_url()) );
exit;
}
return;
});
一、关闭wordpress自带站内搜索
php+mysql已经广泛应用于各大网站,但sql注入问题是都会存在的一大事实,黑客就是利用sql注入做了许多坏事。wordpress网站使用人数也逐渐增高,在安全性上也是公认的,回过头来说站内搜索吧,别扯远了,高深的问题当下也消化不了。
一般来说sql查询越多,对网站效率越差负载也很高,为了优化wordpress怎么减少sql查询呢?因为wordpress自带的站内搜索不单每次都进行sql查询,而且查询都是不是十分准确的,所以可以换成百度或谷歌等这些开放站内搜索,来进行wordpress优化,还提高了用户体验。
但如果有访客通过"wordpress/?s=$key"这种方式,仍然可以使用wordpress自带的站内搜索,因此,下面就可以用这种方法完全关闭wordpress自带的站内搜索。方法很简单,只需在function.php中加入以下代码即可。
function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query-is_search = false;
$query-query_vars[s] = false;
$query-query[s] = false;
if ( $error == true )
$query-is_404 = true;
}
}
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
二、关闭wordpress对外请求
相信大家都发现了,浏览器状态栏会有wordpress网站向其他网站的链接,这大大影响了wordpress站点的速度,为了优化wordpress,可以在wp-config.php中插入以下代码来屏蔽对外请求。
define('WP_HTTP_BLOCK_EXTERNAL', true);
到这里,相信大家就开始怀疑影不影响收录,其实完全可以设置wordpress对外请求白名单,将百度、google等ping地址添加上即可。代码如下(以百度为例):
define('WP_ACCESSIBLE_HOSTS', 'ping.baidu点抗 ');
转发 评论 0 浏览 5090
昵称(必填)
邮箱 (必填)
网址
/**
* 统计全站总访问量/今日总访问量/当前是第几个访客
* @return [type] [description]
*/
function wb_site_count_user(){
$addnum = rand(5,10); //每个访客增加的访问数 5 - 10的随机数
session_start();
$date = date('ymd',time());
if(!isset($_SESSION['wb_'.$date]) !$_SESSION['wb_'.$date]){
$count = get_option('site_count');
if(!$count || !is_array($count)){
$newcount = array(
'all' = 8377670,
'date' = $date,
'today' = $addnum
);
update_option( 'site_count', $newcount );
}else{
$newcount = array(
'all' = ($count['all']+$addnum),
'date' = $date,
'today' = ($count['date'] == $date) ? ($count['today']+$addnum) : $addnum
);
update_option( 'site_count', $newcount );
}
$_SESSION['wb_'.$date] = $newcount['today'];
}
return;
}
add_action('init', 'wb_site_count_user');
//输出访问统计
function wb_echo_site_count(){
session_start();
$sitecount = get_option('site_count');
$date = date('ymd',time());
echo 'p总访问量:span style="color:red"'.absint($sitecount['all']).'/span nbsp;nbsp; 今日访问量:span style="color:red"'.absint($sitecount['today']).'/span nbsp;nbsp; 您是今天第:span style="color:red"'.absint($_SESSION['wb_'.$date]).'/span 个访问者/p';
}
1、将以上代码添加到wordpress主题根目录下的funciton.php函数文件后面;
2、在主题页脚 (footer.php)输入?php wb_echo_site_count(); ?
获取访客的IP(后期可用来获取地理位置)
获取访客的地理位置(通过IP获取)
获取访客的访问次数
获取访客的访问时间
获取访客访问的网页
获取访客访问的网页的标题
表名: my_count
字段:
id(int 10,主键,自增),
ip(varchar 20用来存储访客的IP地址),
country(varchar 20用来存储访客的国籍),
region(varchar 20用来存储访客的省份),
adress(varchar 20用来存储访客的所在城市),
time(int 10用来存储访客的访问次数),
date(datetime 6用来存储访客的访问时间),
url(varchar 30用来存储访客访问的网页),
page_url(varchar 100用来存储访客访问的网页的标题)
在/网站目录/wp-content/themes/主题名 下创建PHP文件visitorstatistics.php:
打开footer.php,在结尾插入:
完了之后点击下方的更新按钮。打开网页,会看到下方出现文字:“您是第xxx 位访客,这是您的第 xxx 次访问,感谢您的支持和关注! ”
参数:
$slug (必须) 通用的模板名
(字符串)要引入的模板的文件名,不包括后缀名 .php,也就是如果需要引入当前主题根目录的 loop.php 文件 $slug 填写 “loop” 即可。
$name(可选) 指定的模板名
(字符串)要引入的模板的文件的副文件名,如果要引入当前主题根目录的 loop-img.php 文件 $slug 参数填写 “loop”,$name 参数填写 “img”。
淘宝的接口,用来返回ip地址对应的地理信息,返回实例:
{"code":0,"data":{"ip":"101.132.162.76","country":"中国","area":"","region":"上海","city":"上海","county":"XX","isp":"阿里云","country_id":"CN","area_id":"","region_id":"310000","city_id":"310100","county_id":"xx","isp_id":"1000323"}}
原文链接: 给网站添加数据统计(wordpress实战)
欢迎访问作者网站: