Перезапись ссылок в WordPress. Часть 1

Новые функции в WordPress позволяют разработчикам кастомизировать их персональные сайты достаточно просто и быстро. Не сложно обновлять элементы темы, заменять виджеты в сайдбаре и даже писать свои собственные PHP функции. Пространство для маневра огромно, и одной из таких возможностей является перезапись дефолтных постоянных ссылок.

wordpress[1]

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

Познаем WP_Rewrite

Если вы знакомы с mod_rewrite серверов на Apache, то сложностей с понимаем синтаксиса перезаписи в WordPress возникнуть не должно. Их система до сих пор построена на файле .htaccess, однако все правила пишутся на PHP. Это на самом деле упрощает процесс, в виду того, что у нас всё же больше контроля над перезаписью ссылок.

Мы рекомендуем пройтись по страничке класса $wp_rewrite, так как там огромное количество информации по теме. Также в Кодексе есть небольшие примеры, которые облегчат понимание темы. Большинство кода может быть прописана прямо в файл functions.php темы. Давайте рассмотрим стандартные правила перезаписи, уже существующие в WordPress.

Содержимое $wp_rewrite->rules

Объявляя класс $wp_rewrite глобальным, мы получаем доступ ко всем внутренним данным. Когда вы соберетесь добавить ваши собственные правила, они будут добавлены в массив с именем $wp_rewrite->rules. Важно запомнить эту переменную, так как вам придется обращаться к этим данным множество раз в процессе разработки.

 
    <?php  
    global $wp_rewrite;  
    print_r($wp_rewrite->rules);  
    ?>  
    

Мы добавили этот кусочек кода в файл page.php темы. Он выведет большой массив данных, который выглядит как большой набор букв. Но если вы просмотрите исходный код страницы, то увидите какие правила перезаписи какому имени файла соответствуют. Например, давайте взглянем на правило перезаписи для рубрик:

[category/(.+?)/?$] => index.php?category_name=$matches[1] 

Кусочек слева в квадратных скобках — это то правило Apache RewriteRule, которое мы ищем. Начинаем с /category/ и последующих символов. Если правило совпадает, тогда сервер понимает, что нужно ссылаться на index.php?category_name= при замене переменной в конце.

Продолжение статьи смотрите по ссылке Перезапись ссылок в WordPress. Часть 2

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top