Вордпресс. Файл functions.php

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

Ранее, когда по интернету топтался динозавровый Вордпресс, во имя своих, а чаще клиентских прихотей, приходилось править функционал самого ядра системы. Это было неудобно, громоздко, проще говоря — чесание уха через …. ну вы поняли.

Но как хорошо, что со временем все меняется к лучшему.
В клиентской части для пользователей созданы так называемые темы.
Набор какого-то функционала в админке ( бэк-энде ) и снаружи — для всех посетителей ( фронт-энд ).
И если в админской части вид более менее стандартизован — слева админ-меню с разделами: Страницы, Посты, Настройки и т.д. То на «фасаде», темы разнятся очень сильно — размером хэдера ( верхняя часть с меню, хотя на практике видал хэдер и слева ), футера, наличием разных боковых панелей (сайдбаров).

В теме одни из основных файлов это style.css и functions.php.
В первом собраны стили элементов темы, причем не всегда, а зачастую файлы стилей расположены где — нибудь в /css/header.css, content.css …. Сам же файл style.css в корне темы бывает пуст, а его содержимое в коде комментариев


Theme Name: Twenty Fifteen

Theme URI: https://wordpress.org/themes/twentyfifteen/

Author: the WordPress team

Author URI: https://wordpress.org/

Description: Some description

Version: 1.3

служит описанием внешнего вида темы в админке, если зайти в раздел Темы и нажать «Информация о теме», то там мы увидим изображение (скриншот лежит обычно в одном каталоге с файлом style.css) и описание темы которое задано в заголовке файла в коде комментариев.
worpress style.css

Но теперь о главном в этой статье файл functions.php.

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

К примеру такой код добавит возможность загрузки миниатюры к посту

add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );


function my_post_image_html ( $html, $post_id, $post_image_id ) {

  $html = '<a title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '" href=".get_permalink($post_id).'">' . $html . '</a>';


  return $html;

}

результат вы увидите в разделе Записи в правой нижней части монитора.

 результат functions.php

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

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

worpress создание роли пользователя

К примеру нужно, чтобы участник с ролью мог читать, редактировать, но не мог удалить пост.

Добавим следующий код в конец файла functions.php вашей текущей темы.

add_role (

  'pupil' ,  'Ученик',

   array(

   'read'=> true,    

  )

);

Жмем кнопку «ОБНОВИТЬ ФАЙЛ».

Результат будет следующий

wordpress результат создания роли пользователя

Удалим код, он для одного раза, а Вордпресс таких ролей больше не добавит.

После удаления кода, новая роль все равно останется, так как она уже существует как запись в таблице Вордпресса.

Если вам нужен постоянно срабатывающий код, то удалять его не нужно. НО!

Если вы используете тему не собственной разработки, то от внесения кода в functions.php используемой темы, придется отказаться. Как всякий софт — темы обновляются (внешний вид, функционал) и при автоматическом обновлении, ваш код будет утерян в следствии перезаписи файла functions.php.

Но выход конечно же есть! В следующей статье я познакомлю вас с дочерней темой.

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

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