2011-12-20 2 views
2

Как можно удалить все имена опций в базе данных WordPress, начиная с определенного префикса?WordPress delete_option(); Возможность подстановочных знаков?

Я бы предположил, что нам нужно указать префикс, получить все параметры, начинающиеся с этого префикса, а затем удалить каждый найденный параметр.

Вот пример префикса и функций WP для получения и удаления параметров в базе данных.

<?php 
$prefix = 'cpt_'; 
$getOpt = get_option($prefix); 
foreach($getOpt as $toDelete){ 
    $deleteOpt = delete_option($prefix); 
    if(!$deleteOpt){ 
     echo 'Failure.'; 
    } 
    if($deleteOpt){ 
     echo 'Success.'; 
    } 
} 
?> 

Ресурсы:

ответ

1

Вам нужно сделать "белый список" всех переменных ваших наборов плагинов (я предполагаю, что вы смотрите на скрипт для удаления плагинов), а затем просто пропустите его на другом конце, чтобы вы могли удалить их все.

Что-то же просто, как:

// Somewhere in your plugin, maybe as a class property 
$pluginDefinedOptions = array('my_name', 'my_created', 'my_modified'); // etc 

// Clear up our settings 
foreach($pluginDefinedOptions as $optionName) { 
    delete_option($optionName); 
} 

Это единственный способ сохранить ваш код плагина аккуратным.

5

Вы можете запустить этот запрос:

global $wpdb; 
$wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE 'cpt_%'"); 

или положить его в функцию следующим образом:

function delete_options_prefixed($prefix) { 
    global $wpdb; 
    $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '{$prefix}%'"); 
} 
delete_options_prefixed('cpt_'); 
Смежные вопросы