Плагин WordPress - вывод таблицы для списков URL-адресов страниц

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

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

Я хочу создать таблицу только с двумя заголовками (ссылка и заголовок), а затем иметь список URL-адресов под заголовками.

В данный момент я изо всех сил пытаюсь получить результат запроса для правильного отображения в таблице. Я получаю следующее:

Снимок экрана существующей таблицы

Итак, как вы можете видеть, он повторяет как заголовки таблицы, так и URL-адреса.

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

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

$pages = get_pages( 'post_status=publish' );
foreach ( $pages as $page )
{
    $pagetitle = $page->post_title;
    $pagelink = get_permalink( $page->ID );
    echo "<table style='width:50%'>";
    echo "<tr>";
    echo "<th align='left'>Link</th>";
    echo "<th align='left'>Title</th>";
    echo "</tr>";
    echo "<tr>";
    echo "<td align='left'>{$pagelink}</td>";
    echo "\n";
    echo "<td align='left'>{$pagetitle}</td>";
    echo "</tr>";
    echo "</table>";
}

Надеюсь, это имеет смысл, и вы понимаете, что я пытаюсь сделать! Я знаю, что этот код, вероятно, не самый лучший, но все это требует обучения!

Заранее благодарны за Вашу помощь.


person A.J. Armstrong    schedule 08.03.2019    source источник
comment
Мне кажется, что у вас должны быть теги table и первые tr ВНЕ цикла foreach..   -  person Stevish    schedule 09.03.2019


Ответы (1)


$pages = get_pages( 'post_status=publish' );
echo "<table style='width:50%'>";
echo "<tr>";
echo "<th align='left'>Link</th>";
echo "<th align='left'>Title</th>";
echo "</tr>";

foreach ( $pages as $page ) {
    $pagetitle = $page->post_title;
    $pagelink = get_permalink( $page->ID );
    echo "<tr>";
        echo "<td align='left'>{$pagelink}</td>";
    echo "\n";
        echo "<td align='left'>{$pagetitle}</td>";
    echo "</tr>";
}
echo "</table>";

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

person Stevish    schedule 08.03.2019
comment
Было бы еще лучше заменить эхо на прямой html. - person Dan; 09.03.2019
comment
Идеальный! Выглядит так просто, когда вы видите, как это работает, не знаю, как я это пропустил! Спасибо за помощь! - person A.J. Armstrong; 09.03.2019
comment
Без проблем. Я согласен с @DanielFoust, что без эха было бы лучше. Просто используйте ?>, чтобы закрыть теги php, добавьте несколько строк HTML и снова откройте php с помощью <?php. - person Stevish; 09.03.2019