Интересные статьи

Красивая форма обратной связи... Предоставление посетителям сайта простого и надежного средства обратной связи – это важнейшая...

Readmore

WordPress. 10 полезных приемов разработки Начиная с прошлого года, рынок тем для WordPress невероятно вырос. В чем же причина? Отличные дизайны,...

Readmore

Создание прототипа с помощью... Grid 960 - это CSS Фреймворк, который позволяет разработчикам быстро конструировать прототипы дизайна....

Readmore

WordPress. Как сделать блог многоязычным Начиная вести свой блог, я твердо решила никогда не писать обзорных статей о плагинах к WordPress....

Readmore

10 отличных шорткодов для Wordpress Если вы давно ведете свой блог на WordPress, то конечно же знаете, что визуальный редактор позволяет...

Readmore

Очередной блог фрилансера Rss

WordPress. Простой шорткод для постоянных ссылок

Дата публикации : 01-12-2009 | в рубрике : wordpress, переводы

Метки: , ,

9

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

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

Плохой пример:

<a href="/contact/">Контакты</a>

Хороший пример:

<a href="<?php echo get_permalink(12); ?>">Контакты</a>

Здесь «12» – это ID нужной записи или страницы. Почему же этот способ правильней?

  • ссылка будет работать, даже если вы измените структуру ссылок;
  • ссылка будет работать, даже если сайт будет перенесен с субдомена (который вы использовали для тестирования) на домен верхнего уровня.

Используя вышеуказанную функцию, ссылки на ваши записи и страницы никогда не изменятся. Это очень удобно использовать, при работе с файлами нашей темы, но как насчет использования ссылок на страницах и записях в визуальном редакторе?

По умолчанию, мы не можем выполнять PHP-код внутри нашей страницы или записи, а следовательно нет возможности использовать функцию get_permalink. Что мы можем сделать, так это создать специальный шорткод, с точно такой же функциональностью. И вот он:

function permalink_thingy($atts) {
	extract(shortcode_atts(array(
		'id' => 1,
		'text' => ""  // значение по умолчанию, если ничего не указано
    ), $atts));

    if ($text) {
        $url = get_permalink($id);
        return "<a href='$url'>$text</a>";
    } else {
	   return get_permalink($id);
	}
}
add_shortcode('permalink', 'permalink_thingy');

Этот шорткод можно использовать двумя способами:

Просто:

<a href="[permalink id=49]">Использование без текста</a>

Здесь вам нужно просто указать параметр id и шорткод вернет URL. Полученный URL можно использовать любым способом, например, если вам нужно присвоить ссылке определенный класс или еще для чего-нибудь.

С текстом:

[permalink id=49 text='providing text']

Этот способ вернет полностью форматированную ссылку, с текстом, который вы указали.

Перевод статьи «Easy Shortcode Permalinks», автор Chris Coyier

Похожие записи

Комментарии: (9)

ВП зло ;) лучше катить свой велосипед %)))

всегда было интересно узнать, за что люди не любят ВП, можно подробнее?)

я бы сказал не ВП, а CMS вообще зло
шаблонность ни чего хорошего в себе не несёт. я за уникальность каждого сайта в инете.

Илья, а кто мешает делать уникальные вещи на CMS? и не кажется ли вам пустой тратой времени создавать каждый раз все заново, при том, что там 100% будут какие-либо дыры и недоработки..?

Абсолютно согласен, что при написании с нуля будут дыры и времени это займёт огромную кучу. Но я и не призываю к этому. Моё мнение – надо использовать готовые [мини]модули. Но не целые решения.

Придумывать «свой велосипед» нужно когда уже существующий «транспорт» не оправдывает ожиданий. О том насколько соответствует требованиям WP можно судить о его популярности.
Кстати, я сам создаю велосипед и изучая статьи о движках иногда ловлю себя на мысли, а нафига я это делаю, ведь всё уже есть.

Честно говоря, нельзя сказать что способ с указанием id страницы выглядит изящным. Совершенно непонятно куда ведёт такая ссылка.
К тому же изменение урлов на сайте бывает очень редко (из личной практики).

Сделай, наведи и посмотри куда она ведёт :)

Редко, но метко. Помнится один умник начитался SEO дряни и накосячил с ЧПУ, в итоге пришлось поднимать блог из бэкапа, вроде ВП 2.7 косячил с ЧПУ, поставив 2.9 я был приятно удивлён :)
прописав ТОЛЬКО /%postname%/ (без плагинов, УРА!) всё заработало :)

Полезная функция.
Спасибо.

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