Статьи

Использование get_pages для создания кнопок ссылок на страницы верхнего уровня вашего сайта

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

Конечно, вы можете добавить страницы верхнего уровня в свое меню навигации, но в этом уроке я покажу вам, как добавить несколько дополнительных ссылок на эти страницы с помощью функции get_pages() .

Примечание: вам не нужно использовать этот код в заголовке вашего сайта. Если он работает лучше для вас, вы всегда можете добавить его на боковую панель или нижний колонтитул, отредактировав файлы sidebar.php или footer.php вместо header.php .

В этом уроке я собираюсь создать дочернюю тему для темы « двадцать шестнадцать», а затем создать дубликат файла header.php из двадцати шестнадцати в моей дочерней теме, который я отредактирую. Вы никогда не должны редактировать файлы темы, которую вы скачали, так как тогда, когда вы обновите тему, вы потеряете свою работу. В качестве альтернативы, если вы работаете со своей собственной темой, не стесняйтесь добавлять этот код вместо этого.

Чтобы следовать этому уроку, вам понадобится следующее:

  • Разрабатываемая установка WordPress.
  • Редактор кода.
  • Если вы собираетесь сделать то же самое, что и я, и создать ребенка в возрасте двадцати шестнадцати лет, вам понадобится установить тему двадцати шестнадцати.

Итак, начнем.

Начните с создания ребенка двадцати шестнадцати лет (если вы не работаете со своей собственной темой).

Создайте новую папку в вашей папке wp-content/themes/ и дайте ей логическое имя: я называю мои tutsplus-page-link-buttons .

Внутри этой папки создайте новый файл и назовите его style.css . Теперь откройте этот файл и добавьте в него:

01
02
03
04
05
06
07
08
09
10
11
/*
Theme Name: Tuts+ Page Link Buttons
Theme URI: http://.tutsplus.com/tutorials/using-get_pages-to-create-link-buttons-to-your-sites-top-level-pages-creating-the-code—cms-24967
Description: Theme to support tuts+ tutorial on adding buttons to top level pages in your site’s header (part 1).
Author: Rachel McCollin
Author URI: http://rachelmccollin.co.uk/
Template: twentysixteen
Version: 1.0
*/
 
@import url(«../twentysixteen/style.css»);

Измените код выше, чтобы указать, что это ваша тема, а не моя.

Теперь сохраните этот файл и активируйте новую тему на своем сайте.

Поскольку мы будем редактировать файл header.php , нам нужно создать копию этого файла из двадцать шестнадцатой темы дочерней темы. Найдите файл header.php в двадцать шестнадцать и скопируйте (не двигайте!) Его в папку вашей новой темы.

Теперь ваша тема будет иметь два файла: style.css и header.php . WordPress будет автоматически использовать файл header.php из вашей дочерней темы, а не из двадцати шестнадцати, поскольку именно так работают дочерние темы.

Откройте новый файл header.php чтобы вы могли начать его редактирование.

Я собираюсь добавить свои ссылки на страницы верхнего уровня внутри элемента header , непосредственно перед закрывающим </header> . Поэтому найдите эту строку в своей теме и начните добавлять новый код над закрывающим </header> .

Сначала создайте аргументы для get_pages() , набрав следующее:

1
2
3
4
5
$args = array (
    ‘parent’ => 0,
    ‘sort_order’ => ASC,
    ‘sort_column’ => ‘menu_order’
);

Это гарантирует, что get_pages() выбирает только те страницы без родительского элемента ( 'parent' => 0 ) и сортирует страницы в порядке, указанном вами на экранах редактирования страниц. Если вы хотите изменить порядок сортировки, используйте один или несколько аргументов, которые вы можете найти на странице кодекса для get_pages() .

Теперь, ниже ваших аргументов, добавьте это:

1
$pages = get_pages( $args );

Это запустит get_pages() используя аргументы, которые вы указали.

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

Ниже функции get_pages() добавьте это:

1
2
3
if ( $pages ) {
 
}

Затем вы добавите вывод кода в фигурные скобки.

Теперь самое интересное. В только что добавленных скобках введите следующее:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
<ul class=»top-level-page-links»>
 
<?php foreach ( $pages as $page ) { ?>
 
    <li class=»page-link»>
     
        <a href=»<?php echo get_page_link( $page->ID ); ?>»>
            <?php echo $page->post_title;
        </a>
     
    </li>
 
<?
 
</ul>

Это открывает элемент ul , затем внутри него проходит по каждой странице, get_pages() и выводит его заголовок внутри ссылки на него.

Теперь сохраните ваш файл.

Я добавил несколько фиктивных страниц на свой сайт. Как вы можете видеть на скриншоте, есть три страницы верхнего уровня и одна страница второго уровня, которые не должны отображаться в моем заголовке:

WordPress pages admin screen with pages added

А вот как выглядят ссылки на моем сайте:

My sites front page with links to top level pages in a list in the header

Как видите, отображаются только страницы верхнего уровня. Прямо сейчас они выглядят не очень хорошо: они появляются в простом списке с пулями. Итак, в следующем уроке я покажу вам, как оформить их так, чтобы они выглядели как кнопки.

Добавление ссылок на страницы верхнего уровня в заголовке вашего сайта может быть полезным способом привлечения трафика на эти страницы. Вместо того, чтобы жестко кодировать эти ссылки, вы должны использовать get_pages() WordPress get_pages() для автоматизации процесса. Здесь вы узнали, как это сделать, и в следующей части я покажу вам, как добавить стили.