17 個 WordPress Functions.php 文件黑客

已發表: 2017-05-28

在所有 WordPress 核心文件中,很少有像functions.php一樣通用的。 如果您知道如何與之交互,則該文件將使您能夠通過幾行代碼將各種功能添加到您的站點。

在本文中,我們將告訴您有關 WordPress 函數文件的所有信息,以及如何充分利用它。 我們將討論它的作用、為什麼要使用它以及何時不使用。 此外,我們將向您介紹 17 種有用的文件技巧,無需安裝插件即可擴展您網站的功能。

讓我們在路上看到這個節目!

WordPress 函數文件簡介

functions.php文件是 WordPress 的核心文件之一。 換句話說,它有助於為整個平台提供動力,並且它支持您網站上的許多功能。

子主題的functions.php 文件。

您還可以使用functions.php文件作為一種臨時方式來為您的網站實施新功能,例如將新小部件添加到您的儀表板或為您的安裝自定義圖像大小。 對於簡單或臨時功能,它是 WordPress 插件的完美替代品。

還值得注意的是,有一個“父” functions.php文件會影響您的整個站點,但每個主題都有自己的子版本(很像您的style.css文件)。 這有效地使您能夠僅針對特定主題實施功能,而不會在全球範圍內影響您的站點。

WordPress Functions.php 文件的 17 個文件黑客

正如我們之前提到的,每個主題都有自己的functions.php文件。 如果您要對自己的主題進行大量修改,最好的做法是設置一個子主題,這樣您的更改就不會在更新過程中消失。 您還需要在進行任何更改之前備份您的站點,以防萬一出現問題並且您需要回滾您的更改。

接下來,您需要使用 FTP(文件傳輸協議)客戶端(例如 FileZilla)訪問您的functions.php文件,以導航到wp-content/themes/目錄。 在裡面,你會為你的每個主題找到一個文件夾,所有這些都應該有自己的functions.php文件:

Divi 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-&gt;is_search = false;
$query-&gt;query_vars[s] = false;
$query-&gt;query[s] = false;
// to error
if ( $error == true )
$query-&gt;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 提供