Другие способы расширения возможностей WordPress

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

Допустим, вы хотите поставить ссылку на какую-то специфическую страницу.

  • <a href="/contact/">Contact</a> – не круто
  • <a href="<?php echo get_permalink(12); ?>">Contact</a> – гораздо лучше

В чем фокус? Если урл страницы (ее слаг) изменится, ссылка останется рабочей. Если изменится структура пермалинка, страница станет вложенной или сайт переместится в поддиректорию, то ссылка все равно останется рабочей.

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

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 требуемой страницы и текст ссылки, на сайте в записи будет отображена соответствующая ссылка. Кроме этого можно указать дополнительный стиль для такой ссылки.

С представление текста [permalink id=49 text='Текст ссылки']

Таким способом вернется ссылка с заданным текстом.

Но самые горячие головы могут воспользоваться плагином Exec-PHP (https://wordpress.org/plugins/exec-php/), который позволяет вставлять исполняемый php код прямо в текст записи. Но с ним нужно быть очень внимательным и осторожным.

Функции внутри файлов темы

Файлы шаблона содержат большое количество тегов, функций, PHP скриптов и (X)HTML разметки. Внутри этих файлов разработчики могут размещать любой нужный себе функционал.

Например, для размещения кнопок редактирования и отправки в спам комментариев можно обойтись и без functions.php, указав нужный код прямо внутри цикла комментариев, создав подобный скрипт

<p><?php comment_author_link(); ?><p>
<p><?php if (current_user_can('edit_post')) {
echo '<a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?
action=cdc&c='.comment_ID().'">Удалить</a>';
echo ' | <a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?
action=cdc&dt=spam&c='.comment_ID().'">Спам</a>';
} ?></p>
<?php comment_text(); ?>

Данный код создаст примерно такой код комментариев

<p><a href='https://supersite.ru/' rel='external nofollow'>Автор</a></p>
<p><a href="https://supersite.ru/wp-admin/comment.php?action=cdc&c=123">Удалить</a> | 
<a href="https://supersite.ru/wp-admin/comment.php?action=cdc&dt=spam&c=123">Спам</a></p>
<p>Привет! Это мой первый комментарий</p>

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

Хакаем ядро вордпресса

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

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

Нет ничего святого в файлах вордпресса, это точно такие же файлы, как и файлы шаблонов. Главный аргумент против того, чтобы в них копаться — это сложности с обновлениями. Имея на руках пачку исправлений в разных файлах, будет сложновато просто так нажать на кнопку «Обновиться» и гадать — остались эти правки или нет.

Чтобы разобраться, нужно править системные файлы или нет, стоит обратить внимание на следующее:

  • Не лезть в файлы ядра Вордпресс до тех пор, пока абсолютно не уверены, что иначе это не получится реализовать
  • Абсолютно точно понимать, что, как и зачем будет делаться
  • Создать файл «Прочитать перед обновлением» в котором описать все детали сделанных правок, на случай полной потери памяти

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Scroll Up