WordPress3.0最新技巧

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技巧

WordPress3.0最新技巧》上有1条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注