থিম অ্যাক্টিভেট হুক


15

আমার থিমটি সক্রিয় হওয়ার পরে ওয়েবসাইটের ইউআরএল আমাকে ইমেল করতে আমি একটি ফাংশন লিখতে চাই।

থিমটি সক্রিয় হওয়ার পরে কি শুরু করা হুক?


5
এই উদ্দেশ্যে থিম অ্যাক্টিভেশন হুক ব্যবহার করা একেবারেই ভুল : "প্রোগ্রামটি চালানোর স্বাধীনতার অর্থ হ'ল স্বাধীনতা ... এটি ব্যবহার করা ... যে কোনও ধরণের ... উদ্দেশ্যে, এটি সম্পর্কে বিকাশকারীদের সাথে যোগাযোগ করার প্রয়োজন ছাড়াই without বা অন্য কোন নির্দিষ্ট সত্তা । এই স্বাধীনতা, এটা ব্যবহারকারীর উদ্দেশ্য যে বিষয়গুলি, না বিকাশকারীর উদ্দেশ্য ; কোনো ব্যবহারকারী হিসাবে আপনার উদ্দেশ্যে প্রোগ্রাম চালানো বিনা, এবং যদি আপনি এটি কারো না কারো বিতরণ ... তুমি আপনার উদ্দেশ্যে তার উপর চাপিয়ে দেওয়ার অধিকার নেই "
চিপ বেনেট

1
এটি একটি খারাপ ধারণা। প্রথমদিকে নিষ্পাপ প্লাগইন বিকাশকারী হিসাবে, আমি আমার বা আমার ব্যবহারকারীদের জন্য পরিণতির কথা চিন্তা না করে এই জাতীয় কিছু বাস্তবায়ন করেছি। 1. এটি ব্যবহারকারীর গোপনীয়তা লঙ্ঘন করে। ২. যদি আপনার থিমটি ব্যাপকভাবে বিতরণ করা হয় তবে আপনি সম্ভবত পরিচালনা করতে পারেন তার চেয়ে বেশি ইমেল পাবেন। ৩. যদি # 2 সত্য হয় তবে আপনি যেখানে আপনার ইমেলটি হোস্ট করেছেন তার উপর নির্ভর করে আপনার অ্যাকাউন্ট ব্যবহারের শর্ত লঙ্ঘন হিসাবে গণ্য হতে পারে। এই কারণে আমার ইমেল অ্যাকাউন্টটি কিছু সময়ের জন্য বন্ধ হয়ে গিয়েছিল।
ব্রায়ান ফেগটার

@ ব্রায়ানফিগটার একেবারে অর্থবোধ করে। যখন আমি এটি চেষ্টা করছিলাম তখন আমি কেবলমাত্র আমার প্রাথমিক শিক্ষার পর্যায়ে ছিলাম। উদ্বেগ ভাগ করে নেওয়ার জন্য ধন্যবাদ। স্ট্যাকওভারফ্লো এবং স্ট্যাক এক্সচেঞ্জ সম্পর্কে সর্বাধিক সত্যটি হ'ল আপনি যখন বিগত বছরগুলিতে আপনার প্রশ্নগুলির দিকে তাকান, আপনি বুঝতে পারবেন যে আপনি সময়ে সময়ে কতটা বিকাশ করেছেন :-)
আতিফ মোহাম্মদ আমীনউদ্দিন

উত্তর:


13

আমার কাছে সেই কোডটি আছে কেবলমাত্র ওয়েবসাইটে থিম_এক্টিভেশন_হুক.পিপি ফাইলটির নাম দিন এবং এটি অনুলিপি করুন।

<?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);
}

1
এই কোডটির লেখক (কৃষ্ণ কান্ত শর্মা) এর উত্সের লিঙ্ক সহ একটি উত্তরও রেখে গেছেন। হয়তো সময় বেনি এই প্রশ্নের উত্তর, তিনি কেবল সম্পাদন করা শ্রীকৃষ্ণের উত্তর করার জন্য যথেষ্ট কাণ্ডজ্ঞান ছিল না এবং আমার downvote এটি কোড যোগ, অত ...
brasofilo

14

আমি একটি কোড লিখেছি যা একটি নির্ভরযোগ্য অ্যাক্টিভেশন / নিষ্ক্রিয় থিম হুক সরবরাহ করে। দয়া করে এটি পরীক্ষা করে দেখুন এবং আপনারা কী ভাবছেন তা আমাকে জানান!

http://www.krishnakantsharma.com/2011/01/activationdeactivation-hook-for-wordpress-theme/


@ কৃষা কান্ত শর্মা: এই কোডটি আশাব্যঞ্জক বলে মনে হচ্ছে, তবে আপনি কি এটি উত্তরটি অনুলিপি করতে পারেন? তারপরেও এটি উপস্থিত থাকবে যদি আপনার ব্লগটি কখনই অবস্থান পরিবর্তন করে বা কোনও কারণে অফলাইনে চলে যায়।
জান ফ্যাব্রি

1
কৃষ্ণের কোডটি বেনির উত্তরে একটি
ব্রাসোফিলো

8

এটির জন্য কোনও বিশেষায়িত হুক নেই। আমি দু'টি পন্থা দেখেছি:

আমি নোট করতে চাই যে ব্যবহারকারীর সম্মতি ব্যতীত কোনও তথ্য নিজেকে ইমেল করা (এবং অ্যাক্টিভেশনে কোনও কিছু চালানো যেমন অনুরোধ করার কোনও সুযোগ নেই) অনুপযুক্ত হিসাবে দেখা যেতে পারে।


তাই কি? শুধু ইউআরএল যাতে আমি জানতে পারি এটি কোথায় ইনস্টল করা আছে?
আতিফ মোহাম্মদ আমিনউদ্দিন

3

ওয়ার্ডপ্রেস এখন এই হুক হিসাবে সরবরাহ করে after_switch_theme। আপনি এটি এর মতো ব্যবহার করতে পারেন:

add_action('after_switch_theme', 'my_theme_activation');

function my_theme_activation () {
  // DO ALL THE THINGS
}

switch_themeথিম নিষ্ক্রিয়করণে কোড চালানোর জন্য আপনি হুক ব্যবহার করতে পারেন ।

সূত্র: http://codex.wordpress.org/ প্লাগইন_এপিআই / অ্যাকশন_রফারেন্স / পরে_সুইচ_থমে


0

আপনার কোডটি শীর্ষে রাখুন 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আপনার নিজের ইমেল ঠিকানা দিয়ে প্রতিস্থাপন করুন ।

আশা করি এটা সাহায্য করবে.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.