ฉันต้องการเขียนฟังก์ชั่นเพื่อส่ง URL ของเว็บไซต์ให้ฉันเมื่อเปิดใช้งานธีมของฉัน
เบ็ดเริ่มต้นอะไรเมื่อเปิดใช้งานธีม?
ฉันต้องการเขียนฟังก์ชั่นเพื่อส่ง URL ของเว็บไซต์ให้ฉันเมื่อเปิดใช้งานธีมของฉัน
เบ็ดเริ่มต้นอะไรเมื่อเปิดใช้งานธีม?
คำตอบ:
ฉันมีรหัสนั้นที่นี่เพียงแค่ตั้งชื่อไฟล์ theme_activation_hook.php เหมือนบนเว็บไซต์และคัดลอก
<?php
/**
* Provides activation/deactivation hook for wordpress theme.
*
* @author Krishna Kant Sharma (http://www.krishnakantsharma.com)
*
* Usage:
* ----------------------------------------------
* Include this file in your theme code.
* ----------------------------------------------
* function my_theme_activate() {
* // code to execute on theme activation
* }
* wp_register_theme_activation_hook('mytheme', 'my_theme_activate');
*
* function my_theme_deactivate() {
* // code to execute on theme deactivation
* }
* wp_register_theme_deactivation_hook('mytheme', 'my_theme_deactivate');
* ----------------------------------------------
*
*
*/
/**
*
* @desc registers a theme activation hook
* @param string $code : Code of the theme. This can be the base folder of your theme. Eg if your theme is in folder 'mytheme' then code will be 'mytheme'
* @param callback $function : Function to call when theme gets activated.
*/
function wp_register_theme_activation_hook($code, $function) {
$optionKey="theme_is_activated_" . $code;
if(!get_option($optionKey)) {
call_user_func($function);
update_option($optionKey , 1);
}
}
/**
* @desc registers deactivation hook
* @param string $code : Code of the theme. This must match the value you provided in wp_register_theme_activation_hook function as $code
* @param callback $function : Function to call when theme gets deactivated.
*/
function wp_register_theme_deactivation_hook($code, $function) {
// store function in code specific global
$GLOBALS["wp_register_theme_deactivation_hook_function" . $code]=$function;
// create a runtime function which will delete the option set while activation of this theme and will call deactivation function provided in $function
$fn=create_function('$theme', ' call_user_func($GLOBALS["wp_register_theme_deactivation_hook_function' . $code . '"]); delete_option("theme_is_activated_' . $code. '");');
// add above created function to switch_theme action hook. This hook gets called when admin changes the theme.
// Due to wordpress core implementation this hook can only be received by currently active theme (which is going to be deactivated as admin has chosen another one.
// Your theme can perceive this hook as a deactivation hook.
add_action("switch_theme", $fn);
}
ฉันได้เขียนโค้ดที่ให้ตะขอธีมการเปิดใช้งาน / การปิดการใช้งานที่เชื่อถือได้ โปรดตรวจสอบและแจ้งให้เราทราบว่าคุณคิดอย่างไร!
http://www.krishnakantsharma.com/2011/01/activationdeactivation-hook-for-wordpress-theme/
ไม่มีตะขอพิเศษสำหรับสิ่งนี้ ฉันได้เห็นสองแนวทาง:
switch_theme
ขอเกี่ยวกับการตรวจสอบธีมของคุณ - เรียกใช้“ การตั้งค่า” รหัสในการเปิดใช้งานเท่านั้นฉันต้องการทราบว่าการส่งอีเมลข้อมูลด้วยตัวคุณเองโดยไม่ได้รับความยินยอมจากผู้ใช้ (และการดำเนินการใด ๆ เมื่อเปิดใช้งานไม่มีโอกาสขอเช่นนั้น) สามารถดูได้ว่าไม่เหมาะสม
Wordpress after_switch_theme
ในขณะนี้ให้เบ็ดนี้เป็น คุณสามารถใช้มันได้เช่น:
add_action('after_switch_theme', 'my_theme_activation');
function my_theme_activation () {
// DO ALL THE THINGS
}
คุณสามารถใช้switch_theme
hook เพื่อรันโค้ดในการปิดการใช้งานธีมได้เช่นกัน
แหล่งที่มา: http://codex.wordpress.org/Plugin_API/Action_Reference/after_switch_theme
วางรหัสนี้ที่ด้านบนในของคุณ functions.php
<?php if ( is_admin() && isset($_GET['activated'] ) && $pagenow == "themes.php" ) {
// do your stuff
$url = get_site_url();
// The message
$message = "a new wordpress theme is activated on $url ";
// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70, "\r\n");
// Send
wp_mail('mail@yourdomain.com', 'theme geactiveerd', $message);
}
?>
แทนที่mail@yourdomain.com
ด้วยที่อยู่อีเมลของคุณเอง
หวังว่ามันจะช่วย