8 个实用的 WordPress优化代码

来自:互联网
时间:2018-08-28
阅读:

增强或修改网站功能最常见的作法是安装 WordPress 插件,然而功能也可以直接被加入主题中。事实上,大多数 WordPress 主题包含 functions .php函数文件可以用作直接修改或者添加 WordPress 某些现有的功能。

这里提供八个实用代码段、可以精简你的主题。

1. 清空你的回收站

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

WordPress 每隔三十天会自动清理你的回收桶,将以下代码加入你的 wp-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.slmwp.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. 将页面从 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 后方的数字改為你想自订的最少字元数。(编按:不确定中文有没有问题。)

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;
}
返回顶部
顶部