创建 WordPress 主题时只需要使用两个文件:index.php 文件(充当网站的主模板文件)和 style。 CSS 文件,这是您网站的主要样式文件。还有第三个文件,名为 functions.php,它实际上不是必需的,但在主题中仍然发挥着重要作用。
在本教程中,我们的重点将是了解 functions.php 文件是什么、它的一些常见用途以及何时应该使用它而不是创建插件。让我们开始吧。
functions.php 文件是什么?
WordPress 中的functions.php 文件用于向您的 WordPress 网站添加新功能或特性。您可以在此文件中编写 PHP 代码。此代码可以定义您自己的自定义函数或调用现有的 WordPress 函数。我们将在下一节中了解如何通过 functions.php 文件向您的 WordPress 网站添加新功能。
一个 WordPress 安装完全有可能有多个主题。每个主题都有自己的 functions.php 文件。但是,当有人加载您的网站时,只有活动主题的 functions.php 文件中的代码才会真正运行。
您需要先找到 functions.php 文件,然后才能对其进行编辑。您可以在 /wp-content/themes/theme-name/ 目录中找到它。这里,主题名称是您已安装并激活的任何主题的名称。
您在网站上安装的任何子主题也可以有自己的 functions.php 文件。与其他主题不同,子主题的 functions.php 文件不会覆盖父主题的 functions.php 文件。它实际上会添加父主题提供的功能。
functions.php 文件的使用
您可以使用 functions.php 文件执行很多操作。我们将在这里了解其中一些内容。
排队脚本和样式
您可能希望在网站中包含其他脚本和样式以加载到前端。实现此目的的最佳方法是借助 wp_enqueue_scripts
挂钩。与它的名字相反,这个钩子对于将脚本和样式排入队列非常有用。以下是在 functions.php 文件中使用它的示例。
function monty_scripts_styles() { wp_enqueue_style( 'my-style', get_template_directory_uri() . '/css/custom-style.css', array(), '1.2.0', 'all' ); wp_enqueue_script( 'my-script', get_template_directory_uri() . '/js/custom-script.js', array( 'jquery' ), '1.5.6', true ); } add_action( 'wp_enqueue_scripts', 'monty_scripts_styles' );
使用 wp_enqueue_scripts
挂钩添加样式和脚本可确保文件不会多次加载等,从而提高性能。您可以阅读本教程,了解如何以正确的方式将 CSS 加载到 WordPress 中,以了解更多信息。
wp_enqueue_style()
和 wp_enqueue_script()
函数接受多个参数来指定源、版本、依赖项等。
创建自定义短代码
WordPress 短代码可帮助人们向其网站添加动态或静态内容,而无需编写复杂的代码。想想诸如最新帖子列表、图库中的一些图像、当前日期或简单的问候之类的内容。
您可以在 functions.php 文件中编写一些代码来添加自定义短代码。
function monty_greeting_shortcode() { $current_user = wp_get_current_user(); if($current_user) { $name = $current_user->display_name; } else { $name = 'Guest'; } $greeting = 'Hello, '.$name.'!'; return $greeting; } add_shortcode( 'greet_readers', 'monty_greeting_shortcode' );
这是一个非常简单的示例,您可以在前端的任何位置使用 greet_readers
短代码为登录用户添加问候语 Hello, Display Name! 和 Hello, Guest! 对于其他人。
现在尝试编写您自己的短代码来返回您想要显示的内容。
删除 WordPress 版本号
出于多种原因,您可能有兴趣检查您网站的 WordPress 版本。
但是,此信息不应公开可见。 WordPress 添加了一个生成器元标记,该标记可在 HTML 源代码中公开显示您网站上当前安装的 WordPress 版本。您只需将以下行添加到 functions.php 文件即可删除生成器标记。
add_action( 'wp_head', 'wp_generator');
如果您还想从其他地方(例如 RSS 提要)删除信息,可以考虑使用以下行。
add_filter('the_generator', '__return_empty_string');
内置的 __return_empty_string()
函数将返回一个空字符串,并阻止您的版本信息显示在前端。
禁用 WordPress 管理工具栏
默认情况下,WordPress 在前端顶部为所有登录用户添加了一个管理工具栏。您可以在 functions.php 文件中添加以下行,以立即对所有人禁用它。
add_filter( 'show_admin_bar', '__return_false' );
请记住,无法在后端禁用 WordPress 管理工具栏。
禁用 WordPress 自动更新
虽然通常不建议您在网站上禁用 WordPress 自动更新,但您可能出于多种原因想要这样做,例如防止意外故障。您应该阅读本教程以了解有关 WordPress 自动更新的更多信息。
如果您确定要禁用 WordPress 自动更新,请将以下行添加到您的 functions.php 文件中。
add_filter('auto_update_core', '__return_false'); add_filter('auto_update_theme', '__return_false'); add_filter('auto_update_plugin', '__return_false');
这三行将分别禁用核心更新、主题更新和插件更新。
最终想法
在本教程中,我们学习了很多有关 functions.php 文件的知识。我们现在知道这个文件是什么、它位于哪里,以及如何使用它向我们的网站添加新功能。还可以使用插件向您的网站添加功能。那么最好的方法是什么?
如果您要添加的功能是特定于主题的,或者您只想添加一点点新功能,则应该考虑使用 functions.php 文件。为每件小事创建和安装新插件都会损害您网站的性能。