當(dāng)前位置:首頁>WordPress建站>WordPress開發(fā)>介紹50個(gè) WordPress 動(dòng)作掛鉤(41-50)

介紹50個(gè) WordPress 動(dòng)作掛鉤(41-50)

如果你一直在更隨我們學(xué)習(xí)這個(gè)系列,那你應(yīng)該知道我們正在介紹 WordPress 的50個(gè)動(dòng)作掛鉤。如果你是剛加入我們,建議你先看下之前的文章,然后跟著繼續(xù)學(xué)習(xí)更多。

那樣的話可以讓你跟上我們現(xiàn)在的進(jìn)度。

讓我們開始吧!

在插件管理頁面插入<head>標(biāo)簽

通過admin_head-(plugin_page)動(dòng)作可以在指定的插件頁面插入代碼到<head>標(biāo)簽中。

向你的插件管理頁面添加樣式

如果你想要添加一些CSS樣式到你的插件選項(xiàng)頁面中,下面的代碼將會(huì)幫助到你:

<?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: http://codex.wordpress.org/Plugin_API/Action_Reference/admin_head-(plugin_page)
 
?>

在你的CSS中修改注釋掉的代碼,把動(dòng)作名稱(tools_page_mypluin/mypluin)的第二部分替換為你自己的插件名稱,最后就能實(shí)現(xiàn)想要的效果。

在Pings觸發(fā)之前操作它

“Pings”是WordPress最古老的特色之一,pre_ping這個(gè)動(dòng)作可以讓我們?cè)趐ings觸發(fā)之前操作它。

禁止Pings自己

WordPress在執(zhí)行pings時(shí),無法區(qū)分內(nèi)部鏈接和外部鏈接。利用下面簡(jiǎn)短的代碼,你可以禁止對(duì)自己執(zhí)行pings:

<?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在執(zhí)行pings時(shí),無法區(qū)分內(nèi)部鏈接和外部鏈接。利用下面簡(jiǎn)短的代碼,你可以禁止對(duì)自己執(zhí)行pings:

使用get_header()函數(shù)

get_header動(dòng)作會(huì)在模板調(diào)用get_header()函數(shù)時(shí)被觸發(fā),利用好這個(gè)函數(shù)可以修改WordPress前端的頭部(header)。

激活一個(gè)簡(jiǎn)單的維護(hù)模式

如果你很忙沒有時(shí)間安裝一個(gè)“維護(hù)模式”插件并設(shè)置它的選項(xiàng),可以簡(jiǎn)單地使用下面的代碼給除了管理員以外的用戶顯示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’的權(quán)限,網(wǎng)站會(huì)對(duì)管理員以外的用戶關(guān)閉。

修改登錄頁面的<head>標(biāo)簽

login_head這個(gè)動(dòng)作可以幫我們控制登錄頁面的<head>標(biāo)簽

移除有錯(cuò)誤驗(yàn)證時(shí)的晃動(dòng)效果

如果你不喜歡在用戶提交錯(cuò)誤的登錄信息時(shí)的“晃動(dòng)”效果,你可以使用下面的代碼移除它:

<?php
 
add_action( 'login_head', 'login_head_example' );
function login_head_example() {
    remove_action( 'login_head', 'wp_shake_js', 12 );
}
 
// Example Source: https://wordpress.org/support/topic/plugin-simplemodal-login-remove-shake-effect
 
?>

雖然我喜歡這樣的效果。

利用儀表盤的底部

在某些情況下,我們想要控制我們管理面板的底部——而不是每一個(gè)頁面的底部,但是在</body>標(biāo)簽之前。admin_footer動(dòng)作就是做這個(gè)的。

為文章狀態(tài)添加樣式

保持統(tǒng)一的顏色風(fēng)格是WordPress的管理面板美觀的一個(gè)原因,但是我認(rèn)為使用顏色代碼來使不同狀態(tài)的文章有不同的顏色,這樣的做法不會(huì)影響美觀。

如果你喜歡我的這種做法,并且想要通過顏色來區(qū)分草稿、已發(fā)布文章、或其他狀態(tài)的文章,那么就可以使用下面的代碼:

<?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向前臺(tái)添加一些東西,并且我們可以使用admin_enqueue_scripts向后臺(tái)添加?xùn)|西。那么登陸頁呢?你是不是已經(jīng)猜到了:這次是login_enqueue_scripts 這個(gè)鉤子!

修改登錄表單上面的Logo

我喜歡WordPress的Logo,但我不認(rèn)為每次用戶登錄到網(wǎng)站都應(yīng)該這么顯示。如果你的想法跟我一樣,那么你可以利用下面這段很有用的代碼把WordPress的Logo替換成自己想要的圖片。

<?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這個(gè)文件放到你的主題中的/images/目錄里就可以了!

在用戶列表中添加自定義列

你知道用戶列表是在管理面板中的“所有用戶”頁面中嗎?manage_users_custom_column這個(gè)動(dòng)作允許我們?cè)趯?duì)應(yīng)的過濾器的幫助下添加新的自定義列。

在一列中顯示用戶的注冊(cè)日期

假設(shè)你需要看到你的用戶的注冊(cè)日期。你可通過查詢數(shù)據(jù)庫來獲得該信息,或者你也可以使用這段代碼在用戶列表中添加一個(gè)擴(kuò)展的列來顯示:

<?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)在你可以知道你的用戶更多的信息了。

利用插件激活機(jī)制

當(dāng)需要知道一個(gè)插件是否已經(jīng)在WordPress中被激活時(shí)你會(huì)怎么做?你可以使用activated_plugin這個(gè)鉤子:這個(gè)動(dòng)作會(huì)在插件激活時(shí)觸發(fā)。

當(dāng)有插件被激活時(shí)就給管理員發(fā)送一封郵件

假設(shè)你有很多客戶網(wǎng)站(使用你的郵件地址安裝的),并且你需要在客戶安裝并激活來一個(gè)新的插件時(shí)通知到你。

你可以使用下面這個(gè)函數(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,\n\nThe following plugin has just been activated:\n\n$plugin\n\nCheers!";
     
    wp_mail( $to, $subject, $body );
}
 
?>

操作管理界面配色方案選項(xiàng)

從WordPress的3.0版本開始,對(duì)管理面板有了“配色方案”這個(gè)功能,并且允許我們編輯,添加或者刪除配色方案。admin_color_scheme_picker 為用戶改變配色方案提供了可能。

移除“管理界面配色方案”選項(xiàng)

如果你想禁止用戶更改管理界面配色方案的話(這么說吧,因?yàn)槟阌幸粋€(gè)特殊的配色方案并且不希望你的用戶把這個(gè)改回到默認(rèn)的狀態(tài)),那么使用下面的代碼就可以移除這個(gè)選項(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/
 
?>

嘿,我們剛剛從一個(gè)動(dòng)作鉤子中移除了一個(gè)相同名字的函數(shù)。我知道,這個(gè)有點(diǎn)奇怪。

操作登出進(jìn)程

用戶會(huì)做登錄,登出操作,當(dāng)他們登出賬號(hào)時(shí),wp_logout動(dòng)作就會(huì)被調(diào)用。

當(dāng)用戶登出后重定向到首頁

從一個(gè)WordPress網(wǎng)站登出是有點(diǎn)奇怪:你會(huì)被重定向到登錄頁面,WordPress需要你重新登錄。這里有個(gè)方案可以改變這種情況并且讓用戶登出后重定向到首頁:

<?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)在每次用戶退出后,他們將會(huì)看到首頁而不是登錄表單。

小結(jié)

我們剛剛結(jié)束了50個(gè)動(dòng)作的最后一批,我們希望你喜歡并從中學(xué)習(xí)到了新的知識(shí),我們將會(huì)有個(gè)快速回顧來看一下我們介紹過的內(nèi)容并結(jié)束這個(gè)系列。

同時(shí),我也想要聽到你的想法。關(guān)于你對(duì)這些動(dòng)作的想法?請(qǐng)?jiān)谙旅婊靥H绻阆矚g這篇文章,不要忘記分享它!

原文出自:http://code.tutsplus.com/tutorials/fifty-actions-of-wordpress-50-examples-41-to-50–cms-21582

由 surenpi.com@wordpress大學(xué) 原創(chuàng)翻譯,未經(jīng)允許,禁止轉(zhuǎn)載和采用本譯文。

您已閱讀完《50個(gè) WordPress 動(dòng)作掛鉤(共7篇)》專題的第 6 篇。請(qǐng)繼續(xù)閱讀該專題下面的文章:

聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關(guān)注WordPress大學(xué)公眾號(hào) WPDAXUE
WordPress開發(fā)

介紹50個(gè) WordPress 動(dòng)作掛鉤(31-40)

2016-1-17 10:15:43

WordPress開發(fā)

介紹50個(gè) WordPress 動(dòng)作掛鉤(總結(jié))

2016-1-17 10:35:34

0 條回復(fù) A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個(gè)人中心
購(gòu)物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

舞阳县| 荆州市| 仁寿县| 富源县| 阿图什市| 枞阳县| 星子县| 祁连县| 雷州市| 肇庆市| 衡南县| 康马县| 稷山县| 加查县| 抚松县| 江油市| 吴旗县| 岳普湖县| 咸宁市| 西城区| 长阳| 探索| 印江| 屏边| 湖北省| 通许县| 嘉兴市| 建德市| 山东省| 泰兴市| 高邑县| 扎囊县| 方山县| 顺昌县| 张北县| 吴桥县| 疏勒县| 涟源市| 东阳市| 通江县| 赣州市|