在本教程中,我们将深入研究WordPress函数文件。我们将讨论它的工作原理以及您可以在哪里找到它。最后,我们将向您展示一些可以对functions.php文件进行的有趣的调整。
要参与WordPress开发,您首先需要了解平台最重要的文件是如何工作的。WordPress可以很容易地开始修改您的网站。然而,可能很难知道从哪里开始——或预测您的更改实际上会做什么。
一个完美的学习场所是functions.php文件,它也被称为functions文件。这是进行更改和向WordPress添加代码的常见位置。通过编辑此文件,您可以完成一些有用的事情,例如将Google Analytics统计代码添加到您的站点、创建自定义菜单或显示文章的估计阅读时间。
什么是functions.php文件?
WordPress的functions.php文件包含在所有免费和付费WordPress主题中。对于未受过训练的人来说,它可能看起来不多,但函数文件是一个强大的工具,可以让您做很多有趣的事情。
在WordPress Codex这样描述的功能文件:
您可以使用它来调用函数,包括PHP和内置WordPress,并定义您自己的函数。您可以通过向WordPress插件或通过WordPress主题功能文件添加代码来产生相同的结果。
简单来说,函数文件使您能够向站点添加自定义代码。它允许您以自定义方式创建新函数或引用现有函数。正如Codex指出的那样,这使得函数文件非常类似于插件,但两者之间存在一些差异。
最重要的区别是函数文件属于特定主题。如果您要更改主题或更新到更新版本,您所做的更改将会消失。出于这个原因,您应该考虑创建一个子主题并将新代码添加到子主题的函数文件中。这样,您可以在不丢失更改的情况下更新父主题。
是选择使用函数文件还是创建插件完全取决于您,具体取决于您的需要。现在让我们看看编辑函数文件的不同方式。
如何编辑函数文件
编辑函数文件就像使用标准文本编辑器(如 TextEdit 或记事本)一样简单。在开始之前,创建站点的备份并保存原始的、未经编辑的functions.php文件非常重要。这将使您能够在编辑过程中出现问题时恢复您的站点。
1. 使用WordPress编辑器
如果您有权访问 WordPress 管理界面,则可以直接从主题编辑器编辑功能文件。转到外观 > 主题编辑器。
在屏幕的右侧,您可以看到主题中包含的所有文件的列表。这些因您使用的主题而异,但最重要的选项之一应该是Theme Functions (functions.php)。只需单击该文件即可在编辑器中打开它。
现在,您可以直接编辑文件。完成后,不要忘记单击底部的更新文件以保存更改。
2.通过FTP访问文件
如果您无法使用管理仪表板或更喜欢直接配置文件,您还可以使用FileZilla等FTP工具访问功能文件。
打开您的FTP工具并输入服务器账号信息以连接到您的站点。要找到正确的文件,请导航到wp-content/themes/[the name of your theme]。当您打开此文件夹时,您将看到functions.php文件。
您现在要做的就是使用您喜欢的文本编辑软件对其进行编辑。完成更改后,使用完全相同的名称和扩展名保存并覆盖函数文件。
使用WordPress函数文件的一些小Case
您现在应该可以开始编辑您的函数文件了。为了让您开始,以下是您可以进行的各种调整的一些示例。您需要做的就是复制提供的代码片段并将它们粘贴到函数文件最底部的新行上(不要忘记保存它!)。
1. 将Google Analytics添加到您的网站
有多种方法可以将Google Analytics与您的WordPress网站集成。其中之一是将您的凭据直接添加到函数文件中。这会将分析跟踪插入您网站的标题中,确保正确捕获每次访问。
首先将以下代码粘贴到函数文件的底部:
add_action(‘wp_head’, ‘wpb_add_googleanalytics’);
function wpb_add_googleanalytics() { ?>
// Replace this line with your Google Analytics Tracking ID
<?php } ?>
<?php add_action('wp_head', 'wpb_add_googleanalytics'); function wpb_add_googleanalytics() { ?> // Replace this line with your Google Analytics Tracking ID <?php } ?>
您现在要做的就是找到您的跟踪ID并将其粘贴到包含占位符文本的行中。当您保存函数文件时,您的站点将连接到您的Google Analytics帐户。
2. 更改默认登录错误信息
默认情况下,当有人尝试登录WordPress网站失败时,他们会看到如下错误消息:
这并不理想,因为该站点正在向潜在入侵者提供有关尝试失败的原因的信息。更安全的解决方案是将其更改为通用消息。
您可以通过将以下代码添加到您的函数文件中轻松完成此操作:
return ‘Something went wrong!’;
}
add_filter( ‘login_errors’, ‘no_wordpress_errors’ );
function no_wordpress_errors(){ return 'Something went wrong!'; } add_filter( 'login_errors', 'no_wordpress_errors' );
看到“Something went wrong!” 第二行的消息?这是下次发生错误登录尝试时将出现的消息:
只要保留单引号字符,您就可以将其更改为您想要的任何内容。尝试使用不同的消息,看看它是如何工作的。
3. 添加文章的预计阅读时间
这个巧妙的技巧使您能够计算和显示阅读帖子所需的估计时间。然后,您的访问者可以立即大致了解内容的时长。
要实现此代码,您需要进行两次单独的编辑。第一个像往常一样对函数文件完成,您需要在其中粘贴以下代码段:
$content = get_post_field( ‘post_content’, $post->ID );
$word_count = str_word_count( strip_tags( $content ) );
$readingtime = ceil($word_count / 200);
if ($readingtime == 1) {
$timer = ” minute”;
} else {
$timer = ” minutes”;
}
$totalreadingtime = $readingtime . $timer;
return $totalreadingtime;
}
function reading_time() { $content = get_post_field( 'post_content', $post->ID ); $word_count = str_word_count( strip_tags( $content ) ); $readingtime = ceil($word_count / 200); if ($readingtime == 1) { $timer = " minute"; } else { $timer = " minutes"; } $totalreadingtime = $readingtime . $timer; return $totalreadingtime; }
但是,这仅执行计算。您现在需要在想要显示结果的任何位置添加以下代码:
echo reading_time();
例如,您可以将其添加到每个文章旁边显示的元数据中。每个主题的构造都不同,但在二〇一七主题中,它位于template-parts > post > content.php 中。
预计阅读时间现在将出现在每个文章的标题中,并与日期一起显示。
4.删除WordPress版本号
旧版本的WordPress可能包含恶意黑客和机器人可以利用的安全漏洞。避免这种风险的一种方法是隐藏您的网站使用的 WordPress 版本。这被称为通过默默无闻的安全。
在我们继续之前,重要的是要注意,默默无闻不应该是您唯一的安全措施。这更像是为您已经安全的WordPress堡垒添加一个额外的堡垒。
隐藏您的版本号只需要您将以下非常简单的代码片段添加到函数文件中:
remove_action('wp_head', 'wp_generator');
现在将从您网站的所有区域中删除版本号,包括其代码和您的RSS提要。
5. 自动更新您的版权声明
更新版权声明中的年份是很容易忘记的小任务之一。你可以跟上的一种方法是使用这个技巧,它会根据你第一篇文章的发表年份自动生成版权日期。
将以下代码粘贴到您的函数文件中:
global $wpdb;
$copyright_dates = $wpdb->get_results(”
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = ‘publish’
“);
$output = ”;
if($copyright_dates) {
$copyright = “© ” . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= ‘-‘ . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}
function wpb_copyright() { global $wpdb; $copyright_dates = $wpdb->get_results(" SELECT YEAR(min(post_date_gmt)) AS firstdate, YEAR(max(post_date_gmt)) AS lastdate FROM $wpdb->posts WHERE post_status = 'publish' "); $output = ''; if($copyright_dates) { $copyright = "© " . $copyright_dates[0]->firstdate; if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) { $copyright .= '-' . $copyright_dates[0]->lastdate; } $output = $copyright; } return $output; }
然后在要显示版权信息的任何位置添加以下代码: