Woedpress是大多数写博客的朋友所喜欢选择使用的博客平台,而Wordpress技巧自然就成了众多博友们普遍讨论的热门话题,因此,我决定收集并编写10个新的非常有用的Wordpress技巧,且照旧与朋友们一起分享。
1.去除评论自动链接
平时读者来给我们的文章发表评论的时候,评论中就会附带有一个url,Wordpress会自动将它转换为链接的形式,虽然很有用,但有时有的链接未免带有“垃圾”的性质,有的朋友可能需要将这些自动链接去掉,那么,下面提供一个解决方法。
将下面这条代码粘贴到主题文件functions.php 中,然后保存,所有评论的自动链接将悄然消失:
remove_filter('comment_text', 'make_clickable', 9);
2.通过邮件自动将博客更新告知用户
对于个人博客来说,实现这样的功能非常有好处,你的读者用户可以及时知道你博客发表了新的文章。下面的这条代码会搜索你的数据库并获取读者用户的邮件地址,Wordpress会根据这些邮件地址自动发送博客更新的信息。将下面的代码放到functions.php文件中即可:
function email_members($post_ID) {
global $wpdb;
$usersarray = $wpdb->get_results("SELECT user_email FROM $wpdb->users;");
$users = implode(",", $usersarray);
mail($users, "New WordPress recipe online!", 'A new recipe have been published on http://www.catswhocode.com');
return $post_ID;
}
add_action('publish_post', 'email_members');
注意:目前此代码还没有取消订阅的功能,使用时请慎重考虑!
3.将Twitter消息发布日期显示为“发布于多少天前”的格式
许多人都不知道Wordpress有一条内置的功能函数human_time_diff()可以实现这样的日期显示格式,只需将下面这条代码粘贴到你想要显示“发布于多少天前”的任何loop循环之间即可:
发布于<?php echo human_time_diff(get_the_time(<'U'), current_time('timestamp')) . ' ago'; ?>
下面这一段代码就是将时间格式转换为“发布于多少天前”的Wordpress PHP功能函数:
function timeAgo($timestamp, $granularity=2, $format='Y-m-d H:i:s'){
$difference = time() - $timestamp;
if($difference < 0) return '0 seconds ago';
elseif($difference < 864000){
$periods = array('week' => 604800,'day' => 86400,'hr' => 3600,'min' => 60,'sec' => 1);
$output = '';
foreach($periods as $key => $value){
if($difference >= $value){
$time = round($difference / $value);
$difference %= $value;
$output .= ($output ? ' ' : '').$time.' ';
$output .= (($time > 1 && $key == 'day') ? $key.'s' : $key);
$granularity--;
}
if($granularity == 0) break;
}
return ($output ? $output : '0 seconds').' ago';
}
else return date($format, $timestamp);
}
上面那段函数包含了3个参数:
timestamp: 日期
granularity: 时间间隔长度. 默认为 2 (1天, 15小时前)
format: 日期显示格式. 默认为 Y-m-d H:i:s.
调用方法如下:
$time= timeAgo($dateRef);
或者你也可以在Wordpress中使用这条timeAgo() 函数:
echo timeAgo(get_the_time('U'));
4.在RSS feed中显示文章缩略图
在WordPress 2.9中开始引入了这样的一条函数:the_post_thumbnail() ,能够帮助我们设置并显示文章缩略图,只可惜在RSS订阅源中没有内置的调用函数,这里我们就为它添加上。
只要将下面的这段代码粘贴到functions.php中,保存,文章缩略图就自动显示在你的RSS订阅源中了:
function diw_post_thumbnail_feeds($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '
<DIV>' . get_the_post_thumbnail($post->ID) . '</DIV>
' . $content;
}
return $content;
}
add_filter('the_excerpt_rss', 'diw_post_thumbnail_feeds');
add_filter('the_content_feed', 'diw_post_thumbnail_feeds');
5.阻止外部请求
默认情况下,Wordpress会在后台自动接收来自外部的一些请求,如Wordpress版本更新,Wordpress新闻等消息,安装Wordpress之后,你每次打开后台都会看到这些消息,如果你不想看到这些消息,使用下面的方法来解决。
在wp-config.php文件中加上以下两行:
define('WP_HTTP_BLOCK_EXTERNAL', true);
但是你也可以添加白名单以接收某些来自外部的请求:
define('WP_ACCESSIBLE_HOSTS', 'rpc.pingomatic.com');
修改其中的rpc.pingomatic.com为你自己所需。
6.简易调试模式
当你的WordPress运行出现问题的时候,你可能就会使用这个超级实用的调试工具WP_DEBUG,而默认情况下,你需要在wp-config.php添加一段代码以让调试模式生效。如果你想在Wordpress运行正常之下轻松进入调试模式的话,可以编辑wp-config.php文件,在里面找到这一行:
define('WP_DEBUG', true);
然后将其替换成:
if ( isset($_GET['debug']) && $_GET['debug'] == 'debug')
define('WP_DEBUG', true);
然后增加一个GET参数到你要访问的页面的url链接,如下:
http://www.catswhocode.com/blog/about?debug=debug
另外,如果默认未开启的话,也可以直接在wp-config.php中把上述那句话的false改成true,然后进入后台就会有各种提示,调试完成以后又可以改回false. 这种方法比较简单方便。
当然,以安全起见,你应该把debug替换成一个随机词,这样就没有人会访问到你调试模式下的网页了。
7.在主题文件中使用WordPress简码
创建WordPress简码非常简单,可以让你在文章或网页里面添加RSS订阅、Google地图、相册等内容。那是否可以在主题文件中输出简码呢?答案是肯定的。WordPress有个内置函数,叫做do_shortcodes(),只需要为其加上一个参数,就可以显示你想要的简码。
do_shortcode('[简码名称]');
上面的“[简码名称]”就是我们想要显示的简码了,你可以修改为别的名称。
8.允许上传更多的文件类型
在Wordpress中,一般来说,如果你要上传一个不是那么常见类型的文件,往往会出现错误。因为WP会禁止你上传其它的文件类型。幸运的是,你可以增加新的文件类型到你的WordPress白名单,方法也很简单,只要把下面这段代码粘贴到functions.php中就大功告成了。
注意:文件类型名字必须用“|”线隔开
function addUploadMimes($mimes) {
$mimes = array_merge($mimes, array( 'tmbundle|tmCommand|tmDragCommand|tmSnippet|tmLanguage|tmPreferences' => 'application/octet-stream'
));
return $mimes;
}
add_filter('upload_mimes', 'addUploadMimes');
9.简码调用Google Docs的PDF阅读器
Google Docs(谷歌文档)是一个非常方便的在线阅读.pdf/.doc/.xsl文件的方式。如果你也想在你的博客中和你的读者分享一个PDF文件,何不尝试在Google Docs打开而不是强制下载呢?方法十分简单,只要加入如下代码到functions.php即可。
function pdflink($attr, $content) {
return '<A href="http://docs.google.com/viewer?url=' . $attr['href'] . '">'.$content.'</A>';
}
add_shortcode('pdf', 'pdflink');
保存文件后,你可以把这段代码放到对应的文章或网页中, 语法如下:
【pdf href=”http://yoursite.com/linktoyour/file.pdf”】查看PDF文件【/pdf】
使用时须将其中的【 】改为[ ]。
10.检测访问者的浏览器
这段代码所做的事情很简单,就是检测访问者的浏览器名字并把它加到body_class()函数中,这样一来,你就可以极其轻松地解决浏览器兼容的问题。将这段代码放到functions.php中。
add_filter('body_class','browser_body_class');
function browser_body_class($classes) {
global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;
if($is_lynx) $classes[] = 'lynx';
elseif($is_gecko) $classes[] = 'gecko';
elseif($is_opera) $classes[] = 'opera';
elseif($is_NS4) $classes[] = 'ns4';
elseif($is_safari) $classes[] = 'safari';
elseif($is_chrome) $classes[] = 'chrome';
elseif($is_IE) $classes[] = 'ie';
else $classes[] = 'unknown';
if($is_iphone) $classes[] = 'iphone';
return $classes;
}
这段函数输出的结果类似如下:
<body class=”home blog logged-in safari”>
参考文章:10个最新的WordPress技巧