$wpdb-> get_results с переменной

#wordpress

#wordpress

Вопрос:

Приведенный ниже код вызывает эту ошибку при сохранении страницы: сбой обновления. Ответ не является допустимым ответом JSON.

если я заменю активный запрос на тот, который закомментирован, процесс даст ожидаемый, хотя и не желаемый результат.

 function jma_ghb_clear_transients_save_post($post_id)
{
    global $wpdb;

    $plugin_options = $wpdb->get_results("SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE '_transient_jma_ghb_component%forpost'{$post_id} OR option_name LIKE '_transient_jma_ghb_component'{$post_id}'%'");

    /*$plugin_options = $wpdb->get_results("SELECT option_name FROM $wpdb->options WHERE option_name LIKE '_transient_jma_ghb_component%'");*/

    foreach ($plugin_options as $option) {
        delete_option($option->option_name);
    }
}
add_action('save_post', 'jma_ghb_clear_transients_save_post');
 

итак, что я делаю не так с {$post_id} ???

Ответ №1:

Ваш код вызывает ошибку, потому что вы помещаете одинарные кавычки в неправильное положение.

Исправьте положение одинарной кавычки на что-то подобное, и ошибка будет исправлена.

 $plugin_options = $wpdb->get_results("SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE '_transient_jma_ghb_component%forpost{$post_id}' OR option_name LIKE '_transient_jma_ghb_component{$post_id}%'");