Тема Дня »

Обновил тему WordPress на этом блоге. Старый вариант Arthemii меня устраивал во всем, кроме моральной древности. Функциональность тем значительно увеличилась с 2008 года.
Проблема замены состояла в том, что старая тема на моём блоке постоянно допиливалась в ручную, и перенести все созданное в новую тему было практически невозможно. Но пришлось чем-то жертвовать.
Новая Arthemia была скачена, максимально отстроена и установлена.

Читать полностью »
Партнерский интернет-магазин

Создание, оптимизация и продвижение интернет-магазина.

Создать форум

Как создать “с нуля” и сделать популярным форум. Полезно, интересно и подробно о phpbb3.

WordPress

Рекомендации по настройке и оптимизации WordPress. Плагины, темы, шаблоны.

Дайджест блогосферы

Каждую неделю публикую подборку из пяти наиболее интересных статей.

Конкурсы

Статьи, написанные для участия в различных блоггерских конкурсах.

Главная » Страницы в WordPress

Внутренняя перелинковка постоянных страниц WordPress.

Добавлено на 24.12.2012 – 6:26 пп6 Комментарии

перелинковка страниц WordPress

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

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

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

Постоянные страницы WordPress.

На многих блогах постоянные страницы создаются только для рассказа о себе, размещения контактов или целей. Я работаю с ними больше. Например, на образовательном сайте сделал с их помощью каталог ВУЗов по городам.

иерархия страниц сайта

Страница 1 (ВУЗы) является родительской по отношению к страницам 2 (Москва, Санкт-Петербург). Страница 2 (Москва) является дочерней по отношению к странице 1 (ВУЗы) и родительской по отношению к страницам 3 (МГУ, МИИТ, МФТИ). Страница 3 (МГУ) является дочерней странице 2 (Москва).

До изменений перелинковка осуществлялась за счет навигационного меню “хлебные крошки”.

перелинковка постоянных страниц

Моя задача сделать перелинковку дочерних страниц 3 “звёздочкой” (на рисунке синие пунктирные стрелочки).

Перелинковка дочерних страниц WordPress “звёздочкой”.

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

<?php
$parentID= $post->post_parent; // return the ID of the parent post
if($parentID){  //$parentID =$ancs[0];
$siblings=wp_list_pages('depth=1&exclude=' . $postID .
                        '&echo=0&child_of=' . $parentID . '&title_li=');
if ($siblings) {
echo('<h3>'. get_the_title($parentID) .' ВУЗы:</h3>');
?>
<ul>
<?php echo $siblings; ?>
</ul>
<?php  }
}
?>

перелинковка страниц звёздочкой

Ссылки на следующую и/или предыдущую страницу WordPress.

Второй способ внутренней перелинковки постоянных страниц заключается в добавление ссылок “следующая/предыдущая страница”. Получается своеобразный вариант перелинковки “кольцом”.

ссылки на следующую/предыдущую страницу

Добавляемые ссылки отмечены синими пунктирными стрелками.

Для организации такого способа перелинковки нужно добавить следующий код в файл functions.php:

function siblings($link) {
    global $post;
    $siblings = get_pages('child_of='.$post->post_parent.'&parent='.$post->post_parent);
    foreach ($siblings as $key=>$sibling){
        if ($post->ID == $sibling->ID){
            $ID = $key;
        }
    }
    $closest = array('before'=>get_permalink($siblings[$ID-1]->ID),'after'=>get_permalink($siblings[$ID+1]->ID));

    if ($link == 'before' || $link == 'after') { echo $closest[$link]; } else { return $closest; }
}

За отображение URL отвечают функции, добавляемые в шаблон страницы:

предыдущая страница:

<?php siblings('before'); ?>

следующая страница:

<?php siblings('after'); ?>

Использовать которые можно, как вместе, так и по отдельности. Вот пример готового кода:

<p><strong>Навигация по городам:</strong></p>
<ul>
<li><a href="<?php siblings('after'); ?>">Следующий город</a>.</li>
<li><a href="<?php siblings('before'); ?>">Предыдущий город</a>.</li>
</ul>

А вот результат его работы:

следующая и предыдущая страницы WordPress

Кстати, не факт, что варианты перелинковки мной были выбрани идеально. Возможно лучше будет использовать “звёздочку” для городов, а “кольцо” – для ВУЗов.

Надеюсь описанные способы внутренней перелинковки постоянных страниц WordPress будут Вам полезны. Вопросы задавайте в комментариях.

GD Star Rating
loading...
Внутренняя перелинковка постоянных страниц WordPress., 4.0 out of 5 based on 6 ratings

Буду благодарен, если поделитесь этой статьей в социальных сетях:

Метки: , ,

6 Комментарии »

Оставить комментарий!

Добавить свой комментарий ниже, или Архив с вашего собственного сайта. Вы также можете Comments Feed через RSS.

Будьте вежливы. Держите его в чистоте. Оставайтесь на тему. Не спам.

Вы можете использовать эти теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Это Gravatar поддержкой сайта. Чтобы получить свой собственный глобально признанных-аватара, пожалуйста, зарегистрируйтесь на Gravatar.