Mysql в wordpress

167
24 марта 2018, 14:22

Подскажите, пожалуйста, как вывести базу данных на свой сайт. Создав при этом таблицу на страничке и заполнив данные таблицы, данными с бд.

Answer 1

Если вы хотите вывести информацию из типовых таблиц Wordpress, то можно воспользоваться встроенными классами, такими как WP_Query, WP_Term_Query, WP_Comment_Query. Например так:

$query = new WP_Query([
    'post_type' => 'post', 
    'post_status' => 'publish', 
    'posts_per_page' => 10
]);

Далее необходимо пройти стандартным циклом Wordpress.

if ( $query->have_posts() ) {
    $table = '<table>';
    while ( $query->have_posts() ) {
        $query->the_post();
        $title = get_the_title();
        $date  = get_the_time('d.m.Y');
        $table .= <<<ROW
<tr>
    <td>{$title}</td>
    <td>{$date}</td>
</tr>
ROW;
    }
    // Обязательно сбросить после цикла, 
    // чтобы не повлиять на глобальную переменную $wp_query!
    wp_reset_postdata();
    $table .= '</table>';
    echo $table;
}

Либо прибегнуть к помощи класса wpdb, обязательно чз глобальную переменную $wpdb, например так:

global $wpdb;
// Если параметры запроса приходят от пользователя, нужно сделать так
$sql = $wpdb->prepare("
    SELECT post_title, post_date 
    FROM {$wpdb->posts}
    WHERE post_type = %1$s AND posts_status = %2$s
    ", [ $_REQUEST['post_type'], $_REQUEST['post_status'] ]
);
// Получаем результаты в виде ассоциативного массива (или еще как-то)
$items = $wpdb->get_results( $sql, ARRAY_A );

Дальше можно воспользоваться циклом foreach:

if ( $items ) {
    $table = '<table>';
    foreach ( $items as $item ) {
        $title = $item['post_title'];
        $date  = date_create( $item['post_date'] )->format('d.m.Y');
        $table .= <<<ROW
<tr>
    <td>{$title}</td>
    <td>{$date}</td>
</tr>
ROW;           
    }
    $table .= '</table>';
    echo $table;
}

Методы класса wpdb позволяют выполнить любой запрос к базе данных.

Подробнее смотрите в документации: WP_Query, wpdb

READ ALSO
#1241 Operand should contain 1 column(s)

#1241 Operand should contain 1 column(s)

ЗдравствуйтеПодскажите, пожалуйста, как правильно сделать запрос? Делаю

221
SQL выбрать число из диапазона двух дат

SQL выбрать число из диапазона двух дат

Как можно выбрать число из диапазона двух дат DDMM? Если, к примеру, столбец from будет 21

186
Как обновить определенные ячейки в mysql?

Как обновить определенные ячейки в mysql?

Есть таблица в mysql, в ней первая колонка 'auto-increment'Следующая - ссылка на youtube канал

161
sql запросы на добавление товара в WooCommerce

sql запросы на добавление товара в WooCommerce

Народ привет!Подскажите какие sql запросы использует WooCommerce для полного добавления одного товара(с картинкой)Или есть ли способ отследить...

186