WordPress delete_option(); 通配符功能?

Mic*_*und 4 php wordpress wildcard prefix

如何删除以特定前缀开头的WordPress数据库中的所有选项名称?

我假设我们需要指定一个前缀,获取以该前缀开头的所有选项,然后删除找到的每个选项.

以下是用于获取和删除数据库中的选项的前缀和WP函数的示例.

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

资源:

小智 8

您可以运行此查询:

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

或者把它放在这样的函数中:

function delete_options_prefixed( $prefix ) {
    global $wpdb;
    $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '{$prefix}%'" );
}
delete_options_prefixed( 'cpt_' );
Run Code Online (Sandbox Code Playgroud)