Что не так с этой функцией? Попытка запустить код только при активации темы - PullRequest
0 голосов
/ 06 августа 2010

Предполагается, что приведенная ниже функция срабатывает при активации темы, которой она принадлежит.Однако, чтобы заставить его фактически создавать категории внутри условного, мне нужно (1) активировать тему, (2) активировать любую другую тему (3) снова активировать тему

Что дает, этодолжен обработать при первом включении.

// with activate make sure utility categories are created and parented correctly
if ( is_admin() && isset($_GET['activated'] ) && $pagenow == 'themes.php' ) {

    if (file_exists(ABSPATH.'/wp-admin/includes/taxonomy.php'))
    {
        require_once(ABSPATH.'/wp-admin/includes/taxonomy.php');    

        wp_create_category('nofollow');
        $myCategory1['cat_ID'] = get_cat_id('nofollow');
        $myCategory1['category_parent'] = 1;
        wp_update_category($myCategory1);

        wp_create_category('noindex');
        $myCategory2['cat_ID'] = get_cat_id('noindex');
        $myCategory2['category_parent'] = 1;
        wp_update_category($myCategory2);

    }
}

1 Ответ

1 голос
/ 07 августа 2010

Я ответил на этот вопрос в вашем другом вопросе, а затем увидел это здесь.Надеемся, что тот же ответ применим и работает с вашей загадкой повторной активации.Попробуйте использовать этот хук вместо вашего запроса $ _GET, и, возможно, вам нужно сделать этот плагин вместо того, чтобы помещать его в файл functions.php, чтобы он запускался при активации темы.Предыдущий ответ следующий:

Вы захотите использовать ловушку действия.В частности, «switch_theme».Это страница кодекса для всех хуков действий , я не могу связать конкретно с switch_theme, но прокрутите вниз, и вы найдете его.Конкретной информации об этом хуке нет, но использование простое.Вы можете включить вашу функцию в functions.php или в файл плагина, и после определения функции, включите this hook :

function add_my_categories($my-theme-name){
        //if $my-theme-name == 'my_theme_name
            //test if category exists
            //if exists, update
            //if doesn't exist, create and assign parent
    }
add_action('switch_theme','add_my_categories');

, вызов add_action () запуститименованная функция, когда именованный хук встречается в WordPress.Хук 'switch_theme' запускается после изменения темы.

Важно знать, что этот хук предоставит имя новой текущей темы вашей функции, которая может принять его в качестве аргумента, если вам это нужно.Например, чтобы убедиться, что функция запускается, только если ваша тема активирована.Я полагаю, если эта функция находится в файле functions.php вашей темы, она НИКОГДА не запустится, если ваша тема не активирована, поэтому вы можете определить, нужно ли вам дважды проверять имя темы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...