1. 程式人生 > >wordpress 外掛 建站

wordpress 外掛 建站

外掛頭資訊

/*

Plugin Name: xl_test_plugins

Description: 我學習外掛的測試外掛

Version: 1.0

Author: 小柳

*/

-----------------------------------------------------------------

//設定時區

date_default_timezone_set('Asia/Shanghai');

-----------------------------------------------------------------

一些常用的鉤子

init  

wp_head

wp_enqueue_scripts

wp_footer

save_post  儲存文章

wp_trash_post  文章被放入回收站

delete_post  文章被刪除

wp_insert_comment 插入評論時候

user_register

remove_action() 移除動作

remove_all_action() 移除所有動作

-----------------------------------------------------------------

// 定義外掛啟動時的方法

register_activation_hook( __FILE__, 'xl_sayhello');

function xl_sayhello(){

update_option( "xl_sayhello", "hello everyone" );

}

//定義外掛停用時候呼叫的方法

register_deactivation_hook( __FILE__, 'xl_saygoodbye');

function xl_saygoodbye(){

update_option("xl_saygoodbye","goodbye");

}

-----------------------------------------------------------------

uninstall.php  外掛刪除時候,刪掉建立的資料

// 如果 uninstall 不是從 WordPress 呼叫,則退出
if( !defined( 'WP_UNINSTALL_PLUGIN' ) )
exit();

//刪除外掛建立的專案,以確保不佔用資料庫資源
delete_option( 'xl_sayhello' );
delete_option( 'xl_saygoodbye' );

-----------------------------------------------------------------

//儲存文章的時候,更新文章的修改時間

add_action( 'save_post', 'save_post_meta', 10, 2 );

function save_post_meta( $post_id, $post ) {
    
    update_post_meta( $post_id, "save-time", "更新時間:" . date("Y-m-d H:i:s") );
    
}

//在輸出內容之前,給頁面管理新增摘要功能

add_action( 'init', 'hc_add_excerpts_to_pages' );

function hc_add_excerpts_to_pages() {

    //給頁面管理新增摘要的功能

    add_post_type_support( 'page', array( 'excerpt' ) );

}

//wp_head鉤子

add_action('wp_head','hc_wp_head');

function hc_wp_head() {

    //只有首頁輸出描述

    if( is_home() ){ ?>

    <meta name="description" content="<? bloginfo('description'); ?>" />

    <? }

}

//自定義引用樣式表

function hc_enqueue_style() {

    wp_enqueue_style( 'core', plugins_url('css/hc_copyrighy.css', __FILE__) , false );

}

//自定義引用指令碼檔案

function hc_enqueue_script() {

    wp_enqueue_script( 'my-js', plugins_url('js/hc_copyrighy.js', __FILE__), false );

}

//引用檔案的鉤子

add_action( 'wp_enqueue_scripts', 'hc_enqueue_style', 5 );

add_action( 'wp_enqueue_scripts', 'hc_enqueue_script', 7 );

//刪除所有掛載在 wp_enqueue_scripts 鉤子上的方法

remove_all_actions( 'wp_enqueue_scripts', 5 );

//評論被新增的時候觸發

add_action( 'wp_insert_comment', 'comment_inserted', 10, 2 );

//移除 wp_insert_comment 鉤子上的 comment_inserted 方法

remove_action( 'wp_insert_comment', 'comment_inserted', 10 );

function comment_inserted($comment_id, $comment_object ) {

//獲取該評論所在文章的評論總數

$comments_count = wp_count_comments( $comment_object->comment_post_ID );

    $commentarr = array();

    $commentarr['comment_ID'] = $comment_id;

    //修改評論的內容,在評論內容前加上 “第{$comments_count->total_comments}個評論:” 這麼一段字串

    $commentarr['comment_content'] = "第{$comments_count->total_comments}個評論:" . $comment_object->comment_content;

    wp_update_comment( $commentarr );

}

add_action( 'user_register', 'myplugin_registration_save', 10, 1 );

function myplugin_registration_save( $user_id ) {

    //將新使用者的個人說明,設定為註冊時間

    wp_update_user( array( 'ID' => $user_id, 'description' => "註冊時間:" . date("Y-m-d H:i:s") ) );

}

-----------------------------------------------------------------