首頁  >  文章  >  CMS教程  >  WordPress 的五十個動作 - 示範 50 個範例(從 41 到 50)

WordPress 的五十個動作 - 示範 50 個範例(從 41 到 50)

WBOY
WBOY原創
2023-09-03 17:25:071331瀏覽

WordPress 的五十个动作 - 演示 50 个示例(从 41 到 50)

#如果您一直在關注我們這個系列,那麼您就會知道我們正處於查看 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 之前對其進行處理

「Ping」是 WordPress 最古老的功能之一,而 pre_ping 操作可讓我們在處理 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn