1 翻译问题
如何解决WordPress出现Warning: session_start(): Cannot send session cache limiter?
我们在本地电脑测试WP主题时,竟出现了这样的PHP警告提示:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at D:xampphtdocswpceshimubanwp-contentpluginswordpress-seofrontendclass-json-ld.php:121) in D:xampphtdocswpceshimubanwp-contentpluginsad-inserterclass.php(360) : eval()'d code on line 14
警告:session_start():无法发送会话缓存限制器 - 已发送的头文件(输出开始于D: xampp htdocs wp ceshimuban wp-content plugins wordpress-seo frontend class-json-ld.php: (360):eval()在第14行的d代码(第121行)在D: xampp htdocs wp ceshimuban wp-content plugins ad-inserter class.php
有人表示,因为在session_start();
语句之前,有其它 html代码存在,但是
不过有些人说他的 session_start();
之前已经做了。
还有的人说,是没有好设置 session 的保存路径,需修改 php.ini 文件中的:session.save_path = "C:/phpsession"
(后边的路径自己设置,并且要确定存在)
Linux命令查询PHP配置文件 php.ini 文件的存放位置。
shell下执行:
php -v / -name php.ini
或者
find / -name php.ini
以下是我们测试后,最终的解决办法。
session.auto_start = 0
为 session.auto_start = 1
希望我们网站( https://www.wordpressx.com/ ) 分享的《WordPress出现Warning: session_start(): Cannot send session cache limiter如何解决?》,对您有帮助。
1 什么是CSS选择器?
我们最近在完善和优化网站模板,这么做也是为了顾及SEO用户体验。
有新媒体人问到:如果我们想隐藏的WordPress主题的某个图标,日期,该怎么做呢?
答案是用CSS隐藏样式:
.r-hide {display:none;}
CSS隐藏样式,能够实现:
首先,我们要找到CSS选择器。
每个CSS样式的定义,都是由2个部分组成:
选择器{样式}
以下是GIF动图实例,通过浏览器找到CSS选择器后,隐藏日期▼
获取到CSS选择器 time.the-date
后,将以下CSS代码,添加到WP主题的 style.css 文件:
time.the-date { display: none; }
以下是选择和设置class =“r-hide”元素的样式:
.r-hide {display:none;}
若WP主题有选项功能,可以以上CSS代码,添加到WP主题选项→定制风格→自定义样式的代码框中。
扩展阅读:
希望我们网站( https://www.wordpressx.com/ ) 分享的《如何隐藏WordPress主题日期CSS样式?div隐藏css样式教程》,对您有帮助。
1 Ping是什么意思?
WordPress里的Ping、Trackback和Pingback是什么功能?
新媒体人在WordPress后台写文章时,点击右上角的“显示选项”,会有如下可供勾选的选项(根据安装不同和WordPress插件和WordPress主题,这里显示的选项,也会有些不同)。
其中如下图所示的 “发送Trackback” 到底是什么呢?
说到Wordpress的Trackback,就要必须一起解释Ping、Trackback、Pingback是什么功能了?
Ping、Trackback、Pingback的功能,如下:
提到 Ping,大家最熟悉的就是 Ping 一个站点是否 Ping 得通这个动作了。
在博客系统里面,Ping 是基于 XML-RPC 标准协议的更新通告服务,是用于博客在内容更新时通知 Ping 服务器如搜索引擎等及时进行抓取、索引的方式。
这对比被动等待搜索引擎来抓取,是一种高效的解决方案。同时,下面提到的 Trackback 和 Pingback 的通知服务都是借助「Ping」这个功能来实现。
你可以采取手动通知和自动通知两种方式使用 ping 服务:
手动ping:访问博客搜索引擎的提交博客页面,提交博客地址。比如在百度博客搜索中,访问 http://ping.baidu.com/ping.html 页面,在输入框中输入博客地址或者 feed 地址,点击“提交博客”按钮即可。
自动ping:如果博客程序支持自动ping功能,只需把Ping服务地址配置到你的Blog发布后台或者客户端程序中,就可以实现自动通知的功能。
在WordPress里,自动ping功能表现在「后台」→「设置」→「撰写」里面的「更新服务」,在这部分你可以设置当文章发表时,通知这些服务器你的博客发表了新文章,让搜索引擎的爬虫,过来抓取和收录你的新文章。
以下是我们网站的服务器所使用的 “自动ping服务” 部分列表:
http://rpc.pingomatic.com http://rpc.twingly.com http://www.blogdigger.com/RPC2 http://www.blogshares.com/rpc.php http://www.blogsnow.com/ping http://bulkfeeds.net/rpc http://ping.blo.gs/ http://ping.feedburner.com http://ping.weblogalot.com/rpc.php http://www.feedsubmitter.com http://blo.gs/ping.php http://www.pingmyblog.com http://ipings.com http://www.weblogalot.com/ping
TrackBack可以让博客作者知道有哪些人看到自己的文章后撰写了与之有关的短文。在Movable Type和WordPress软件中,包含有该功能。该功能通过在评论中显示引用者的文章链接和评论内容,实现了网站之间的互相通告;实现了博客间的沟通互动,使得更多人加入关于一个主题的讨论。
TrackBack功能一般出现在一个博客文章的下方评论中,同时会显示对方博文的摘要信息、URL和标题。
TrackBack规范由Six Apart在2000年制订,并在Movable Type2.2中予以实现。早期版本的Trackback规范中,Ping是GET方式的HTTP请求,现在不再支持GET方式,只能用POST方式。
Trackback的使用是完全手工的,并且通过HTTP POST协议进行数据传递。由于Trackback目前仅是为兼容旧式博客系统而存在的,因此在WordPress中只在文章编辑页中保留了一个发送Trackback的小工具。
在这个栏目上可以填写上撰写这篇文章时,所参考的网页、文章的URL等等,以空格分隔每一个网址,当发送文章后,它就会自动发出Trackback到你指定的网站中,并以评论的形式呈现。
在 WordPress 写文章的页面,勾选“发送Trackback”后,会出现如下 “发送Trackback到” 的模块:
Pingback的出现完全是为了解决Trackback的诸多问题。
不过对于用户来说,最大的好处是,Pingback的使用是完全自动的,这也是我将Pingback译作“自动引用通知”的原因。
当你在文章中加入了一系列基于WordPress系统的文章链接,并且发布文章后,你的WordPress系统会自动从文章中拣出链接并尝试向这些系统发出Pingback。这些链接所在的WordPress网站接受到Pingback后就会将Pingback信息显示在评论中。
Pingback这个功能中文解释是「引用」,当你的文章有引用别人的内容时(通常内容里有加上对方的超链接),一旦文章发表后,就会自动启动Pingback功能,这功能会发送一个Ping给对方,会以评论的方式呈现(估计很多博友有时候在发表文章时,看见自己的新文章下面有一个跟文章内容一样的评论,这就是Pingback功能的“副作用”,下面会详细解说)。
发送Ping的对象取决于文章内所有的网址(超链接)。换句话说,如果文章内提及太多的网址,可能会让你的服务器加重负荷哦。提醒一下,如果太滥发这样的Pingback,会造成被标记成为垃圾信息。
在WordPress中,这个Pingback的功能存在于「后台」→「设置」→「讨论」,找到其中的「默认文章设置」,这边的设定就是会让你的文章是否开启Pingback这项功能以及是否接受其他博客发送的Pingback和Trackback。
如下图所示,你可以在WordPress中的讨论,开启Pingback和Trackback功能:
在WordPress中,也可以针对每一篇文章设置是否接收Pingback和Trackback通知。这个在文章编辑页的Trackback栏目中可以看到。
那么Pingback和Trackback发送到别人网站通知时,会怎样呈现呢?一般来讲,发送过去的内容会以「评论」的方式呈现。
以「Pingback」来讲,它会抓取提及到的超链接附近的一些文字作为留言内容,留言者的名称与网址正是你该篇文章的文章名称与网址,留言IP则是你的服务器IP。若是在WordPress后台看的话,会以下面的方式呈现,前台当然就是取决于博主设定的评论样式了。
若是「Trackback」的话,它则会抓文章第一段的一些文字作为留言内容,留言者的名称和网址都会是你的文章,至于留言IP则是你网站的IP。
相信大家一定会关心这个Pingback和Trackback带来的「曝光率」?
因为Pingback和Trackback都是以评论呈现,换句话说,如果夹杂在留言区内,到是会让人家看到你的引用讯息,如果别人对你标题有兴趣,就会顺便点进去看,这样就可以增加到访率也同时免费曝光。
不过若以WordPress来讲,有些主题会把留言、Pingback、Tarckback三者混合,有些则会独立留言、Pingback和Track一区,甚至有的网站只显示留言,所以曝光这部分其实效果有限,反倒是很多国外垃圾网站,都喜欢使用Pingback、Tarckback来灌爆你的留言。
由于无论Trackback还是继任者Pingback都没有解决一个问题,就是通知信息的真实性,因此就存在了使用软件来滥发Trackback或Pingback的现实问题。由于Trackback与Pingback都会显示在评论中,并且包含很多电商网站做网络推广的链接,因此通过滥发外链就成了一些网站SEO的手段。
解决这个问题,勾选WordPress「后台」→「设置」→「讨论」→「在评论显示之前」中的“评论必须经人工批准”选项。
这样,在任何垃圾评论显示在你的WordPress评论中之前,你都有机会对评论信息进行筛选清除。另外,WordPress内置的Akismet评论筛选插件,它能帮你过滤几乎所有的垃圾评论。
最后提醒一下,当WP博客已经开启Pingback的时候,不要让你的Trackback同时也发出去到同一个网站的同一篇文章,造成同一篇文章有Pingback和Trackback两个链接,因为如此很可能对方的防垃圾信息留言机制,会把你误判为垃圾信息,这样就得不偿失啦!
希望我们网站( https://www.wordpressx.com/ ) 分享的《WordPress里的Ping、Trackback和Pingback是什么功能?》,对您有帮助。
1 一、备份博客网站文件和数据库
由于我们负责的某个网站出现敏感词(中国国家领导的名字),没想到被封锁了,中国大陆境内无法访问。
观察发现有非常多国外的合法网站,因为出现了敏感词,都被中国网络防火墙封锁,所以不论我们做新媒体或电商网站运营,必须特别留意网站是否有敏感词,用技术过滤敏感词,以降低被封杀的风险。
如何检测网站域名是否被墙?可以参考此文:《网站域名ip被墙了怎么办?中国防火墙检测查询》
本文综合总结了WordPress搬家换域名教程,大体上来说网站搬家的步骤如下:
WordPress网站搬家有3种情况
1)在原来的空间中把博客文件下载备份:
2)备份数据库:
更多WordPress 网站搬家教程 ▼
网站怎么搬家迁移?WordPress搬家换域名流程
WordPress网站搬家到新空间,需要替换服务器路径,一般都是通过phpMyAdmin数据库管理界面,多次搜索和替换关键词,这样操作繁琐,而且容易出错……为了解决此类问题,我们总结出了以下 “Wor……
WordPress网站搬家后,首页前台空白打开后台也空白,怎么办?
WordPress网站搬家后,首页前台空白打开后台也空白,怎么办?WP网站转移空间换域名,出错是很平常的事情,我们只需将问题,一个个做排查,问题很快得到解决。以下是 WordPress 网站快速搬……
1)把博客文件用FTP传到新空间,和下载一样,要是新空间支持在线解压缩,建议打包上传,这样时间节省了很多,流量也能节省一部分。
2)导入数据库:PHPMyAdmin,帝国备份王都可以做到。
3)通过SSH使用 MySQL 数据库导入命令 ▼
导入数据库500错误?Linux导出MySQL大文件命令行
有位从事电商行业的朋友,刚安装VestaCP面板之后,想要通过phpMyAdmin数据库管理导入MySQL数据库,一直出现500错误,尝试多次也是导入失败……可能因为 php.ini 配置,或其它问题,所以在phpM……
1)修改wp-config文件,最好不要用记事本来修改,用notepad++或者UltraEdit等编辑器,把里面的MySQL数据库信息改为你新空间的数据库信息,如下:
/** WordPress 数据库的名称 */ define('DB_NAME', '你的新空间数据库名称'); /** MySQL 数据库用户名 */ define('DB_USER', '你的数据库用户名'); /** MySQL 数据库密码 */ define('DB_PASSWORD', '你的数据库登录密码'); /** MySQL 主机 */ define('DB_HOST', '你的数据库地址');
将你新的主机空间的数据库名称,数据库用户名和密码填进去即可。注意一下,MySQL主机这一项默认是’localhost’,如果你的是Windows主机,不用修改,如果是Linux主机,可能需要填上数据库的地址。
2) 进入新空间的phpMyAdmin修改数据库:修改数据库表wp_options里的“siteurl”和“home”字段的值,改成你的新域名地址;
3)登录域名服务器(比如:DNSPOD),把域名解析到新空间的IP地址。
4)登录主机控制面板,添加域名。
如何安装CWP控制面板?CENTOS WEB PANEL配置教程
如何安装CWP控制面板? CENTOS WEB PANEL配置教程 网络推广人员用VPS建站,有众多免费或付费的控制面板可以选择。 在不知道要如何选择功能齐全的VPS控制面板时,推荐使用CWP控制面板。 什……
安装 WP Migrate DB 插件 ▼
WordPress网站搬家插件:WP Migrate DB设置方法(数据库迁移利器)
WordPress网站搬家插件:WP Migrate DB设置方法(网站数据库迁移利器)有插坐插坐学院的同学,用WordPress搭建网站做公众号推广,但是网站空间不稳定,影响到SEO排名,索性将网站迁移到……
第一步:在phpMyAdmin里,点击你要修改的数据库名。
第二步:然后,点击“搜索”。
第三步:搜索旧路径
第四步:搜索旧域名
旧域名: http://www.www.in
新域名:http://www.www.org
找到搜索结果,如下图所示:
第五步: 鼠标左键单击“浏览”;
这样在新窗口打开的同时,下方也会自动跳转到该字段位置(自动筛选,显示关键字在哪个字段里)。
注意事项:网站空间路径(文件夹地址)也要替换,请根据自己的情况,自行搜索替换。
比如,在phpMyAdmin里,执行以下语句:
UPDATE wp_options SET option_value = REPLACE(option_value,'旧地址','新地址'); UPDATE wp_posts SET post_content = replace (post_content,'旧地址','新地址'); UPDATE wp_posts SET post_excerpt = replace (post_excerpt,'旧地址','新地址'); UPDATE wp_posts SET guid = replace (guid, '旧地址','新地址');
SQL语句说明:UPDATE 数据表名 SET 字段 = replace (字段, ‘旧地址’,’新地址’);
如果你需要换新域名,请跟着做,不换域名请略过此步。
做301重定向:
如果你用的是Linux+Apache的主机,可以选择修改 .htaccess文件,在此文件中插入以下代码:
RewriteEngine on RewriteCond %{HTTP_HOST} www.ufo.org.in RewriteRule ^(.*) https://www.etufo.org/$1 [L,R=301]
如上,旧域名是 http://www.ufo.org.in,新域名是 http://www.etufo.org
或者,你用户的是Windows主机(不推荐,因为Windows主机完全兼容WordPress),可以选择修改WordPress博客根目录下的wp-blog-header.php,在<?php后加入下面代码:
if (strtolower($_SERVER['SERVER_NAME'])!=’原域名’) { $URIRedirect=$_SERVER['REQUEST_URI']; if(strtolower($URIRedirect)==’/index.php’) { $URIRedirect=’/’; } header(‘HTTP/1.1 301 Moved Permanently’); header(‘Location:http://新域名’.$URIRedirect); exit(); }
花点时间,检查网站前台是否出错?
WordPress网站搬家换域名后,真的出现问题,不知道如何解决,怎么办?
按照以上说的去操作,很快就能成功搬家了!
恭喜你,WordPress网站转移成功!
扩展阅读:
WordPress网站搬家插件:WP Migrate DB设置方法(数据库迁移利器)
WordPress网站搬家插件:WP Migrate DB设置方法(网站数据库迁移利器)有插坐插坐学院的同学,用WordPress搭建网站做公众号推广,但是网站空间不稳定,影响到SEO排名,索性将网站迁移到……
WordPress网站搬家后,首页前台空白打开后台也空白,怎么办?
WordPress网站搬家后,首页前台空白打开后台也空白,怎么办?WP网站转移空间换域名,出错是很平常的事情,我们只需将问题,一个个做排查,问题很快得到解决。以下是 WordPress 网站快速搬……
希望我们网站( https://www.wordpressx.com/ ) 分享的《WordPress搬家教程:网站转移空间换域名怎么做?》,对您有帮助。
有些新媒体人想要做好WordPress网站安全防护,抱怨这2款WP安全插件:
就连最基本的导出导入设定功能,都要付费专业版功能,才能使用,呵呵!
我们在WP官方仔细搜索,很快就找到这款WP插件:
和前2者的主要区别在于,免费用户也能使用功能全面的网站防护设置。
最重要的是,可以免费使用导入导出设定的功能 ▼
想要设定 All In One WP Security & Firewall 插件的导入导出功能,请点击WP安全的选项 “设置” ▼
以下是该插件提供的WordPress安全防护和防火墙功能列表:
如果你导入的是其它网站的设定,同时勾选了“Enable 404 IP Detection and Lockout(启用404 IP检测和锁定)”:
请务必在 “防火墙” 选项里,设置 “404 Lockout Redirect URL(404锁定重定向URL)”网址,不然会重定向到其它网站 ▼
这个插件允许你通过htaccess文件轻松地为你的网站添加大量的防火墙保护。在你网站上的任何其他代码运行之前,你的Web服务器会先运行htaccess文件。
因此,这些防火墙规则将阻止恶意脚本,以免有机会到达你网站上的WordPress代码。
问1:我启用了这个安全插件各种防火墙功能,但现在我被锁定在我的网站之外。我如何解决它?答1:恢复你的WordPress网站的htaccess文件。这将删除任何防火墙,并允许你从头开始。问2:我启用了维护模式,现在我被锁定在我的网站之外。我该怎么办?答2:首先,恢复.htaccess文件,然后登录你的网站。问3:我有一个WordPress多站点(WPMS)安装。我没有看到我的子网站上的这个插件的一些菜单。这是为什么?答3: WordPress多站点为你的所有子站点使用一个单一的文件系统。所以只需要在你的MAIN站点上启用一些安全功能。子站点不会显示这些功能的菜单。你可以从WPMS安装的主站点配置这些设置。问4:如何删除All In One WordPress Security and Firewall 插件答4:在WP后台,点击“插件”,在插件列表里找到 “All In One WP Security” ,点击 “删除” 即可。
错误︰ 出于安全考虑,你的IP地址的访问权限已被阻止。 请与管理员联系。
如果登录网站时,出现以上 “服务暂时无法使用” 的提示消息,说明你的IP地址访问受到了限制。
请尝试通过FTP重命名该插件,取消激活插件后,应该可以登录。
如果FTP重命名该插件,还是无法登录:
为了避免网站被骇客入侵,现在就开始安装All In One WP Security & Firewall安全插件吧!
点此前往 All In One WordPress Security and Firewall 插件下载页面
希望我们网站( https://www.wordpressx.com/ ) 分享的《WordPress网站安全防护插件配置:All In One WP Security & Firewall》,对您有帮助。
1 外链转成内链优势
WordPress如何将外链转内链?
文章外链自动转成内链代码
有时候我们因为做谷歌SEO排名,在WordPress网站分享一些被中国网络封锁的海外网站或论坛,这样的链接有被墙风险。
innity_adZoneAsync.q.push(function(){innity_adZoneAsync.display(“ee389847678a3a9d1ce9e4ca69200d06″,”96572”,{“target”:”div-ad-innity-96572/0″,”origin”:”MY”});});
所以,我们要将文章中某些外链自动转换成内链。
WordPress文章外链自动转成内链的代码,有2个版本:
将以下 PHP 代码保存为 go.php 并上传到网站根目录。
<? php if(strlen($_SERVER['REQUEST_URI']) > 255 || strpos($_SERVER['REQUEST_URI'], "eval(") || strpos($_SERVER['REQUEST_URI'], "base64")) { @header("HTTP/1.1 414 Request-URI Too Long"); @header("Status: 414 Request-URI Too Long"); @header("Connection: Close"); @exit; } //通过QUERY_STRING取得完整的传入数据,然后取得url=之后的所有值,兼容性更好 $t_url = preg_replace('/^url=(.*)$/i','$1',$_SERVER["QUERY_STRING"]); //此处可以自定义一些特别的外链,不需要可以删除以下5行 if($t_url=="chenweiliang" ) { $t_url="https://www.wordpressx.com/"; } elseif($t_url=="etufo") { $t_url="https://www.etufo.org/"; } //数据处理 if(!empty($t_url)) { //判断取值是否加密 if ($t_url == base64_encode(base64_decode($t_url))) { $t_url = base64_decode($t_url); } //对取值进行网址校验和判断 preg_match('/^(http|https|thunder|qqdl|ed2k|Flashget|qbrowser):///i',$t_url,$matches); if($matches){ $url=$t_url; $title='页面加载中,请稍候...'; } else { preg_match('/./i',$t_url,$matche); if($matche){ $url='http://'.$t_url; $title='页面加载中,请稍候...'; } else { $url = 'http://'.$_SERVER['HTTP_HOST']; $title='参数错误,正在返回首页...'; } } } else { $title = '参数缺失,正在返回首页...'; $url = 'http://'.$_SERVER['HTTP_HOST']; } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="robots" content="noindex, nofollow" /> <noscript><meta http-equiv="refresh" content="1;url='<?php echo $url;?>';"></noscript> <script> function link_jump() { //禁止其他网站使用我们的跳转页面 var MyHOST = new RegExp("<?php echo $_SERVER['HTTP_HOST']; ?>"); if (!MyHOST.test(document.referrer)) { location.href="http://" + MyHOST; } location.href="<?php echo $url;?>"; } //延时1S跳转,可自行修改延时时间 setTimeout(link_jump, 1000); //延时50S关闭跳转页面,用于文件下载后不会关闭跳转页的问题 setTimeout(function(){window.opener=null;window.close();}, 50000); </script> <title><?php echo $title;?></title> <style type="text/css"> body{background:#555}.loading{-webkit-animation:fadein 2s;-moz-animation:fadein 2s;-o-animation:fadein 2s;animation:fadein 2s}@-moz-keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@-o-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadein{from{opacity:0}to{opacity:1}}.spinner-wrapper{position:absolute;top:0;left:0;z-index:300;height:100%;min-width:100%;min-height:100%;background:rgba(255,255,255,0.93)}.spinner-text{position:absolute;top:45%;left:50%;margin-left:-100px;margin-top:2px;color:#000;letter-spacing:1px;font-size:20px;font-family:Arial}.spinner{position:absolute;top:45%;left:50%;display:block;margin-left:-160px;width:1px;height:1px;border:20px solid rgba(255,0,0,1);-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px;border-left-color:transparent;border-right-color:transparent;-webkit-animation:spin 1.5s infinite;-moz-animation:spin 1.5s infinite;animation:spin 1.5s infinite}@-webkit-keyframes spin{0%,100%{-webkit-transform:rotate(0deg) scale(1)}50%{-webkit-transform:rotate(720deg) scale(0.6)}}@-moz-keyframes spin{0%,100%{-moz-transform:rotate(0deg) scale(1)}50%{-moz-transform:rotate(720deg) scale(0.6)}}@-o-keyframes spin{0%,100%{-o-transform:rotate(0deg) scale(1)}50%{-o-transform:rotate(720deg) scale(0.6)}}@keyframes spin{0%,100%{transform:rotate(0deg) scale(1)}50%{transform:rotate(720deg) scale(0.6)}} </style> </head> <body> <div class="loading"> <div class="spinner-wrapper"> <span class="spinner-text">页面加载中,请稍候...</span> <span class="spinner"></span> </div> </div> </body> </html>
将以下 JS 代码保存为 go.html 并上传到网站根目录。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="robots" content="noindex, nofollow" /> <script> //base64加密解密函数 var base64EncodeChars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var base64DecodeChars=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);function base64encode(str){var out,i,len;var c1,c2,c3;len=str.length;i=0;out="";while(i<len){c1=str.charCodeAt(i++)&255;if(i==len){out+=base64EncodeChars.charAt(c1>>2);out+=base64EncodeChars.charAt((c1&3)<<4);out+="==";break}c2=str.charCodeAt(i++);if(i==len){out+=base64EncodeChars.charAt(c1>>2);out+=base64EncodeChars.charAt(((c1&3)<<4)|((c2&240)>>4));out+=base64EncodeChars.charAt((c2&15)<<2);out+="=";break}c3=str.charCodeAt(i++);out+=base64EncodeChars.charAt(c1>>2);out+=base64EncodeChars.charAt(((c1&3)<<4)|((c2&240)>>4));out+=base64EncodeChars.charAt(((c2&15)<<2)|((c3&192)>>6));out+=base64EncodeChars.charAt(c3&63)}return out}function base64decode(str){var c1,c2,c3,c4;var i,len,out;len=str.length;i=0;out="";while(i<len){do{c1=base64DecodeChars[str.charCodeAt(i++)&255]}while(i<len&&c1==-1);if(c1==-1){break}do{c2=base64DecodeChars[str.charCodeAt(i++)&255]}while(i<len&&c2==-1);if(c2==-1){break}out+=String.fromCharCode((c1<<2)|((c2&48)>>4));do{c3=str.charCodeAt(i++)&255;if(c3==61){return out}c3=base64DecodeChars[c3]}while(i<len&&c3==-1);if(c3==-1){break}out+=String.fromCharCode(((c2&15)<<4)|((c3&60)>>2));do{c4=str.charCodeAt(i++)&255;if(c4==61){return out}c4=base64DecodeChars[c4]}while(i<len&&c4==-1);if(c4==-1){break}out+=String.fromCharCode(((c3&3)<<6)|c4)}return out}function utf16to8(str){var out,i,len,c;out="";len=str.length;for(i=0;i<len;i++){c=str.charCodeAt(i);if((c>=1)&&(c<=127)){out+=str.charAt(i)}else{if(c>2047){out+=String.fromCharCode(224|((c>>12)&15));out+=String.fromCharCode(128|((c>>6)&63));out+=String.fromCharCode(128|((c>>0)&63))}else{out+=String.fromCharCode(192|((c>>6)&31));out+=String.fromCharCode(128|((c>>0)&63))}}}return out}function utf8to16(str){var out,i,len,c;var char2,char3;out="";len=str.length;i=0;while(i<len){c=str.charCodeAt(i++);switch(c>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:out+=str.charAt(i-1);break;case 12:case 13:char2=str.charCodeAt(i++);out+=String.fromCharCode(((c&31)<<6)|(char2&63));break;case 14:char2=str.charCodeAt(i++);char3=str.charCodeAt(i++);out+=String.fromCharCode(((c&15)<<12)|((char2&63)<<6)|((char3&63)<<0));break}}return out}function doit(){var f=document.f;f.output.value=base64encode(utf16to8(f.source.value));f.decode.value=utf8to16(base64decode(f.output.value))}; //获取请求参数,支持伪静态 function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=(.*)$"); var r = window.location.search.substr(1).match(reg); if(r!=null) { return unescape(r[2]); } else { return window.location.pathname.replace('/go/',''); //注意代码中的/goto/和跳转地址/goto/保持一致,请记得自行修改! } } var jump_url = GetQueryString("url"); //若传入的是base加密数据,则进行解密处理 if( jump_url==base64encode(base64decode(jump_url))) { jump_url = base64decode(jump_url); } //url简单正则 var UrlReg = "^((http|https|thunder|qqdl|ed2k|Flashget|qbrowser|ftp|rtsp|mms)://)"; //自定义一些跳转字符串,请根据实际需求自行发挥 if(jump_url=="chenweiliang") { var jump_url="https://www.wordpressx.com/"; } if(jump_url=="etufo") { var jump_url="https://www.etufo.org/"; } //网址校验 if(jump_url == null || jump_url.toString().length<1 || !jump_url.match(UrlReg)) { document.title = '参数错误,正在返回首页...'; jump_url = location.origin; } //延时执行跳转 setTimeout( function link_jump() { //非本站域名不允许使用此跳转页面,请自行修改wordpressx.com为自己的域名 var MyHOST = new RegExp("wordpressx.com"); if (!MyHOST.test(document.referrer)) { location.href = "http://" + MyHOST; return; } location.href = jump_url; }, 1000); setTimeout(function(){window.opener=null;window.close();}, 50000); </script> <title>页面加载中,请稍候...</title> <style type="text/css"> body{background:#555}.loading{-webkit-animation:fadein 2s;-moz-animation:fadein 2s;-o-animation:fadein 2s;animation:fadein 2s}@-moz-keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@-o-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadein{from{opacity:0}to{opacity:1}}.spinner-wrapper{position:absolute;top:0;left:0;z-index:300;height:100%;min-width:100%;min-height:100%;background:rgba(255,255,255,0.93)}.spinner-text{position:absolute;top:45%;left:50%;margin-left:-100px;margin-top:2px;color:#000;letter-spacing:1px;font-size:20px;font-family:Arial}.spinner{position:absolute;top:45%;left:50%;display:block;margin-left:-160px;width:1px;height:1px;border:20px solid rgba(255,0,0,1);-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px;border-left-color:transparent;border-right-color:transparent;-webkit-animation:spin 1.5s infinite;-moz-animation:spin 1.5s infinite;animation:spin 1.5s infinite}@-webkit-keyframes spin{0%,100%{-webkit-transform:rotate(0deg) scale(1)}50%{-webkit-transform:rotate(720deg) scale(0.6)}}@-moz-keyframes spin{0%,100%{-moz-transform:rotate(0deg) scale(1)}50%{-moz-transform:rotate(720deg) scale(0.6)}}@-o-keyframes spin{0%,100%{-o-transform:rotate(0deg) scale(1)}50%{-o-transform:rotate(720deg) scale(0.6)}}@keyframes spin{0%,100%{transform:rotate(0deg) scale(1)}50%{transform:rotate(720deg) scale(0.6)}} </style> </head> <body> <div class="loading"> <div class="spinner-wrapper"> <span class="spinner-text">页面加载中,请稍候...</span> <span class="spinner"></span> </div> </div> </body> </html>
请注意修改://非本站域名不允许使用此跳转页面,请自行修改wordpressx.com为自己的域名
innity_adZoneAsync.q.push(function(){innity_adZoneAsync.display(“ee389847678a3a9d1ce9e4ca69200d06″,”96574”,{“target”:”div-ad-innity-96574/0″,”origin”:”MY”});});
PHP 版本和 JS 版本的功能是一样的,区别在于:
注意:如果测试JS版本的跳转代码无效,就用PHP的跳转代码。
上传跳转页面后,接着就是将外链跳转代码,添加到WordPress主题的 function.php 文件里。
2 选 1 代码:
// 外链跳转无加密go.html?url
add_filter('the_content','link_to_jump',999);
function link_to_jump($content){
preg_match_all('/<a(.*?)href="(.*?)"(.*?)>/',$content,$matches);
if($matches){
foreach($matches[2] as $val){
if(strpos($val,'://')!==false && strpos($val,home_url())===false && strpos($val,'wordpressx.com')===false && strpos($val,'ufo.org.in')===false && strpos($val,'etufo.org')===false && !preg_match('/.(jpg|jepg|png|ico|bmp|gif|tiff)/i',$val) && !preg_match('/(ed2k|thunder|Flashget|flashget|qqdl):///i',$val))
{
$content=str_replace("href="$val"", "rel="nofollow" target="_blank" href="go.html?url=$val" ",$content);
}
}
}
return $content;
}
// 外链跳转base64加密go.html?url add_filter('the_content','link_to_jump',999); function link_to_jump($content){ preg_match_all('/<a(.*?)href="(.*?)"(.*?)>/',$content,$matches); if($matches){ foreach($matches[2] as $val){ if(strpos($val,'://')!==false && strpos($val,home_url())===false && strpos($val,'wordpressx.com')===false && strpos($val,'ufo.org.in')===false && strpos($val,'etufo.org')===false && !preg_match('/.(jpg|jepg|png|ico|bmp|gif|tiff)/i',$val) && !preg_match('/(ed2k|thunder|Flashget|flashget|qqdl):///i',$val)) { $content=str_replace("href="$val"", "rel="nofollow" target="_blank" href="go.html?url=" .base64_encode($val). "" ",$content); } } } return $content; }
排除指定某个外链域名不自动转成内链(域名白名单):
&& strpos($val,'你的域名')===false
为了避免搜索引擎蜘蛛抓取到跳转链接,我们可以 robots.txt 文件里,添加禁止搜索引擎蜘蛛抓取的规则:
User-agent: * Disallow: /go.html?url=* Disallow: /go.php?url=*
本文未完,请继续看“扩展阅读”
扩展阅读:
希望我们网站( https://www.wordpressx.com/ ) 分享的《WordPress如何将外链转内链?文章外链自动转成内链代码》,对您有帮助。
1 如何使用图标字体?
新媒体人做SEO就是在给网站优化和提升用户体验。
你可以在WordPress网站上,添加图标字体,非常美观,支持响应式设计的WP主题模板。
图标字体和小图像格式的图标不同:
具体效果图,可查看我们网站的导航菜单。
第 1 步:安装插件
第 2 步:寻找图标字体
点此前往 图标字体官方网站
打开图标字体官方网站,找到我们需要的图标 ▼
<i class =“fa fa-home”> </ i>
复制 fa fa-home。fas fa-home
第 3 步:菜单输入CSS类字体图标
fa fa-home
) ▼如果在编辑菜单项面板中没有CSS类,则可以打开右上角的 “显示选项”,并在显示菜单的高级属性中,选中“CSS类” ▼
希望我们网站( https://www.wordpressx.com/ ) 分享的《WordPress菜单图标CSS怎么添加?安装WP导航图标字体插件》,对您有帮助。
1 什么是结构化数据(微数据)?
谷歌SEO排名是一些外贸从业者,做网络推广的主要方式。
网页有排名了,如果能够有效全面提升网站点击率,确实可以给网站带来更多的流量 ^_^
Google的微数据是基于你的HTML代码来标记的,如果你编写代码规范,能丰富你网页在谷歌搜索结果中的展示。
谷歌搜索 “来自外星人的讯息”,我们可以在搜索结果中,看到这个宣传《来自外星人的讯息》的页面所包含的结构化数据(微数据) ▼
丰富网页摘要(Schema Rich Snippets)结构化数据,能让电商网站以差异化的丰富摘要片段,在谷歌搜索结果中显示,从而有效提升点击率和网站访问量。
大多数电子商务网站页面非常多,手动修改代码太费时费力,所以都是直接修改模板程序、安装WordPress插件来实现丰富网页摘要(Schema Rich Snippets)结构化数据的,只是简化了整个过程。
我们将向你展示如何以最简单的方式,在你的网站上安装丰富网页摘要——使用WordPress插件。
安装All In One Schema Rich Snippets插件 ▼
此WordPress插件会自动将微数据模式插入到每个帖子中,Google可以将其转化为丰富的摘要。
该插件支持各种丰富的片段类型,包括:
此WP插件支持的片段数量将在未来的更新中进行扩展,并附带书评和本地商业片段,插件的优点就是设置够简单。
在你的WordPress文本编辑器下面,会发现一个metabox,带有一个包含插件支持的所有不同代码片段类型的小型下拉菜单 ▼
在你选择了最合适的选项后,你会看到一些要填写的字段,具体取决于你的第一个选择。
例如,配方(Recipe)片段将需要估计的烹饪持续时间 ▼
Google将能够识别微数据,并使用它来填充SERP(搜索引擎结果)中链接旁边的丰富网页摘要。
以下是 All In One Schema Rich Snippets 插件的常见问题。
1)我在哪里可以看到我的搜索结果预览?这里:http://www.google.com/webmasters/tools/richsnippets2)我必须填写所有的细节吗?不是,尽管Google为了显示丰富的代码段而强制要求某些字段。3)为什么插件会在我的页面/帖子末尾创建额外的内容?我可以简单地隐藏/定制它吗?这是在搞乱我的设计!
在CSS代码搜索 “snippet-box”,将 display: block
#snippet-box {
background: #F5F5F5;
border: 1px solid #ACACAC;
font-family: inherit;
font-size: 13px;
padding: 0;
margin: 0 0 15px 0;
width: 100%;
max-width: 600px;
display: block;
}
改成 display: none
#snippet-box {
background: #F5F5F5;
border: 1px solid #ACACAC;
font-family: inherit;
font-size: 13px;
padding: 0;
margin: 0 0 15px 0;
width: 100%;
max-width: 600px;
display: none;
}
注意事项:
4)这个插件如何与WordPress SEO,wooCommerce等其他插件一起工作?
那么,这个插件与大多数其他插件完美配合,因为“All in One Schema.org Rich Snippets”所做的唯一事情就是 – 它可以让你轻松地在页面中添加Rich Snippets MicroData。
如果你发现任何与其他插件冲突,请不要犹豫报告问题。
5)为搜索结果显示丰富网页摘要需要多长时间?我的搜索结果仍然没有出现丰富的片段。
只要搜索引擎抓取插件创建的MicroData,就可以为你搜索结果显示最有可能的丰富网页摘要。然而,搜索引擎完全可以为搜索结果显示丰富的摘要(这主要取决于你的网站权限)
如果丰富网页摘要尚未显示在搜索结果中,那么Google /其他搜索引擎发现你的网站更具权威性时,很可能很快就会开始出现。
同时 – 你可以在[Google结构化数据测试工具]上验证并查看你丰富网页摘要的预览。
6)我没有看到我想要的功能。我怎么才能得到它? [联系我们]询问这个功能是否在我们的开发路线图中。如果它不在我们的路线图中,并且如果你仍然认为此功能会使插件更好,我们有几个选项可供选择 –
如果你是开发人员并提交代码,请编写新功能。如果我们在发布中包含此功能,则会获得学分。
为所有插件用户提供赞助,以完成此功能或请求专业定制服务。
7)Google作者也是你的插件的一部分吗?
不幸的是,目前还没有。虽然这绝对是我们的路线图,并且发展很快就会完成。敬请关注!
希望我们网站( https://www.wordpressx.com/ ) 分享的《谷歌丰富网页摘要Rich Snippets结构化数据怎么做?》,对您有帮助。
1 一、添加嵌入文章卡片样式短代码
网站内部链接优化,在SEO环节中一直非常重要,一个好的链接结构对搜索引擎优化非常有利。
倘若在当前文章和其他文章有关联时,主动在页面内添加链接:
如果更新了一些旧文章,则还可以通过在新文章添加内部链接,来指示搜索引擎蜘蛛重新抓取和收录旧文章的内容更新。
第 1 步:添加PHP代码
将以下代码添加到你的WP主题的 functions.php 文件中:
/** * 加入内部文章缩略图 By 我们 * 文章地址:https://www.wordpressx.com/cwl-638.html **/ function cwl_thumbnail_src() { global $post; if ( get_post_meta($post->ID, 'thumbnail', true) ) { //如有缩略图,就显示缩略图 $image = get_post_meta($post->ID, 'thumbnail', true); return $image; } else { if ( has_post_thumbnail() ) { //如有缩略图,就显示缩略图 $img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), "Full"); return $img_src[0]; } else { $content = $post->post_content; preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER); $n = count($strResult[1]); if($n > 0){ return $strResult[1][0]; //若无缩略图,就调用文中第一张图片作缩略图 }else { $random = mt_rand(1, 20); return get_template_directory_uri().'/img/random/'. $random .'.jpg'; //文章中若无图片,就随机读取在 random 文件夹内的图片作缩略图 } } } } //加入内部文章链接 function cwl_insert_posts( $atts, $content = null ){ extract( shortcode_atts( array( 'ids' => '' ), $atts ) ); global $post; $content = ''; $postids = explode(',', $ids); $inset_posts = get_posts(array('post__in'=>$postids)); foreach ($inset_posts as $key => $post) { setup_postdata( $post ); $content .= '<div class="jiawen"><div class="fl"><a target="_blank" href="' . get_permalink() . '" class="fl"><i class="fa fa-link fa-fw"></i>'; $content .= get_the_title(); $content .= '</a><p class="note"><a target="_blank" rel="nofollow" href="' . get_permalink() . '">'; //$content .= get_the_excerpt(); $content .= mb_strimwidth(strip_tags(apply_filters(‘the_content’, $post->post_content)), 0, 180, …… ); $content .= '</a></p></div><div class="fr"><a target="_blank" rel="nofollow" href="' . get_permalink() . '"><img src='; $content .= cwl_thumbnail_src(); $content .= ' class="jiawen-thumb" alt="' . get_the_title() . '" title="' . get_the_title() . '"></a></div></div>'; } wp_reset_postdata(); return $content; } add_shortcode('jiawen', 'cwl_insert_posts');
图片以 1~20 命名:
第 2 步:添加CSS代码
将以下代码添加到你的WP主题的 style.css 文件中:
/*加入内部文章CSS*/ .fl{float:left;} .fr{float:right;} .jiawen{margin-bottom:25px;padding:10px;width:95%;height:100%;border:1px solid #e8e8e8;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.1);cursor:pointer;-webkit-transition:box-shadow 218ms;-moz-transition:box-shadow 218ms;-o-transition:box-shadow 218ms;transition:box-shadow 218ms;overflow:hidden;} .jiawen:hover{box-shadow:0 1px 8px 1px rgba(0,0,0,.1);} .jiawen .fl{width:72%;} .jiawen .fr{padding:10px 5px;width:24%;} .jiawen .fl a{display:block;margin-right:15px;padding:8px 0;width:100%;height: 100%;color:#8463a9!important;text-decoration:none;font-size:16px;border:none;overflow: hidden;} .jiawen .fl .note{margin:0 0 5px;padding-left:10px;height:150px;color:#888;font-size:14px;} .jiawen .jiawen-thumb{width:170px;height:120px;margin-top: 10px;} @media only screen and (max-width: 700px){.jiawen .jiawen-thumb {width: auto;height: auto;}}
可以直接在文章编辑器 “可视化” 或 “文本” 界面中,输入简码 【jiawen ids =postID1,postID2 ...】
的格式调用。
例如,如果我想显示3个内部链接文章,我直接输入简码:
【jiawen ids=526,380,411】
若你不是在WordPress编辑器中使用简码,想在别处调用,可以使用如下代码调用它:
do_shortcode('[neilian ids ids = postID1,postID2]')
如果需要每次手动输入简码,感觉太麻烦,怎么办呢?
WordPress的强大之处,就是能够让我们实现复杂事简单化 ^_^
WordPress默认内置TinyMCE编辑器,我们可以TinyMCE编辑器文本界面,添加快捷方式按钮。
第 3 步:添加快捷按钮代码
//加入内部文章,TinyMCE 编辑器文本按钮
add_action('after_wp_tiny_mce', 'add_button_mce');
function add_button_mce($mce_settings) {
?>
<script type="text/javascript">
QTags.addButton( 'jw', '加入内部文章', '', '');
</script>
<?php
}
注意事项
如果你已经添加编辑器自定义快捷按钮的其它代码,就只需在<script type="text/javascript">
之下,添加如下代码 ▼
QTags.addButton( 'jw', '加入内部文章', '', '');
不然会出错。
我们在编辑WordPress文章时,通常默认界面是可视化(Visual)。
所以,最好也在可视化编辑器中添加一个按钮。
第 4 步:安装启用插件
安装完成后,在左侧菜单栏下方,将出现一个带有齿轮图标的Visual Editor Custom Buttons ▼
第 5 步:点击 Add New
你只需跟着下图设置即可 ▼
第 6 步: Button Content 选项
第 7 步: Before 设置
第 8 步:Display In Editor 设置
第 9 步:Button Icon 选项
第 10 步:测试
希望我们网站( https://www.wordpressx.com/ ) 分享的《WordPress怎么添加文章卡片样式?嵌入文章卡片形式短代码》,对您有帮助。
1 id 和class 的区别
CSS选择器class跟id有什么区别?HTML中id和class用法
我们最近在执行SEO,优化网站的WordPress主题。
虽然之前有学过一些基础的 HTML 和 CSS 知识,但是一段时间没有操作,尤其是CSS部分用法,很容易忘记。
所以,在此记录、总结 CSS 选择器 id、class 的区别和用法:
div选择器本身不具有属性,通过定义它的 css,来控制这个div的宽度、高度、背景颜色和文字大小等等的一些布局。
一般的电子商务网站、建站程序生成的 html 网页,就是通过CSS,来实现页面布局的。
每个CSS样式的定义,都是由2个部分组成:
选择器 {样式}
以下是选择和设置 class=”sidebar” 元素的样式:
.sidebar { background-color:black; }
以下是选择和设置 id=”footer” 的元素样式:
#footer { background-color:black; }
希望我们网站( https://www.wordpressx.com/ ) 分享的《CSS选择器class跟id有什么区别?HTML中id和class用法》,对您有帮助。