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

  • http://codex.wordpress.org/Function_Reference/get_option
  • 플러그인 제거 스크립트), 다른 쪽 끝에서 루프를 돌리면 모두 삭제할 수 있습니다.

    뭔가처럼 간단 :

    // 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_');