8个实用的WordPress代码(Code Snippets)

网络上仍有一些 WordPress 网站尚未做任何修改。增强或修改网站功能最常见的作法是安装 WordPress 插件,然而功能也可以直接被加入主题文件中。事实上,大多数 WordPress 主题包含 functions 文件可以修改 WordPress 某些现有的功能。

源代码片段()是一小段的代码,可以直接加入到你的主题文件中。有时候它们包含了完整功能,其他时候它们可以用来修改一些现有功能。

在这篇文章里,我想告诉你八个实用且能增强 WordPress 功能的源代码片段。我已在预设的主题 Twenty Fourteen 测试过所有的源代码,皆能正常运作,请注意,如果你的主题已经过大量修改(特别当它是一个框架),有些功能可能就无法正常使用。

1. 清空你的回收站

为了安全起见,WordPress 会保存所有你删除的文章、页面和评论;除非你进入回收站功能,将它们永久删除。回收站的运作方式类似于 Windows 里的文件删除回收站。

WordPress 每隔三十天会自动清理你的回收站,将以下代码加入你的 -config.php 文件可以调整时间间隔(这个文件位于你的 WordPress 根目录):

define ('EMPTY_TRASH_DAYS', 7);

如果你想进一步优化你的数据库,避免将不要的项目储存在数据库里,你可以通过以下的代码来停用回收站功能,一样是加入 wp-config.php 文件:

define ('EMPTY_TRASH_DAYS', 0);

来源

 

2. 减少文章修订版本

WordPress 文章修订版本功能(Revision)会在用户每次储存文章和页面草稿时自动产生一个版本。这个功能对于来说很重要,因为它可以随时返回到先前的草稿,即便是你在编辑时发生任何错误。

不幸的是,WordPress 预设的文章版本并没有总量限制,过多的草稿将会占用你数据库许多空间。这也意味着当长篇大论被储存一百次时,也会占用数据库表一百行的空间。

为了解决这个问题,你可以将以下代码加入 wp-config.php 来减少文章修订版本的数量,给它一个合理的数量:

define( 'WP_POST_REVISIONS', 3 );

如果你希望完全停用文章修订版本功能,只需要将以下代码加入 wp-config.php 文件:

define( 'WP_POST_REVISIONS', false );

来源

此外,WordPress 会每 60 秒自动储存你的文章和页面,通过以下代码可以修改自动储存的时间间隔,一样是把它加入你的 wp-config.php 文件:

define( 'AUTOSAVE_INTERVAL', 160 ); // 秒数

 

3. 迁移你的 WP-Content 目录

wp-content 目录包含你的主题、插件和上传的图片。某些插件,例如缓存插件,也会使用 wp-content 目录来储存资料。

于是,wp-content 目录时常成为黑客下手的目标,特别是插入恶意代码至你的主题。你可以将 wp-content 目录迁移到其他地方,使它更难以被找到。

如果你想要简单地将 wp-content 目录移动到其他路径,你可以将以下代码加入你的 wp-config.php 文件:

* 注意:wp-content 目录结尾没有斜线。

define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/newlocation/wp-content' );

如果你愿意,你也可以使用 URL 来定义新的路径:

define( 'WP_CONTENT_URL', 'http://www.yourwebsite.com/newlocation/wp-content' );

WordPress 也允许你重新命名你的 wp-content 目录:

define ('WP_CONTENT_FOLDERNAME', 'newfoldername');

重新命名你的 wp-content 目录可以使 WordPress 网站更加安全,但很不幸的是并非 100% 可行,因为很多 WordPress 插件开发者已将 “wp-content” 路径写死在插件的代码里。如果安全是首要目标,那还是值得一试的,但必须知道有些插件的代码可能必须要手动更新(而且必须在每次更新插件时重新做一次)。

来源

 

4. 将作者页面链接重定向「关于」页面

作者页面链接会列出该作者曾经写过的所有文章,并显示于同一个页面里。有时候作者的「关于我」也会一并显示于页面顶部。

如果你运行的是个人博客,那么无须使用作者页面来显示和分类或文章归档页面相同的内容。更好的作法是直接把作者页面链接重定向到你的「关于」页面。

你可以将以下代码加入主题的 functions.php 文件:

add_filter( 'author_link', 'my_author_link' );
function my_author_link() {
return home_url( 'about' );
}

来源

 

5. 当搜索结果只有一篇文章时自动连到文章

每当执行搜索时,WordPress 会列出所有与搜索关键字相关的文章和页面列表。用户可以选择他们想阅读的内容。

如果搜索结果只有一个,那搜索结果页面是多余的。干脆直接把读者重新导向到这篇文章。

你可以将以下代码加入主题的 functions.php 文件:

add_action('template_redirect', 'redirect_single_post');
function redirect_single_post() {
 if (is_search()) {
 global $wp_query;
 if ($wp_query->post_count == 1 && $wp_query->max_num_pages == 1) {
 wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
 exit;
 }
 }
}

来源

 

6. 将单页(page)从 WordPress 搜索结果排除

典型的博客可能有数百篇甚至是数千篇的文章,但只有少数几个页面。这些单页往往是你网站的重要内容,例如关于页面或是联系页面;总会显示于侧边栏或是网页底部。因此,在搜索结果里可以排除单页,因为这可能不是读者想要搜索的内容。

将页面从搜索结果移除也是对访客隐藏私人页面的方法。举例来说,你的邮件订阅页面或你的电子书下载页面。

将以下代码加入主题的 functions.php 文件,搜索结果就只会显示文章:

function filter_search($query) {
 if ($query->is_search) {
 $query->set('post_type', 'post');
 }
 return $query;
}
add_filter('pre_get_posts', 'filter_search');

 

7. 从你的评论表单中移除网址栏

我最近提到如何减少 WordPress 垃圾留言。这里提供另外一个技巧,你可以用它来减少人工垃圾评论:移除评论框中的网址栏。这么做将可以大幅降低博客收到品质很低的评论。

要移除评论中的网址栏,你必须做的是将以下代码加入主题的 functions.php 文件:

function remove_comment_fields($fields) {
 unset($fields['url']);
 return $fields;
}
add_filter('comment_form_default_fields','remove_comment_fields');

来源

 

8. 为评论内容设定最少字数限制

另一个恼人的事情是有些评论者会留下简短、毫无意义的回复。例如 “谢谢”、”好文”和”真棒!”之类的内容,这些内容对于讨论并没有帮助。如果你不希望从你的评论表单移除网址栏位,你也许可以为评论内容设定最少字数限制。

你可以通过将以下代码加入主题的 functions.php 文件来实现这项功能。请务必将 $minimalCommentLength 后方的数字改为你想自定义的最少字符数。(ps:不确定中文有没有问题。)

add_filter( 'preprocess_comment', 'minimal_comment_length' );
function minimal_comment_length( $commentdata ) {
 $minimalCommentLength = 20;
 if ( strlen( trim( $commentdata['comment_content'] ) ) < $minimalCommentLength ){
 wp_die( '所有留言必须大于 ' . $minimalCommentLength . ' 个字符长度。' );
 }
 return $commentdata;
}

来源

我希望你会喜欢这 8 个实用的 WordPress 源代码片段。如果喜欢,我也建议你订阅我们的博客最新文章。

本文参考资料来自: Eight Useful Code Snippets for WordPress