Как отобразить данные из пользовательской таблицы в базе данных WordPress?

13 мая 2012 г., 01:32:18
Просмотры: 90.1K
Голосов: 3

Я хочу получить данные из пользовательской таблицы, которую я создал в базе данных WordPress, и отобразить их на странице WordPress, как посты

Заранее спасибо

0
Все ответы на вопрос 4
0

Вот пример кода, который получает данные и затем выводит их:

    global $wpdb;
    // добавляем префикс, который задается пользователем при установке WordPress
    $table_name = $wpdb->prefix . "your_table_name";
    // получаем данные из таблицы
    $retrieve_data = $wpdb->get_results( "SELECT * FROM $table_name" );
?>
<ul>
    foreach ($retrieve_data as $retrieved_data){ ?>
        <li><?php echo $retrieved_data->column_name;?></li>
        <li><?php echo $retrieved_data->another_column_name;?></li>
        <li><?php echo $retrieved_data->as_many_columns_as_you_have;?></li>
    <?php 
        }
    ?>
</ul>
<?php

Рекомендуется использовать уникальные имена для переменных и функций, поэтому вы можете добавить уникальный префикс ко всем вашим переменным или функциям, например: ($prefix_table_name, где "prefix" — это что-то уникальное, например, аббревиатура вашей темы или плагина).

Ссылка - wpdb - codex

9 июн. 2012 г. 03:43:12
1

Попробуйте этот код для отображения всех записей из базы данных в WordPress. Для этого сначала необходимо создать файл.php в выбранной вами папке WordPress, а затем использовать этот файл в качестве шаблона. Этот код будет работать идеально. Спасибо всем.

<?php /* Template Name: ваше название шаблона */ ?>
<?php get_header(); ?>
<table border="1">
    <tr>
     <th>ID</th>
     <th>ПОЛНОЕ ИМЯ</th>
     <th>НАЗВАНИЕ ФИЛИАЛА</th>
     <th>E-MAIL</th>
     <th>Мобильный номер</th>
     <th>Курс</th>
     <th>Адрес</th>
     <th>Город</th>
     <th>Почтовый индекс</th>
    </tr>

      <?php

        global $wpdb;
        $result = $wpdb->get_results( "SELECT * FROM wp_example");
        foreach ( $result as $print )   { ?>
          <tr>
                  <td>  <?php echo $print->id; ?> </td>
                  <td><?php echo $print->firstname; ?> </td>
                  <td> <?php echo $print->branch ; ?> </td>
                  <td> <?php echo $print->email; ?> </td>
                  <td><?php echo $print->mobile; ?> </td>
                  <td> <?php echo $print->course; ?> </td>
                  <td> <?php echo $print->address; ?> </td>
                  <td><?php echo $print->city; ?> </td>
                  <td> <?php echo $print->zip ; ?> </td>
          </tr>
            <?php }
      ?>

</table>
<?php get_header(); ?>
18 янв. 2017 г. 13:43:41
Комментарии

Это не отвечает на вопрос. Пожалуйста, перечитайте его.

kaiser kaiser
18 янв. 2017 г. 14:09:34
0

Похоже, вам нужен $wpdb. Вам придётся писать все свои функции самостоятельно. Я настоятельно рекомендую придерживаться устоявшихся соглашений об именовании (например, the_blah и get_blah, возможно, с префиксом) для удобства чтения и соблюдения единообразия.

13 мая 2012 г. 02:04:57
2

Модификация ответа @Kirill Fuchs. Если вы используете этот код в шорткоде, это может создать проблему. Вывод может отображаться в неправильном порядке. Чтобы избежать этого, я использовал return вместо echo. Попробуйте сделать это в шорткоде следующим образом:

add_shortcode('custom_db', function(){
global $wpdb;
$table_name = $wpdb->prefix . 'liveshoutbox';
// это получит данные из вашей таблицы
$retrieve_data = $wpdb->get_results( "SELECT * FROM $table_name" );
foreach ($retrieve_data as $retrieved_data){ 
    $f_name = $retrieved_data->column_name;
    $f_text = $retrieved_data->another_column_name;
}
    $output = '<div class="wrap">
                    <h2>Таблица клиентов.</h2>
                    <table>
                      <tr>
                        <th>Имя</th>
                        <th>Фамилия</th>
                        <th>Email</th>
                      </tr> 
                      <tr>
                        <td>'. $f_name .'</td>
                        <td>'. $f_text .'</td>
                      </tr>
                    </table>            
                </div>';
    return $output;
} );
3 мая 2018 г. 21:26:18
Комментарии

Вы также можете использовать буферизацию вывода для сбора HTML перед возвратом. Используйте ob_start(); в начале и return ob_get_clean(); в конце.

Bikash Waiba Bikash Waiba
4 мая 2018 г. 08:59:28

Нет необходимости писать много строк в одинарных кавычках.

Bikash Waiba Bikash Waiba
4 мая 2018 г. 09:00:29