如果您一直在關(guān)注我們這個(gè)系列,那么您就會(huì)知道我們正處于查看 WordPress 的 50 個(gè)操作的最后沖刺階段。對(duì)于那些剛剛加入我們的人,我強(qiáng)烈建議您查看上一篇文章(因?yàn)楸疚膹纳洗瓮V沟牡胤嚼^續(xù))以及之前每一篇文章鏈接的文章。
這將使您了解我們現(xiàn)在的進(jìn)展。
我們開(kāi)始吧!
注入到插件管理頁(yè)面的
插件也有需求:它們可能需要用于自己的選項(xiàng)頁(yè)面的頁(yè)內(nèi)腳本或樣式。使用 admin_head-(plugin_page) 操作,可以將內(nèi)容注入到特定插件頁(yè)面的
標(biāo)記中。
為您的插件管理頁(yè)面添加樣式
如果您需要向插件的選項(xiàng)頁(yè)面添加一些 css 樣式,下面的代碼將幫助您:
<?php add_action( 'admin_head-tools_page_myplugin/myplugin', 'admin_head_plugin_page_example' ); function admin_head_plugin_page_example() { echo '<style type="text/css">' . '/* your style here */' . ''; } // Example Source: https://codex.wordpress.org/Plugin_API/Action_Reference/admin_head-(plugin_page) ?>
用您的CSS代碼更改注釋掉的行,用您自己的插件替換操作名稱的第二部分(tools_page_myplugin/myplugin),然后就可以開(kāi)始了!
在處理 Ping 之前對(duì)其進(jìn)行處理
“Ping”是 WordPress 最古老的功能之一,而 pre_ping 操作可讓我們?cè)谔幚?ping 之前對(duì)其進(jìn)行處理。
禁用自 Ping
在 ping 方面,WordPress 不區(qū)分內(nèi)部鏈接和外部鏈接。要禁用自我 ping,您可以使用這個(gè)方便的小代碼片段:
<?php add_action( 'pre_ping', 'pre_ping_example' ); function pre_ping_example( &$links ) { foreach ( $links as $l => $link ) { if ( 0 === strpos( $link, get_home_url() ) ) { unset( $links[ $l ] ); } } } // Example Source: http://wpdevsnippets.com/remove-slef-pings/ ?>
從現(xiàn)在開(kāi)始,您的 WordPress 安裝將不會(huì) ping 自己的帖子。
使用 get_header() 函數(shù)
當(dāng)模板調(diào)用 get_header() 函數(shù)時(shí),會(huì)調(diào)用 get_header 操作,非常適合修改 WordPress 前端標(biāo)頭的函數(shù)。
激活簡(jiǎn)單維護(hù)模式
如果您很著急,沒(méi)有時(shí)間安裝“維護(hù)模式”插件并設(shè)置其選項(xiàng),您可以簡(jiǎn)單地使用下面的代碼,并向除管理員之外的所有人發(fā)出 wp_die() 錯(cuò)誤:
<?php add_action( 'get_header', 'get_header_example' ); function get_header_example() { if ( ! current_user_can( 'activate_plugins' ) ) { wp_die( 'The website will be back soon.' ); } } // Example Source: http://wp-snippets.com/articles/7-code-snippets-you-should-use-on-every-site/ ?>
由于只有管理員(和超級(jí)管理員)才有’activate_plugins’能力,因此網(wǎng)站將對(duì)除管理員之外的所有人關(guān)閉。
篡改登錄頁(yè)面的
login_head 操作幫助我們控制登錄頁(yè)面上的
標(biāo)簽。
消除不正確憑據(jù)的搖動(dòng)效果
如果您不喜歡用戶提交錯(cuò)誤登錄信息時(shí)出現(xiàn)的“搖晃”效果,可以使用以下功能將其刪除:
<?php add_action( 'login_head', 'login_head_example' ); function login_head_example() { remove_action( 'login_head', 'wp_shake_js', 12 ); } // Example Source: http://wordpress.org/support/topic/plugin-simplemodal-login-remove-shake-effect ?>
不過(guò)我喜歡這個(gè)效果。
使用儀表板的頁(yè)腳
有時(shí),我們可能想要控制管理面板的頁(yè)腳 – 不是頁(yè)腳部分本身,而是 標(biāo)記之前的部分。 admin_footer 操作正是這樣做的。
為帖子狀態(tài)添加快速樣式
擁有一組一致的顏色是使 WordPress 管理面板美觀的原因之一,但我認(rèn)為對(duì)于需要在視覺(jué)上分隔的內(nèi)容(例如不同的帖子狀態(tài))進(jìn)行某些顏色編碼沒(méi)有任何害處。
如果您像我一樣并且希望能夠區(qū)分已發(fā)布的帖子與草稿或其他帖子狀態(tài),請(qǐng)使用以下代碼:
<?php add_action( 'admin_footer', 'admin_footer_example' ); function admin_footer_example() { echo '<style type="text/css"> .status-draft { background-color: #FCE3F2; } .status-pending { background-color: #87C5D6; } .status-future { background-color: #C6EBF5; } .status-private { background-color: #F2D46F; } '; } // Example Source: http://wpsnipp.com/index.php/functions-php/change-admin-postpage-color-by-status-draft-pending-published-future-private/ ?>
在登錄頁(yè)面中排隊(duì)腳本和樣式
我們可以使用 wp_enqueue_scripts 將內(nèi)容排隊(duì)到前端,也可以使用 admin_enqueue_scripts 將內(nèi)容排隊(duì)到后端。那么登錄頁(yè)面呢?你猜對(duì)了:這次 login_enqueue_scripts 是我們的鉤子!
更改登錄表單上方的徽標(biāo)
我喜歡 WordPress 徽標(biāo),但我不認(rèn)為每次用戶登錄我的網(wǎng)站時(shí)都應(yīng)該顯示它。如果您也有同樣的想法,您可以使用下面這個(gè)有用的代碼片段將 WordPress 徽標(biāo)替換為您自己的徽標(biāo):
<?php add_action( 'login_enqueue_scripts', 'login_enqueue_scripts_example' ); function login_enqueue_scripts_example() { echo '<style type="text/css">' . '#login h1 a {' . 'background-image: url(' . get_bloginfo( 'template_directory' ) . '/images/login-logo.png);' . 'padding-bottom: 30px;' . '}' . ''; } // Example Source: http://wpsnippy.com/add-custom-login-logo-in-your-wordpress-blog/ ?>
將 login-logo.png 文件放入主題的 /images/ 文件夾中,就可以了!
將自定義列添加到用戶列表
您知道管理面板“所有用戶”頁(yè)面中的用戶列表嗎? manage_users_custom_column 操作允許我們借助隨附的過(guò)濾器向該列表添加新的自定義列。
在一列中顯示用戶的注冊(cè)日期
假設(shè)您需要批量查看會(huì)員的注冊(cè)日期。您可以在每次需要該信息時(shí)檢查數(shù)據(jù)庫(kù)記錄,也可以使用此代碼片段向用戶列表添加額外的列:
<?php add_action( 'manage_users_custom_column', 'manage_users_custom_column_example', 10, 3 ); add_filter( 'manage_users_columns', 'manage_users_columns_example' ); // create a new column named "Zip Code" function manage_users_columns_example( $columns ) { $columns['user_registered'] = __( 'Registration Date', 'theme-name' ); return $columns; } // fill the column cells with the registration dates function manage_users_custom_column_example( $value, $column_name, $user_id ) { if ( 'user_registered' == $column_name ) { $userdata = get_userdata( $user_id ); return $userdata->user_registered; } } // Example Source (Idea): http://tommcfarlin.com/add-custom-user-meta-during-registration/ ?>
現(xiàn)在您對(duì)您的會(huì)員有了更多了解。
使用插件激活
當(dāng)您需要檢查 WordPress 中的插件是否已激活時(shí),您該怎么辦?好吧,您使用 activated_plugin 掛鉤:這個(gè)方便的小操作在插件激活時(shí)觸發(fā)。
每次激活插件時(shí)向管理員發(fā)送電子郵件
假設(shè)您有很多客戶網(wǎng)站(使用您的電子郵件地址安裝),并且當(dāng)客戶在其網(wǎng)站上安裝并激活新插件時(shí),您需要收到通知。
只需使用此函數(shù)并將其掛接到 activated_plugins 即可:
<?php add_action( 'activated_plugin', 'activated_plugin_example', 10, 2); function activated_plugin_example( $plugin, $network_activation ) { $to = get_option( 'admin_email' ); $subject = 'A plugin has been activated'; $body = "Hey,nnThe following plugin has just been activated:nn$pluginnnCheers!"; wp_mail( $to, $subject, $body ); } ?>
處理配色方案選項(xiàng)
自 WordPress 3.0 起,我們的管理面板有了“配色方案”,并且我們可以編輯、添加或刪除配色方案。 admin_color_scheme_picker 操作使用戶可以更改顏色方案。
刪除更改配色方案的選項(xiàng)
這個(gè)例子不需要太多介紹:如果您需要?jiǎng)儕Z用戶更改配色方案的權(quán)利(例如,因?yàn)槟幸粋€(gè)特殊的配色方案并且您不希望用戶將其更改回來(lái))為默認(rèn)值),使用下面的代碼片段刪除該選項(xiàng):
<?php if( is_admin() ) { remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' ); } // Example Source: http://wpsnipp.com/index.php/functions-php/remove-admin-color-scheme-picker-from-profile/ ?>
嘿,我們剛剛從同名的動(dòng)作掛鉤中刪除了一個(gè)函數(shù)。我知道,這很奇怪。
處理注銷過(guò)程
用戶登錄、用戶注銷,當(dāng)他們注銷時(shí),將調(diào)用 wp_logout 操作。
注銷后將用戶重定向到主頁(yè)
從 WordPress 網(wǎng)站注銷有點(diǎn)奇怪:您會(huì)被重定向到登錄頁(yè)面,就像 WordPress 需要您再次登錄一樣。以下是解決該問(wèn)題并將用戶注銷時(shí)重定向到主頁(yè)的方法:
<?php add_action( 'wp_logout', 'wp_logout_example' ); function wp_logout_example() { wp_redirect( home_url() ); exit(); } // Example Source: http://wpsnippy.com/auto-redirect-users-after-logout/ ?>
現(xiàn)在,每次用戶注銷時(shí),他們都會(huì)看到主頁(yè)而不是登錄表單。
第五部分結(jié)束
我們剛剛完成了本文中的最后一批 50 個(gè)操作。我希望你喜歡它并從中學(xué)到新東西。在下一篇文章中,我們將快速瀏覽一下我們所看到的內(nèi)容并結(jié)束該系列。
我也想聽(tīng)聽(tīng)你的想法。您對(duì)這些行動(dòng)有何看法?在下面發(fā)表您的評(píng)論。如果您喜歡這篇文章,別忘了分享!