Есть ли способ получить данные из пользовательской таблицы worpress, мой запрос выбирает последний обновленный элемент таблицы - PullRequest
0 голосов
/ 12 января 2019

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

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

Вот мой код:

function externalLinks($atts){
$atts = shortcode_atts( array(
        'class' => ''
), $atts, 'externalLinks');
global $wpdb;
$table_name = "external_links";
$myrows = $wpdb->get_results("SELECT * FROM $table_name");

    foreach ($myrows as $row)
    {
       $name = $row->name;
       $link = $row->link;
       $date = $row->date;
    }

    $html = '<ul>
            <li><a href='.$link.' target="_blank">'.$name.'</a>
            <span class="post-date">'.$date.'</span>
            </li>
            </ul>';
       return $html;

}
add_shortcode('externalLinks', 'externalLinks');

Я ожидаю, что результат будет больше чем один , так как у меня есть пара записей в таблице ...

1 Ответ

0 голосов
/ 12 января 2019

Проблема в том, как вы обрабатываете данные, извлеченные из базы данных.

В вашем цикле foreach вы присваиваете $name, $link и $date значение текущей строки в цикле. К моменту окончания цикла $name, $link и $date имеют все соответствующие значения из последней строки .

Измените свой код на этот, и он будет работать как положено:

function externalLinks($atts){
    $atts = shortcode_atts( array(
            'class' => ''
    ), $atts, 'externalLinks');

    global $wpdb;
    $table_name = "external_links";
    $myrows = $wpdb->get_results("SELECT * FROM $table_name");

    // Opening <ul> tag
    $html = '<ul>';

    foreach ($myrows as $row)
    {
        $name = $row->name;
        $link = $row->link;
        $date = $row->date;

        // Now we're adding the values of this
        // row to the $html variable, ergo to our list

        $html .= '<li>
            <a href='.$link.' target="_blank">'.$name.'</a>
            <span class="post-date">'.$date.'</span>
        </li>';
    }

    // Add the closing </ul> tag
    $html .= '</ul>';

    return $html;

}
add_shortcode('externalLinks', 'externalLinks');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...