WordPress使用CDN后如何获取真实用户IP地址

如果我们默认的直接将Wordpress网站添加CDN加速工具之后且没有做过任何设置,这样即便是网友留言评论的时候,我们在后台看到这个用户IP地址来源也都是来自CDN加速节点的。虽然对于实际的用户体验使用问题不大,但是对于用户数据分析还是有点影响的。我们需要获得真实的用户评论IP地址。

这里我们可以通过修改配置文件,然后使得前端正常使用CDN不受影响,但是用户访问网站所留下来的记录IP地址的时候还是用户真实的IP。

if(isset($_SERVER[‘HTTP_X_FORWARDED_FOR’])) {
$list = explode(‘,’,$_SERVER[‘HTTP_X_FORWARDED_FOR’]);
$_SERVER[‘REMOTE_ADDR’] = $list[0];
}

将脚本添加到wp-config.php文件中,这样用户留言评论的时候获取的IP地址 就是真实的。

WordPress采用Batch Cat插件批量转移文章分类

最近这阵子公司的事情还是挺多的,之前辞职的技术几个网站都使用的WordPress搭建的,现在要求重新调整几个功能,本身我对WP也不是很熟悉,就这么边找资料边摸索。闲暇的时候看看一直半死不活的美国主机评论博客都快长草了,所以准备中午休息抽点时间重新改改界面和分类。

原本打算用大前端D8主题更换的,一来怕下载到的主题有后门,二来比较麻烦界面需要调整,所以就在现有的界面中微调吧,原来是安装主机分类的,感觉大部分主机都基本没戏了,所以准备把按照主机分类的都删除,然后内容合并到大分类里。

如果依靠手工移动肯定累死还不如不做,所以找到这个WordPress Batch Cat插件,可以批量将内容转移到某个指定分类中的。这里我就来试试吧。

第一、下载Batch Cat插件

直接从后台插件处搜索插件,然后下载激活安装启动。

第二、Batch Cat插件使用

在”工具”-“Batch Cat”中打开插件。

选择我们需要批量转移的文章、或者通过分类筛选,然后勾选之后,点击转入的分类中,然后看上图,点击Set Categories to posts按钮,就可以批量转入。(建议:我们操作之前最好把数据库备份一遍,万一搞错。)

无插件实现WordPress内容回复评论才可以见效果

麦子经常看到有些网友的网站,内容是隐藏的,需要留言评论之后才可以看到,比如回复可以见到邀请码、下载链接等等。这样的效果是如何做的呢?因为在一定程度上可以实现提高网友与网站的互动,增加评论的人气,只要能提供有用的内容,用户还是希望回复的。

这里,麦子整理到网上无插件实现WORDPRESS回复可以见的效果,我们就一起看看如何实现的,且如果我们网站有需要用到可以采用。

第一、添加代码到functions.php

<?php
function reply_to_read($atts, $content=null) {
extract(shortcode_atts(array(“notice” => ‘<p class=”reply-to-read” style=”border-border-color: #F2F2F2;line-“><blockquote><font color=”#ff0000″><b>温馨提示</b></font>: 隐藏内容需要<a href=”#respond” title=”点击进行评论”> 回复评论 </a>后才能查看, 评论后请 <strong><a href=”javascript:location.reload()” title=”点击刷新”> 刷新 !</a></strong>.</blockquote></p>’), $atts));
$email = null;
$user_ID = (int) wp_get_current_user()->ID;
if ($user_ID > 0) {
$email = get_userdata($user_ID)->user_email;
//对博主直接显示内容
$admin_email = “xxx@XXX.net”; //把左面的邮箱换成博主Email
if ($email == $admin_email) {
return $content;
}
} else if (isset($_COOKIE[‘comment_author_email_’ . COOKIEHASH])) {
$email = str_replace(‘%40’, ‘@’, $_COOKIE[‘comment_author_email_’ . COOKIEHASH]);
} else {
return $notice;
}
if (empty($email)) {
return $notice;
}
global $wpdb;
$post_id = get_the_ID();
$query = “SELECT `comment_ID` FROM {$wpdb->comments} WHERE `comment_post_ID`={$post_id} and `comment_approved`=’1′ and `comment_author_email`='{$email}’ LIMIT 1”;
if ($wpdb->get_results($query)) {
return do_shortcode($content);
} else {
return $notice;
}
}
add_shortcode(‘reply’, ‘reply_to_read’);
?>

脚本中,邮箱需要换成我们当前WP程序中的管理员邮箱,这样对于管理员可见的。

第二、如何使用回复可见

[reply]回复可见的内容[/reply]

在我们需要隐藏的内容中用上面格式套用,这样就必须回答评论后才可以看到隐藏的内容。

自动为WordPress设置内容首图为缩略图方法

有些网站的主题需要用到缩略图,但是如果每篇文章用手工设置缩略图太繁琐了。我们可以直接使用自动缩略图的方式,比如直接获取内容中的第一张图作为缩略图。在这篇文章中,麦子就介绍我们如何用脚本实现WordPress自动内容首图作为缩略图。

第一、代码脚本

function catch_that_image() {
global $post, $posts;
ob_start();
ob_end_clean();
preg_match(‘/<imgs[^<>]*?src=[‘”]([^'”<>]+?)[‘”][^<>]*?>/i’, $post->post_content, $matche);
if($matche[1])
return $matche[1];
//否则取默认图片
return ‘default.gif’;
}

将代码添加到当前主题functions.php中。

第二、调用方式

<img src=”<?php echo catch_that_image(); ?>” alt=”<?php the_title(); ?>” title=”<?php the_title(); ?>”xa0 width=”200px” height=”200px” />

然后在缩略图的位置换成调用代码,这里数字代表尺寸,我们可以根据需要修改。

2个限制WordPress网站上传文件大小方法

如果我们用的WordPress程序是自己使用的,那提交的上传文件肯定可以自己控制。如果我们开放有会员互动上传文件,防止会员用户提交的文件过大,导致数据臃肿和服务器资源不足问题,我们需要限制WP程序上传文件的大小,这里麦子通过2个方法可以解决这个问题。

第一、修改.htaccess

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

添加到当前网站的.htaccess文件中,如果是nginx环境则这个方法不可以使用。

第二、添加到当前主题配置文件

@ini_set( ‘upload_max_size’ , ’64M’ );
@ini_set( ‘post_max_size’, ’64M’);
@ini_set( ‘max_execution_time’, ‘300’ );

将代码添加到当前主题的functions.php文件中。

这样,就可以控制用户上传文件,具体参数根据需要修改。

WordPress禁止自动剪裁缩略图 防止网站文件增加

如果我们仅仅是会购买一台虚拟主机、域名,然后下载Wordpress程序搭建个人网站,我们会发现随着时间的推移,网站的数据会变得很大,尤其是图片文件夹会很多。其实有一个比较大的问题是默认自动剪裁了很多图片大小格式,进而使得图片的文件大增。

如果因为缩略图的需要,我们可以进行剪裁,但是实际上也需要实际的设置。这里如果针对不需要缩略图或者需要剪裁的WORDPRESS程序网站,我们可以禁止系统自动给我们剪裁图片,直接就使用上传的图片。

第一、后台多媒体参数设置

如果我们有需要缩略图自动剪裁的,那就进行设置,最大中等大小和大尺寸图片完全可以用我们自己添加图片的时候自己设定,不需要系统再给我们剪裁。

第二、添加参数禁止剪裁

add_filter( ‘create_fun_core’, create_function( ”, ‘return 1;’ ) );

我们将上面代码添加到当前主题FUNCTIONS.PHP文件中。

这样,我们的WordPress程序就不会自动剪裁图片。可以确保我们网站数据正常,不至于增加很多没用的图片。

通用ZBlog PHP面包屑导航实现代码和使用方法

无论我们是使用何种程序,哪怕是我们自己制作的页面,一般都有一个面包屑导航功能,可以看到当前页面所在的目录位置。这样一来可以便捷用户返回上一级目录中,也对于网站的信息传递有帮助,甚至也有网友提到对于搜索引擎也比较友好。如果我们使用的ZBLOGPHP程序没有面包屑导航,可以加上。

第一、通用代码

{if $type==’article’}<a href=”{$host}”>网站首页</a> / <a href=”{$article.Category.Url}”>{$article.Category.Name}</a> / 正文 {elseif $type==’category’}<a href=”{$host}”>网站首页</a> / <a href=”{$category.Url}”>{$category.Name}</a>xa0 {elseif $type==’index’}网站首页 {else}<a href=”{$host}”>网站首页</a> / {$title}{/if}

第二、添加方法

我们将需要展现面包屑导航的页面添加代码就可以实现。

调用ZBlog PHP热门文章的脚本方法 – 7天、30天、365天

如果我们网站/博客有在使用ZBLOG PHP程序的时候,在需要用到丰富侧边或者某个调用模块展现热门文章可会用到调用一周、一个月或者一年的文章内容。在这篇文章中,麦子将整理通过7天、30天、365天的时间顺序以及点击率进行排序热门文章。

第一、调用代码

{php}
$stime = time();
$ytime = 7*24*60*60;
$ztime = $stime-$ytime;
$order = array(‘log_ViewNums’=>’DESC’);
$where = array(array(‘=’,’log_Status’,’0′),array(‘>’,’log_PostTime’,$ztime));
$array = $zbp->GetArticleList(array(‘*’),$where,$order,array(10),”);
{/php}
{foreach $array as $cmslist}
<li><a href=”{$cmslist.Url}” title=”{$cmslist.Title}”>{$cmslist.Title}</a></li>
{/foreach}

这里我设置的是7天热门文章调用,如果我们需要调整月、年,只要对应修改数字就可以。如果调用文章数量,我们可以看到蓝色的10数字代表调用8篇。

第二、使用方法

我们可以将需要调用页面中加上上面的代码,然后在相应修改CSS样式文件。

ZBlog PHP相关文章调用代码 增加用户粘性

我们有时候从免费平台下载的ZBLOG PHP主题程序或者我们自制的主题中很多都没有加入相关文章这个模块。麦子个人觉得还是需要增加的,一来可以让页面更加丰富一些,二来可以提高用户的停留PV量,在这里麦子将通用的ZBLOG PHP可以使用的相关内容调用代码整理。

第一、ZBLOG PHP相关文章调用代码

{$aid=$article.ID}
{$tagid=$article.Tags}
{$cid=$article.Category.ID}
{php}
$str = ”;
$tagrd=array_rand($tagid);
if( sizeof($tagid)>0 && ($tagid[$tagrd]->Count)>1){
$tagi=’%{‘.$tagrd.’}%’;
$where = array(array(‘=’,’log_Status’,’0′),array(‘like’,’log_Tag’,$tagi),array(‘<>’,’log_ID’,$aid));
}else{
$where = array(array(‘=’,’log_Status’,’0′),array(‘=’,’log_CateID’,$cid),array(‘<>’,’log_ID’,$aid));
}
$array = $zbp->GetArticleList(array(‘*’),$where,array(‘rand()’=>’ ‘),array(6),”);
foreach ($array as $related) {
if(($related->ID)!=$aid){
$str .= “<li><span class=\”time\”>{$related->Time(‘m-d’)}</span><span class=\”title\”><i class=\”icon-doc-text\”></i><a href=\”{$related->Url}\” title=\”{$related->Title}\”>{$related->Title}</a></span><smallxa0 class=\”pcomm\”><i class=\”icon-comment-1\”></i> <a href=\”{$related->Url}#comments\” rel=\”nofollow\” title=\”《{$related->Title}》上的评论\”>{$related->CommNums}</a></small></li>”;
}
}
{/php}
{$str}

第二、使用方法

将代码放到我们需要调用的模板中,比如post-single.php页面中,一般都是放到内容下面的。

ZBlog PHP调用随机和热门TAG标签关键字方法

一般,如果我们用ZBLOGPHP程序架设博客或者网站的时候,侧边或者固定的位置会有TAG关键字的调用,一来是方便用户通过TAG关键字造访其他的页面,二来可以增强页面之间的互动贯通。如果我们有使用ZBLOGPHP程序,可以通过下面的方法调用热门TAG关键字或者随机的TAG。

第一、ZBP调用随机TAG

function Nobird_Theme_Get_rdTags(){// 随机10 tag
global $zbp,$str;
$str = ”;
$array = $zbp->GetTagList(”,”,array(‘rand()’=>’ ‘),array(10),”);
foreach ($array as $tag) {
$str .= “<a href=\”{$tag->Url}\” title=\”{$tag->Name}\”>{$tag->Name}</a>”;
}
return $str;
}

第二、ZBP调用热门TAG

function Nobird_Theme_Get_nbTags(){//默认10个TAG
global $zbp,$str;
$str = ”;
$array = $zbp->GetTagList(”,”,array(‘tag_Count’=>’DESC’),array(10),”);
foreach ($array as $tag) {
$str .= “<a href=\”{$tag->Url}\” title=\”{$tag->Name}\”>{$tag->Name}</a>”;
}
return $str;
}

第三、使用方法

我们将代码放到当前主题的inculde.php页面中。然后我们在模板的响应位置调用{php}echo Nobird_Theme_Get_nbTags();{/php}或者{php}echo Nobird_Theme_Get_rdTags();{/php}。