野人部落实验室

Category: Wordpress (page 1 of 3)

B2主题专题期数无法保存问题

今天在设置B2主题的时候发现专题里面的部分设置项无法进行保存。经过排查发现数据库里面没有wp_termmeta这个数据表。

重新复制并导入一个wp_termmeta数据表。问题成功解决。

修复wp_termmeta doesn’t exist

数据库出了点问题,故障原因不明。wp_termmeta这个表坏了。执行如下SQL语句重新创建这张表:

CREATE TABLE wp_termmeta (
meta_id bigint(20) UNSIGNED NOT NULL,
term_id bigint(20) UNSIGNED NOT NULL DEFAULT '0',
meta_key varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
meta_value longtext COLLATE utf8mb4_unicode_ci
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

使用SQL命令批量替换WordPress站点中图片的URL链接地址

具体操作步骤如下:

1.备份一下数据库。

2.登陆phpMyAdmin,点击“SQL”.

注:如果使用的是云服务器或者VPS,也可以直接在服务器中登陆SQL数据库进行操作。

输入以下SQL命令:

UPDATE YourDBName_posts SET post_content = REPLACE( post_content, 'YourOldUrl', 'YourNewUrl' )

YourDBame 默认是wp

3.点击“执行”就可以替换掉原来的URL.

WordPress timer_stop 查看页面生成消耗时间

作为在写 WordPress 性能优化教程前的预热,我们需要先了解到 WordPress 前端页面的一个性能情况,而最直接的就是查看页面生成的需要多少时间,这样我们才能知道在以后的优化后会有多大的提升。

WordPress timer_stop

WordPress 提供了一个,timer_stop()函数,官方给出的介绍为:检索或显示从页面开始到调用函数的时间。简单的说就是我们访问一个 WordPress 链接,服务器生成处理这个页面所需要的时间,当然这并不是指我们打开或者加载这个页面的时间。更多的是服务器端的处理速度和 WordPress 本身运行情况。

1
2
3
4
5
6
7
8
9
10
//函数
timer_stop( $display, $precision = 3 )
 
//$display:是否直接输出,int | bool 必选,是否回显或返回结果。0 或 false 表示返回;1 或 true 表示输出显示。默认值为 0 | false。
 
//$precision:精度,int 可选,指要显示的小数点右边的位数。默认为 3.
 
//示例
 
<?php timer_stop(1);//直接输出显示 ?>

最后分享一个比较常见的关于 WordPress 显示当前页面数据库查询次数、页面生成时间以及服务器内存消耗情况的方法代码,如下:

1
<?php if(current_user_can('manage_options')){echo '<!-- ' . get_num_queries() . ' queries in ' . timer_stop(0,3) . ' seconds ' . memory_get_peak_usage()/1024/1024 . 'MB memory -->';}?>

以上我还多添加了一个判断,就是当只有管理员登录的情况下查看源代码就会有相关的信息输出啦,喜欢折腾的朋友们赶紧看看你们 WordPress 站点性能是什么一个情况吧!

WordPress去除留言带replytocom链接,防止收录重复内容

仔细的观察下wordpress的留言链接,你会发现会出现这样的结构http://a.com/a.html?replytocom=12#respond ,而这样的链接跟a.com/a.html是一个页面,如果收录的话会很不利,而且百度最新的cannio标签也说了 各位站长在设置Canonical标签前,仔细检查两个网页是否真的完全相同——一旦百度发现其中一个Canonical标签有问题,会不信任该站点的所有Canonical标签。 这样的抓取很容易导致网站被k,这里说下几种解决方法。

第一种方法应该就是大家最容易想到的robot方法了,利用robots.txt屏蔽是最简单的解决方法了

  1. User-agent: *
  2. Disallow: /*?replytocom=

第二种方法就是跟带replytocom的链接加上nofollow属性,这样蜘蛛同样不会抓取,方法就是在当前使用主题的function中加入以下代码

  1. add_filter(‘comment_reply_link’, ‘add_nofollow’, 420, 4);
  2. function add_nofollow($link, $args, $comment, $post){
  3. return str_replace(“href=”, “rel=’nofollow’ href=”, $link);
  4. }

第三种方法就是移除replytocom这样的链接
因为不是所有的搜索引擎都支持robots协议跟nofollow属性的,像360那种bug的存在我们上面的两种方法就没有作用了,我们可以使用第三种方法就是将replytocom替换为#comment-评论id,因为蜘蛛是不识别带有#号的链接的,这样也可以达到屏蔽的效果

  1. add_filter(‘comment_reply_link’, ‘add_nofollow’, 420, 4);
  2. function add_nofollow($link, $args, $comment, $post){
  3. return preg_replace( ‘/href=\'(.*(\?|&)replytocom=(\d+)#respond)/’, ‘href=\’#comment-$3‘, $link );
  4. }

wordpress显示摘要的方法

许多国内外的wordpress博客主题首页都会调用最新的若干篇文章的标题和内容,如果,一篇博客文章的内容过长,会占用页面的许多空间,用户浏览起来很不方便。解决这一问题有两种方法:

1、手动添加 more 标签,详wordpress more标签的用法

2、自动显示文章的摘要,同时限制字数:

在主题文件夹下的functions.php文件中加入如下代码:

1
2
3
4
5
6
7
add_filter('the_content','substr_content');
function substr_content($content){
	if(!is_singular()){
		$content=mb_strimwidth(strip_tags($content),0,200);
	}
	return $content;
}

其中”!is_singular()”是条件判断函数,表示在除单页面外的首页或分类等列表页面应用该函数,”200″表示截取的字数,相当于200个英文字符或100个中文字符。

其它条件判断语句:

1
2
3
4
5
6
7
is_home()          //仅在首页应用
is_category()      //仅在分类目录页应用
is_tag()           //仅在标签页应用
is_category() || is_tag()    //仅在目录页或标签页应用
is_date()          //仅在文章归档页应用
is_search()        //仅在搜索页面应用
}

Linux SSH命令大全【转】

Linux SSH命令大全
rm -rf mydir /* 删除mydir目录 */
cd mydir /* 进入mydir目录 */
cd – /* 回上一级目录 */
cd ~ /* 回根目录 */
mv tools tool /* 把tools目录改名为tool */
ln -s tool bac
/* 给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了 */

cp -a tool /home/leavex/www /* 把tool目录下所有文件复制到www目录下 */
rm go.tar /* 删除go.tar文件 */ Continue reading

无插件美实现wordpress蜘蛛爬行记录生成

wordpress蜘蛛爬行记录生成这个功能,出于对网站优化的研究,清楚的了解蜘蛛爬行规律也是很重要的,我们就可以知道蜘蛛的爬行规律,根据这个规律我们再来写文章,这样符合了蜘蛛的胃口是很利于优化的。。。但是小编一直提倡着远离插件,热爱速度的口号,所以今天就教大家用代码完美实现wordpress蜘蛛爬行记录生成功能!

wordpress主题文件目录下找到function文件,用代码编辑软件打开,在<?php ?>内的任意位置增加下面一段代码即可完成wordpress蜘蛛爬行记录生成的功能!

  1. function get_naps_bot(){
  2. $useragent = strtolower($_SERVER[‘HTTP_USER_AGENT’]);
  3. if (strpos($useragent, ‘googlebot’) !== false){
  4. return ‘Googlebot’;
  5. }
  6. if (strpos($useragent, ‘msnbot’) !== false){
  7. return ‘MSNbot’;
  8. }
  9. if (strpos($useragent, ‘slurp’) !== false){
  10. return ‘Yahoobot’;
  11. }
  12. if (strpos($useragent, ‘baiduspider’) !== false){
  13. return ‘Baiduspider’;
  14. }
  15. if (strpos($useragent, ‘sohu-search’) !== false){
  16. return ‘Sohubot’;
  17. }
  18. if (strpos($useragent, ‘lycos’) !== false){
  19. return ‘Lycos’;
  20. }
  21. if (strpos($useragent, ‘robozilla’) !== false){
  22. return ‘Robozilla’;
  23. }
  24. return false;
  25. }
  26. function nowtime(){
  27. date_default_timezone_set(‘Asia/Shanghai’);
  28. $date=date(“Y-m-d.G:i:s”);
  29. return$date;
  30. }
  31. $searchbot = get_naps_bot();
  32. if ($searchbot) {
  33. $tlc_thispage = addslashes($_SERVER[‘HTTP_USER_AGENT’]);
  34. $url=$_SERVER[‘HTTP_REFERER’];
  35. $file=“robotslogs.txt”;
  36. $time=nowtime();
  37. $data=fopen($file,“a”);
  38. $PR=“$_SERVER[REQUEST_URI]”;
  39. fwrite($data,“Time:$time robot:$searchbot URL:$tlc_thispage\n page:$PR\r\n”);
  40. fclose($data);
  41. }

使用上面这段代码后,最好在网站的根目录创建个robotslogs.txt的文件,并且linux主机设置权限为777,然后过段时间,访问http://网址/robotslogs.txt 即可看到蜘蛛爬行记录了!

一些说使用后出错的朋友,请研究下function文件内,插入的位置!

解决利用Virtualmin进行定时备份无法删除旧备份

标题有点怪,我的问题就是利用Virtualmin进行定时备份进行配置的时候出现“Deletion of old backups is only supported when a date-based destination is used, and strftime substitutions are enabled.”错误。然后我google了一下。有解决办法了。

解决方法很简单:即在备份的文件夹那后面还需要加上 %d-%M-%Y 这几个参数。这样才能定时删除旧的备份。

virtualmin-buck-up

利用WordPress短代码插入无广告的优酷视频

之前写过一篇《引用优酷视频屏蔽广告代码》,其中的代码可以在Wordpress博客转载和引用优酷视频时屏蔽掉广告,但每次都复制长长的代码,不仅麻烦而且会影响到文章的编辑。下面我们利用WordPress短代码(Shortcode API),采用方便简洁的形式插入无广告的视频。

一、将下面代码加到Wordpress主题functions.php模板文件中:

  1. function youku_video($atts, $content=null){
  2. return ‘<p style=“text-align: center;”><embed src=http://static.youku.com/v1.0.0149/v/swf/qplayer_rtmp.swf?VideoIDS=’.$content.’ID&winType=adshow&isAutoPlay=true” quality=”high” width=”610″ height=”460″ align=”middle” wmode=”transparent” allowScriptAccess=”never” allowNetworking=”internal” autostart=”0″ type=”application/x-shockwave-flash”></embed></p>’;
  3. }
  4. add_shortcode(‘youku’,’youku_video’);

其中: width=”610″ height=”460″ 是视频的大小,可根据需要修改。

二、编辑文章时在准备插入优酷视频的位置输入:

  1. {youku]XMjM2OTE3ODg4[/youku}

注:前后的 { } 用 [ ] 替换。

中间的“XMjM2OTE3ODg4”是这首 Need You Now 音乐视频地址的ID:

http://v.youku.com/v_show/id_XMjM2OTE3ODg4.html

获得视频地址后,只需要复制最后的红色部即可。

点击播放下面的视频,看看烦人广告是不是真的没了,再也不会因看一分钟的视频,却因为前面30秒的广告而抓狂!

本文的目的只是为了实践应用一下WP短代码而已,如果你是Firefox或者chrome浏览器用户,可以安装Adblock扩展屏蔽视频广告,更为方便实用。
另外,OpenGG.Clean.Player 去视频广告脚本也不错
补充:另有童鞋在此代码基础上添加了可以自定义视频大小的短代码供大家参考:

  1. /优酷开始
  2. function youku_video($atts, $content=null){
  3. extract(shortcode_atts(array(“w”=>’0′,“h”=>’0′,),$atts));
  4. return ‘<p style=“text-align: center;”><embed src=http://static.youku.com/v1.0.0149/v/swf/qplayer_rtmp.swf?VideoIDS=’.$content.’ID&winType=adshow&isAutoPlay=true” quality=”high” width=”‘.$w.'” height=”‘.$h.'” align=”middle” wmode=”transparent” allowScriptAccess=”never” allowNetworking=”internal” autostart=”0″ type=”application/x-shockwave-flash”></embed></p>’;
  5. }
  6. add_shortcode(‘youku’,’youku_video’);
  7. //优酷结束

编辑文章时在准备插入优酷视频的位置输入:

  1. {youku w=630 h=370]XMzMyMzgzNjI4[/youku}

注:前后的 { } 用 [ ] 替换。

其中 w=630 h=370是视频尺寸大小

原文:http://yutao.me/61.htm

http://zmingcx.com/youku-wordpress-code-ad.html

Olderposts

Copyright © 2023 野人部落实验室

Theme by Anders NorenUp ↑