Пользовательский SQL запрос для страницы WordPress

3 мая 2013 г., 17:08:48
Просмотры: 47.8K
Голосов: 7

Я новичок в WordPress. Пытаюсь создать табличное представление на странице WordPress. Для этого мне нужен пользовательский SQL запрос к моей базе данных MySQL.

  1. Запросить данные из моей базы данных MySQL
  2. Каким-то образом получить результат в HTML формате для отображения в виде таблицы на странице WordPress.

Мой вопрос: Как я могу использовать класс wpdb на странице WordPress, если нет возможности вставлять PHP код прямо в страницу?

6
Комментарии

Используйте класс wpdb для пользовательских запросов в WordPress. Также вы можете попробовать класс WP_Query.

RRikesh RRikesh
3 мая 2013 г. 17:12:12

Пожалуйста, отредактируйте свой вопрос и объясните, что именно вы пытаетесь сделать. Указание на то, что вы хотите вывести данные из MySQL на страницу WordPress, слишком расплывчато для получения полезной помощи.

Pat J Pat J
3 мая 2013 г. 17:18:20

Ожидается, что вы изучили проблему и попытались решить её самостоятельно перед тем, как задать вопрос. Ознакомьтесь со страницей Кодекса о shortcodes для начала. Этот вопрос довольно обширный и выглядит как несколько вопросов в одном. См. также: как задать хороший вопрос

s_ha_dum s_ha_dum
3 мая 2013 г. 17:19:50

Я отредактировал свой вопрос и знаю, что wpdb_class каким-то образом является ответом, но куда мне нужно поместить php-код, необходимый для использования wpdb_class. Поскольку я предполагаю, что его нужно разместить где-то вне страницы WordPress, мне нужно как-то передать результаты с этого места на страницу WordPress.

user32354 user32354
3 мая 2013 г. 17:28:19

Вы можете либо написать плагин для WordPress, либо вставить свой код в файл functions.php вашей темы. Разрешение добавлять PHP-код напрямую в редактор WP — это, мягко говоря, кошмар с точки зрения безопасности.

Pat J Pat J
3 мая 2013 г. 17:41:35

@Pat J: Допустим, я создал свой плагин так, как это описано. Как теперь отобразить результат запроса этого плагина на странице WordPress?

user32354 user32354
3 мая 2013 г. 18:43:16
Показать остальные 1 комментариев
Все ответы на вопрос 2
0
11

Объект wpdb может использоваться для выполнения произвольных запросов к базе данных WordPress. Допустим, вы хотите вывести список 4 последних записей:

$results = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE `post_type`='post' LIMIT 4" );

Переменная $wpdb->posts выводит название таблицы с записями. Обычно это wp_posts, но если используется пользовательский префикс базы данных, название может отличаться.

Однако, если вам нужно получить данные записей (или пользовательских типов записей, метаданных, информации о пользователях и т.д. — всего, что встроено в WordPress), лучше использовать WP_Query.

Вот тот же запрос, переписанный с использованием WP_Query:

$query = new WP_Query(
    array(
        'post_type'      => 'post', // Тип записи
        'posts_per_page' => 4       // Количество записей на странице
    )
);

Преимущество использования WP_Query в том, что он автоматически соединяется с таблицей метаданных записей и возвращает массив объектов WP_Post, с которыми можно работать и перебирать в цикле.

3 мая 2013 г. 18:08:39
2
<?php 
global $wpdb;
$post_id = $wpdb->get_results("SELECT post_id FROM $wpdb->postmeta WHERE (meta_key = 'mfn-post-link1' AND meta_value = '". $from ."')");
    print_r($post_id); /
?>

Объявляем глобальную переменную $wpdb, затем выполняем пользовательский запрос и передаем в $wpdb->get_results();

9 нояб. 2020 г. 12:26:03
Комментарии

Пожалуйста, [отредактируйте] ваш ответ и добавьте объяснение: почему это может решить проблему?

fuxia fuxia
9 нояб. 2020 г. 15:38:44

С этим запросом вы можете использовать его в любом месте WordPress для получения данных в WordPress

Gurpreet Singh Gurpreet Singh
10 нояб. 2020 г. 08:11:19