Intereting Posts
получить плейлист, например get_post_gallery () Как создать предопределенные меню для моей темы? Как я могу исключить динамический URL-адрес, чтобы показать всплывающее окно, созданное с помощью плагина WordPress Popup? Есть ли способ скрыть WordPress за веб-видимым каталогом? Как обрабатывать подачу формы? URL-адрес сетевого администратора отображается всем, прежде чем обращаться к блогу Как удалить категории в меню в пользовательском типе сообщений? Объедините 2 аргумента в одном WP_Query и закажите его по дате Создание страницы категории по алфавиту Пользователь не может видеть запланированное сообщение через URL-адрес? Есть ли более простой способ сделать это? Отражать вложенные категории по внешнему виду> меню Несколько логотипов изображений для темы Очистить ссылку URL для страницы без номера Не удалось войти в новый пользовательский домен на многопользовательском?

Как передать параметры orderby в $ wpdb-> prepare ()?

При передаче значений типа «ASC» или «DESC» для подготовки:

[...] $order = 'DESC'; [... (the whole query)], $order); // (as a prepare param) 

он не работает, потому что полученный запрос от чего-то вроде:

 [...] group_concat(p.id ORDER BY p.post_date %s) 

Будет:

 [...] group_concat(p.id ORDER BY p.post_date 'DESC') 

Хотя это должно быть:

 [...] group_concat(p.id ORDER BY p.post_date DESC) 

Как решить?

Solutions Collecting From Web of "Как передать параметры orderby в $ wpdb-> prepare ()?"

Вам не нужно использовать $wpdb->prepare() для предложений ORDER BY . $wpdb->prepare() всегда будет указывать ваши переменные.

Предположим, что вы получили заказ в запросе, вы можете предотвратить SQL-инъекцию, не используя введенное пользователем значение вообще:

 $sql = "SELECT...."; if ( 'asc' == $_GET['order'] ) { $sql .= ' ORDER BY p.post_date ASC'; } else { $sql .= ' ORDER BY p.post_date DESC'; } $wpdb->prepare( $sql , $value_parameter );