17 个 WordPress Functions.php 文件黑客
已发表: 2017-05-28在所有 WordPress 核心文件中,很少有像functions.php一样通用的。 如果您知道如何与之交互,则该文件将使您能够通过几行代码将各种功能添加到您的站点。
在本文中,我们将告诉您有关 WordPress 函数文件的所有信息,以及如何充分利用它。 我们将讨论它的作用、为什么要使用它以及何时不使用。 此外,我们将向您介绍 17 种有用的文件技巧,无需安装插件即可扩展您网站的功能。
让我们在路上看到这个节目!
WordPress 函数文件简介
functions.php文件是 WordPress 的核心文件之一。 换句话说,它有助于为整个平台提供动力,并且它支持您网站上的许多功能。

您还可以使用functions.php文件作为一种临时方式来为您的网站实施新功能,例如将新小部件添加到您的仪表板或为您的安装自定义图像大小。 对于简单或临时功能,它是 WordPress 插件的完美替代品。
还值得注意的是,有一个“父” functions.php文件会影响您的整个站点,但每个主题都有自己的子版本(很像您的style.css文件)。 这有效地使您能够仅针对特定主题实施功能,而不会在全球范围内影响您的站点。
WordPress Functions.php 文件的 17 个文件黑客
正如我们之前提到的,每个主题都有自己的functions.php文件。 如果您要对自己的主题进行大量修改,最好的做法是设置一个子主题,这样您的更改就不会在更新过程中消失。 您还需要在进行任何更改之前备份您的站点,以防万一出现问题并且您需要回滚您的更改。
接下来,您需要使用 FTP(文件传输协议)客户端(例如 FileZilla)访问您的functions.php文件,以导航到wp-content/themes/目录。 在里面,你会为你的每个主题找到一个文件夹,所有这些都应该有自己的functions.php文件:

只需右键单击它并选择显示编辑的选项,这将打开您的默认文本编辑器。 既然如此,让我们开始做生意吧!
1. 向 WordPress 添加新的管理员用户
在某些情况下,您的管理员帐户可能会被锁定,并且无法更改密码或访问您的网站。 通过此调整,您将有一种额外的方式通过 FTP 重新获得访问权限。
与所有这些技巧和片段一样,只需复制以下代码,将其粘贴到主题的functions.php文件的末尾,然后保存更改。
function wpb_admin_account(){
$user = 'username';
$pass = 'password';
$email = '[email protected]';
if ( !username_exists( $user ) && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','wpb_admin_account');您需要将用户名、密码和电子邮件中的值替换为您自己的值,一切就绪!
2. 显示注册用户总数
如果您曾经想向全世界吹嘘您的网站有多少用户,这个调整使您能够向前端添加一个简单的计数。 这个 hack 也有不仅仅是吹牛的用途。 例如,如果人们知道您的网站拥有强大的用户群,他们可能更愿意信任您的网站。 这是片段:
function wpb_user_count() {
$usercount = count_users();
$result = $usercount['total_users'];
return $result;
}
add_shortcode('user_count', 'wpb_user_count');这有点高级,因为我们实际上已经注册了[user_count]自定义短代码来显示您网站上的注册用户总数。 虽然这可能是一个复杂的话题,但我们的实现很简单!
3. 删除仪表板的“欢迎面板”
您的欢迎面板是您登录 WordPress 后立即显示的仪表板部分,它通常包含一些提示和清单以帮助您入门。 使用此代码段,您将能够永久删除它:
remove_action('welcome_panel', 'wp_welcome_panel');当然,欢迎面板根本没有侵入性,但是如果您已经使用该平台一段时间并且不再需要提示,它可能会变得有点旧。 另外,因为它只需要一行代码,所以这个 hack 没有任何缺点。
4. 隐藏您的 WordPress 版本号
您可能知道,根据您使用的主题,WordPress 倾向于在您网站的页脚中显示其版本号。 这是一个小细节,您可以使用以下代码轻松删除:
function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');如果您运行的是旧版本的 WordPress(当然,您不应该这样做),这个调整可以派上用场,让您成为一个不那么诱人的目标。
5. 修改您的仪表板页脚
您的 WordPress 仪表板可能在页脚处包含一些文本,通常说明某种信用(通常是 WordPress 本身)。 您可能对此视而不见,但此 hack确实为您提供了一个很好的机会,可以通过简单的 hack 来自定义或标记您的网站。 我们来看看对应的代码:
function remove_footer_admin () {
echo 'Hello world!';
}
add_filter('admin_footer_text', 'remove_footer_admin');对于这个 hack,你应该替换Hello world! 带有您自己的文本,包括您想要包含的任何链接。
6. 向您的仪表板添加一个简单的文本小部件
如果您决定通过删除欢迎小部件来清理仪表板上的一些空间,您可能希望将其替换为您自己的一个。 使用此代码,您将能够设置一个简单的文本小部件:
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
function my_custom_dashboard_widgets() {
global $wp_meta_boxes;
wp_add_dashboard_widget('custom_widget', 'More Information', 'custom_dashboard_information');
}
function custom_dashboard_information() {
echo 'If you need help making changes to your site, you can always contact me via email at...';
}此代码段将向您的仪表板添加一个名为“更多信息”的小部件,包括custom_dashboard_information函数中的文本。 对于此示例,我们选择创建各种联系人小部件,您可以使用它来为客户网站贴上白标签,并在需要时提醒他们保持联系。
7. 为您的安装添加自定义图像尺寸
WordPress 允许您在上传图像后将图像调整为特定尺寸,并默认提供一些预设。 使用此代码,您将能够添加新预设以避免必须设置自定义尺寸:
add_image_size( 'sidebar-thumbnail', 120, 120 );
请记住,您可以根据需要添加任意数量的新尺寸,如果您在整个站点中使用特定分辨率,它们会特别方便。
8. 将特色图片添加到您的 RSS 提要
很多人不知道这一点,但 WordPress 会自动为您的网站生成 RSS 提要。 如果您打算使用自己的,则需要为您的帖子设置特色图片,您可以使用以下代码进行操作:
function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '
' . get_the_post_thumbnail($post->ID) .
'
' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');特色图片可以大大有助于使您的 RSS 提要看起来更具吸引力,这对于依赖点击率的任何类型的内容都至关重要。

9. 从你的 RSS 提要中排除类别
WordPress RSS 提要功能的最大优点之一是它的可定制性。 使用此代码,您将能够从 Feed 中隐藏特定类别,以便您可以选择添加哪些内容:
function exclude_category($query) {
if ( $query->is_feed ) {
$query->set('cat', -2, -3');
}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');请记住,WordPress 根据上面代码中的 ID 号(即-2和-3 )识别类别。 因此,在实施此 hack 之前,您需要确定要删除的类别的 ID。
10.禁用您的RSS提要
虽然它是一个很棒的 WordPress 功能,但如果您对使用 RSS 根本不感兴趣,您可以使用以下代码片段完全禁用它:
function fb_disable_feed() {
wp_die( __('Sorry, we don't use RSS!') );
}
add_action('do_feed', 'fb_disable_feed', 1);
add_action('do_feed_rdf', 'fb_disable_feed', 1);
add_action('do_feed_rss', 'fb_disable_feed', 1);
add_action('do_feed_rss2', 'fb_disable_feed', 1);
add_action('do_feed_atom', 'fb_disable_feed', 1);您会注意到该代码包含一条小消息,供在您禁用 Feed 后尝试访问您的 Feed 的用户使用。 保持活动状态没有坏处,但如果您确定不会使用它,这使您可以完全关闭它并可能节省一两个周期。
11. 隐藏您的 WordPress 登录错误详细信息
过于详细的登录错误会给不受欢迎的人提供帮助他们访问您网站所需的信息。 使用此代码,WordPress 不会指定您在尝试登录时出错的位置:
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );通过使用此 hack,攻击者更难尝试访问您的站点,而真正的用户应该可以轻松找出他们在哪里犯了错误。 全方位双赢!
12.强制用户使用他们的用户名登录
许多人倾向于使用相同的电子邮件注册每项服务,这意味着攻击者可以仅通过知道他们的电子邮件地址来尝试获得访问权限。 使用此代码,您将强制用户仅使用用户名登录:
remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );
公平地说,用户名也往往会被大量重复使用,但这个小小的调整仍然可以帮助提高您的安全性并最大限度地减少攻击。
13.更改帖子摘录的长度
WordPress 博客索引通常会显示您帖子的简短摘录,让读者了解他们的目的。 如果您曾经想更改这些摘录的默认长度,这是一个这样做的机会。
functionnew_excerpt_length($length) {
return 75;
}
add_filter('excerpt_length', 'new_excerpt_length');默认长度为 55,但在上面的代码中,我们将其提高到 75 以给我们更多的回旋余地。
14. 启用 WordPress 上传您想要的任何文件类型
默认情况下,WordPress 只允许您上传非常有限的文件类型,包括常见的媒体格式,例如.png和.jpg。 使用此代码,您将能够强制安装以允许更多类型:
function my_myme_types($mime_types){
$mime_types['svg'] = 'image/svg+xml';
return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);以.svg为例,这是我们过去讨论过的一种文件类型。 使用此代码段,您无需插件即可添加对它的支持。
15.禁用自动图像链接
开箱即用,WordPress 将添加指向您在内容中包含的每个图像的链接,这些图像指向其完整版本。 通过使用此代码,您将禁用此功能:
function wpb_imagelink_setup() {
$image_set = get_option( 'image_default_link_type' );
if ($image_set !== 'none') {
update_option('image_default_link_type', 'none');
}
}
add_action('admin_init', 'wpb_imagelink_setup', 10);但是请记住,您仍然可以通过编辑每个单独的图像来访问此功能 - 所有这一切都是为了防止它自动工作。
16. 添加小部件就绪区域
WordPress 已经包含多个小部件就绪区域供您使用,但您始终可以使用一点functions.php魔法添加新区域。 与我们早期的短代码黑客一样,您在这里开始进入开发人员的领域。 但是,这是一个简单的实现,可以极大地帮助您:
function custom_sidebars() {
$args = array(
'id' => 'custom_sidebar',
'name' => __( 'Custom Widget', 'text_domain' ),
'description' => __( 'A custom widget, 'text_domain' ),
'before_title' => '
<h3 class="widget-title">',
'after_title' => '</h3>
',
'before_widget' => '
<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>
',
);
register_sidebar( $args );
}
add_action( 'widgets_init', 'custom_sidebars' );请记住,此代码仅“注册”您的新小部件区域。 您仍然需要通过编辑它们各自的文件来为特定的主题部分(例如页脚)调用它。
17.禁用WordPress搜索功能
几乎每个网站都需要一个搜索功能来帮助用户找到自己的路。 但是,如果您要构建单页站点,则可能不需要它。 这是使您能够在关闭时关闭的代码:
function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
// to error
if ( $error == true )
$query->is_404 = true;
}
}
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );在禁用此功能之前,您需要 100% 确定您不需要它,因为它会严重影响您网站的可用性。 当然,您可以随时删除代码以恢复您网站上的搜索,但如果您不确定,请谨慎行事,不要将其关闭!
结论
您的functions.php文件是WordPress 工具箱中最强大的资产之一。 它不仅使您能够用几行代码添加各种功能,而且它对您的站点的功能也很重要(看看我们在那里做了什么?)。
如果您是 Divi 用户, functions.php文件可以帮助您向站点添加几个补充功能,而无需设置额外的插件,这总是一个胜利。
您对这些 WordPress 功能文件黑客有任何疑问吗? 如果是这样,请在下面的评论部分提问!
文章缩略图由 MchlSkhrv/shutterstock.com 提供
