#如果您一直在關注我們這個系列,那麼您就會知道我們正處於查看 WordPress 的 50 個操作的最後衝刺階段。對於那些剛加入我們的人,我強烈建議您查看上一篇文章(因為本文從上次停止的地方繼續)以及之前每一篇文章鏈接的文章。
這將使您了解我們現在的進展。
我們開始吧!
外掛程式也有需求:它們可能需要用於自己的選項頁面的頁內腳本或樣式。使用 admin_head-(plugin_page)
操作,可以將內容注入到特定外掛頁面的 標籤中。
如果您需要在外掛程式的選項頁面添加一些 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 */' . '</style>'; } // Example Source: https://codex.wordpress.org/Plugin_API/Action_Reference/admin_head-(plugin_page) ?>
用您的CSS程式碼更改註解掉的行,用您自己的外掛程式取代操作名稱的第二部分(tools_page_myplugin/myplugin
),然後就可以開始了!
「Ping」是 WordPress 最古老的功能之一,而 pre_ping
操作可讓我們在處理 ping 之前對其進行處理。
在 ping 方面,WordPress 不區分內部連結和外部連結。要停用自我 ping,您可以使用這個方便的小程式碼片段:
<?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/ ?>
從現在開始,您的 WordPress 安裝將不會 ping 自己的貼文。
get_header()
函數當範本呼叫 get_header()
函數時,會呼叫 get_header
操作,非常適合修改 WordPress 前端標頭的函式。
如果您很著急,沒有時間安裝「維護模式」外掛程式並設定其選項,您可以簡單地使用下面的程式碼,並向管理員以外的所有人發出wp_die()
錯誤:
<?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/ ?>
由於只有管理員(和超級管理員)才有'activate_plugins'
能力,因此網站將對管理員以外的所有人關閉。
login_head
操作幫助我們控制登入頁面上的 標籤。
如果您不喜歡使用者提交錯誤登入資訊時出現的「搖晃」效果,可以使用以下功能將其刪除:
<?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 ?>
不過我喜歡這個效果。
有時,我們可能想要控制管理面板的頁腳 - 不是頁腳部分本身,而是 標記之前的部分。
admin_footer
操作正是這樣做的。
擁有一組一致的顏色是使 WordPress 管理面板美觀的原因之一,但我認為對於需要在視覺上分隔的內容(例如不同的帖子狀態)進行某些顏色編碼沒有任何害處。
如果您像我一樣並且希望能夠區分已發布的帖子與草稿或其他帖子狀態,請使用以下程式碼:
<?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; } </style>'; } // Example Source: http://wpsnipp.com/index.php/functions-php/change-admin-postpage-color-by-status-draft-pending-published-future-private/ ?>
我們可以使用 wp_enqueue_scripts
將內容排隊到前端,也可以使用 admin_enqueue_scripts
將內容排隊到後端。那麼登入頁面呢?你猜對了:這次 login_enqueue_scripts
是我們的鉤子!
我喜歡 WordPress 標誌,但我不認為每次使用者登入我的網站時都應該顯示它。如果您也有相同的想法,您可以使用下面這個有用的程式碼片段將 WordPress 標誌替換為您自己的標誌:
<?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;' . '}' . '</style>'; } // Example Source: http://wpsnippy.com/add-custom-login-logo-in-your-wordpress-blog/ ?>
將 login-logo.png
檔案放入主題的 /images/
資料夾中,就可以了!
您知道管理面板「所有使用者」頁面中的使用者清單嗎? manage_users_custom_column
操作允許我們使用隨附的篩選器為該清單新增新的自訂列。
假設您需要大量查看會員的註冊日期。您可以在每次需要該資訊時檢查資料庫記錄,也可以使用此程式碼片段為使用者清單新增額外的欄位:
<?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/ ?>
現在您對您的會員有了更多了解。
當您需要檢查 WordPress 中的外掛程式是否已啟用時,您該怎麼辦?好吧,您使用 activated_plugin
掛鉤:這個方便的小操作在插件啟動時觸發。
假设您有很多客户网站(使用您的电子邮件地址安装),并且当客户在其网站上安装并激活新插件时,您需要收到通知。
只需使用此函数并将其挂接到 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,\n\nThe following plugin has just been activated:\n\n$plugin\n\nCheers!"; wp_mail( $to, $subject, $body ); } ?>
自 WordPress 3.0 起,我们的管理面板有了“配色方案”,并且我们可以编辑、添加或删除配色方案。 admin_color_scheme_picker
操作使用户可以更改颜色方案。
这个例子不需要太多介绍:如果您需要剥夺用户更改配色方案的权利(例如,因为您有一个特殊的配色方案并且您不希望用户将其更改回来)为默认值),使用下面的代码片段删除该选项:
<?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/ ?>
嘿,我们刚刚从同名的动作挂钩中删除了一个函数。我知道,这很奇怪。
用户登录、用户注销,当他们注销时,将调用 wp_logout
操作。
从 WordPress 网站注销有点奇怪:您会被重定向到登录页面,就像 WordPress 需要您再次登录一样。以下是解决该问题并将用户注销时重定向到主页的方法:
<?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/ ?>
现在,每次用户注销时,他们都会看到主页而不是登录表单。
我们刚刚完成了本文中的最后一批 50 个操作。我希望你喜欢它并从中学到新东西。在下一篇文章中,我们将快速浏览一下我们所看到的内容并结束该系列。
我也想听听你的想法。您对这些行动有何看法?在下面发表您的评论。如果您喜欢这篇文章,别忘了分享!
以上是WordPress 的五十個動作 - 示範 50 個範例(從 41 到 50)的詳細內容。更多資訊請關注PHP中文網其他相關文章!