WordPress/Timber — Ошибка : Аргумент запроса wpdb::prepare() должен содержать заполнитель

#php #sql #wordpress

Вопрос:

Я использую древесину (ВЕТКУ) и WordPress.

Я пытаюсь создать буквенно-цифровой фильтр с первой буквой/номером заголовка сообщения.

A — B — C — D…. [0-9]

Пример результата, когда я выбираю «А» :

  • Анатоль
  • Аррас
  • Артемида

Когда $context['alpha'] равно «num», я получил ошибку :

wpdb::подготовка была вызвана неправильно. Аргумент запроса wpdb::prepare() должен содержать заполнитель.

 $context['alpha'] = 'num';

$postids = [];

if ($context['alpha']) {
    if ($context['alpha'] == "num") {
        $postids = $wpdb->get_col($wpdb->prepare("
            SELECT      ID
            FROM        $wpdb->posts
            WHERE       $wpdb->posts.post_title regexp '^[0-9]'
            AND         $wpdb->posts.post_type = 'exhibitors'
            ORDER BY    $wpdb->posts.post_title"));
    } else {
        $postids = $wpdb->get_col($wpdb->prepare("
            SELECT      ID
            FROM        $wpdb->posts
            WHERE       SUBSTR($wpdb->posts.post_title,1,1) = %s
            AND         $wpdb->posts.post_type = 'exhibitors'
            ORDER BY    $wpdb->posts.post_title",$context['alpha']));
    }
}

$list_exhibitors_complete = Timber::get_posts(array(
    'post__in' => $postids,
    'post_type' => 'exhibitors',
    'post_status' => 'publish',
    'orderby' => 'title',
    'order' => 'ASC',
    'posts_per_page' => -1
));
 

Что случилось, пожалуйста ?