Частенько бывает так, что разработчики WordPress никак не модифицирует файл functions.php
в рамках темы, которую они разрабатывают, а просто-напросто обыгрывают некий ключевой функционал в файлах шаблона, оставляя файл функций практически пустым… то есть на откуп вебмастера: но это, скорее, плюс, нежели минус.
Файл functions.php чуть ниже даны полезные ссылки на инструкции по работе с файлом функций: хуки… фильтры… всякие фичи… – всё самое важное, что необходимо знать о файле functions.php! дает нам возможность модифицировать и контролировать текущую (или созданную) специфическую функциональную среду нашего шаблона.
Для тех, которые только учатся работать с сайтом на Вордпресс, в этой статье познакомимся с некоторыми простыми, но важными включениями (модификациями) в файле функций: переопределим существующие функции, добавим новые для наиболее эффективной работы сайта, вместо того, чтобы использовать зачастую потенциально громоздкие плагины для достижения тех же целей.
Итак, 14 полезных сниппетов кода для более эффективной работы сайта на WordPress – начнём концерт:
- Что такое файл functions.php и как вы можете его редактировать?
- 1: Thumbnails (Избранные изображения) миниатюры записей
- 2: Автоматизация даты авторского права на сайте – в футере
- 3: Модификация Gravatar по умолчанию – для комментаторов
- 4: Установим на свой сайт значок – favicon
- 5: свяжем с сайтом данные Google Analytics
- 6: Настроим нижние колонтитулы – footer
- 7: Автоматическое изменение размера и обрезка изображений сайта
- 8: Режим обслуживания – Maintenance Mode
- 9: зададим минимальный предел для комментария, в символах
- 10: отобразим счетчик Twitter для ваших посетителей веб-сайта
- 11: автоматическое добавление к картинке в статье title – текстовый редактор
- 12: обусловим автоматическое добавление title в атирибуты миниатюры статьи
- 13: адаптаци шапки сайта – убираем лишние данные из исходного кода
- 14: запретим показ версий движка сайта, и при подключении css и jquery
Как убрать метатег generator плагина All in One SEO – meta name= “generator”
Google ввел новый тег indexifembedded — что это и как использовать.
Как вернуть кастомные кнопки в HTML редактор WordPress 6.0
Что такое файл functions.php и как вы можете его редактировать?
Статья для тех администраторов, которые не хотят бегать к фрилансерам по поводу всякой мелочи, и платить..!
Здесь и далее показан простенький принцип создания и отработки функций, имея в виду который, мы сможем что-то конструировать самостоятельно..!
Условные теги WordPress: полная подборка, пояснения…
Предложенные в этом посте несколько простеньких и лёгких сниппетов полезного кода, заменят добавление нескольких плагинов для отработки того же функцилнала.
Если часто слетает авторизация в WordPress.
Что ж, изучим способы изменения функциональной работы веб-сайта на WordPress через файл functions.php
, расположенный в папке нашей темы…
К слову:
возможно, кому-то будет полезна статья, толкующая о правилах работы с кодом: как закомментировать различный код?..
Как –
разнести определённые “тематические” функции по отдельным файлам functions.php — как разбить на отдельные функциональные части, файлы – узнаем в подробностях? …как создать собственный плагин Создаём плагин — добавочный файл функций — my-functions.php: учимся по шагам!, для личных целевых функций – обезопасим сайт на случай смены темы.
Подборка кода для файла функций. Необходимые настройки нового сайта!..
Итак – файл functions.php
по принципу такой же плагин WordPress, только расположенный локально в ядре шаблона (темы):
отыскать файл возможно по такому пути /wp-content/ themes/yourthemename/ищем файл
.
Работая с этим файлом, вы можете добавлять различный код для вызова требуемых функций и/или изменять текущую среду (функции) Вордпрес посредством фильтров, хуков на своих или клиентских сайтах.
Говоря коротко, вы можете добавить (прописать) столько требуемых функций в этот файл, сколько хотите, в то время как плагины обычно фокусируются на одной конкретной задаче, и нам подчас требуется установить кучу из них для покрытия различных целей: а это не всегда оправдано.
Я не противник плагинов, нет! однако не всё функциональное и не всегда стоит реализовывать плагинами, вот и весь секрет.
(Обычно!) добавление нового кода в файл функций вебмастера осуществляют так:
…открывают файл функций, и в самом его финале (перед знаком ?>
/хотя, этот знак можно убрать их файла/ добавляют новую функцию, снабжая комментариями, чтобы не забыть назначение сниппета).
Однако, я советую, код группировать по тематике, так целесообразнее (ссылка на обучающий пост чуть выше).
Имейте в виду:
проверьте у себя на сайте наличие плагина, который вызывает одну и ту же функцию что и некий объект (новая установленная функция) в functions.php
, дублирование может вызвать конфликт отработки… а, следовательно, проблемы на сайте.
Внимательно изучите назначения установленных плагинов.
Что ж, давайте рассмотрим несколько, а точнее 14 полезных вариантов кода для модернизации вашего сайта на WordPress с помощью файла functions.php
.
1: Thumbnails (Избранные изображения) миниатюры записей
Бывает так, что многие темы включают поддержку добавления миниатюр или изображений по умолчанию, однако, знаний для, мы также можем добавить эту функцию через файл functions.php
самостоятельно!
Прописываем следующую строку кода к себе в активный файл функций (или туда, куда вы добавляете подобный код)…
add_theme_support( 'post-thumbnails' );
Следующий код (вызов функции) должен быть включен в конкретный цикл, в котором вы хотите, чтобы миниатюра (thumbnails) отображалась на сайте:
<?php the_post_thumbnail(); ?>
2: Автоматизация даты авторского права на сайте – в футере
В некоторых случаях, в новом календарном году, приходится в ручную менять дату текущего года в нижней части сайта (подвал – footer.php
).
Об этой “смене времени” чаще всего забывают. Посему сделаем дату – динамической, добавив следующий код в файл functions.php
.
function copyright($start_year, $site_name) {
$year = date('Y');
echo "© Copyright ";
echo $start_year;
if($start_year != $year) echo "-$year";
echo ", $site_name, All Rights Reserved.";
}
После прописки кода выше, останется отыскать в файлах шаблона, требуемый отвечающий за формирование подвала файл: обычно это что-то типа footer.php
.
…и дописать к его коду следующие строки: (div класс возможно заменить на свой класс)
<div class='copyright'>
<?php copyright(2017, "Your Company Name - имя сайта"); ?>
</div>
3: Модификация Gravatar по умолчанию – для комментаторов
Если мы перейдём в “Настройки” – “Обсуждение” WordPress, то увидим область, которая позволяет нам изменять Гравитатор по умолчанию, для тех посетителей, которые публикуют комментарии на нашем сайте.
Как видите, разнообразие аватарок достаточно скудное… Отчего бы нИ добавить свой собственный вариант граватара!? скажем, картинку бренда?
Добавьте следующий код себе: (не забудьте указать имя своей картинки для mygravatar.gif)
add_filter( 'avatar_defaults', 'newgravatar' );
function newgravatar ($avatar_defaults) {
$myavatar = get_bloginfo('template_directory') . '/images/mygravatar.gif';
$avatar_defaults[$myavatar] = "CompanyName"; // имя сайта
return $avatar_defaults;
}
Более подробное описание как добавить свой граватар в Вордпресс…
4: Установим на свой сайт значок – favicon
Значок фавикон – это маленькая картинка, которая отображается во вкладке браузера, когда посетитель заходит на наш сайт…
Для подобной организации фавикона (если установка значка не предусмотрена темой) существует много плагинов, однако !! скажите пожалуйста, зачем для организации favicon использовать плагин, который станет неоправданно тратить ресурсы?? – это весьма и весьма нецелесообразно.
Гораздо логичнее просто-напросто добавить такой простенький код, и забыть об этой проблеме!
Замените “theyourimage” на путь до вашего желаемого изображения favicon.
add_action ('wp_head', 'blog_favicon');
function blog_favicon () {
echo '<link rel = "Shortcut Icon" type = "image / x-icon" href = "'. get_bloginfo ('wpurl'). 'theyourimage" />';
}
5: свяжем с сайтом данные Google Analytics
А это одна наиболее распространенная фича в файле functions.php
, поскольку связывает учетную запись Google Analytics, чтобы наблюдали дополнительную информацию о работе сайта.
Нужно только добавить свой код Google Analytics для привязки учетной записи:
<?php
add_action('wp_footer', 'add_googleanalytics');
function add_googleanalytics() { ?>
// Place the code you get from Google Analytics here - Разместите здесь код, полученный из Google Analytics...
<?php } ?>
6: Настроим нижние колонтитулы – footer
Нижний колонтитул (подвал сайта) обычно включает текст по умолчанию (к примеру, сведения о теме), – почему бы не изменить его в соответствии с личным брендом?
Добавьте этот код в файл functions.php
.
add_filter ('admin_footer_text', 'remove_footer_admin');
function remove_footer_admin () {
echo "Какой-то нужный для нас текст";
}
7: Автоматическое изменение размера и обрезка изображений сайта
Предоставленная ниже организация кода позволяет быстро изменять размер изображений до требуемого.
Добавьте код ниже, чтобы изображения обрезались (масштабировались) до идеального размера для вашего сайта.
Для начала проверьте, есть ли следующая строка в вашем functions.php
. И если если нет, то добавьте её:
add_theme_support( 'post-thumbnails' );
Кроме того, поместите следующий код в файл функций:
add_image_size ('imagename', 200, 200, true);
Измените имя изображения на то, которое хотите масштабировать, – первое число: это ширина обрезки… и – второе: число для высоты.
Поместите этот код в то место, где бы вы хотели видеть изображение:
<?php php the_post_thumbnail ('imagename'); ?>
8: Режим обслуживания – Maintenance Mode
Режим обслуживания подойдёт в том случае, когда мы ведём на сайте технические работы (к примеру, добавляем новый код в файл функций), и вот чтобы посетитель в случае “мигания кода” /дизайна/ не наблюдал этих экспериментов – или пустую страницу сайта – но видели какую-то симпатичную… сообщающую… о том, что на сайте ведутся работы…
Всего-то нужно добавить к себе следующие строки.
add_action ('get_header', 'maintenance_mode');
function maintenance_mode () {
if (! current_user_can ('edit_themes') || ! is_user_logged_in ()) {
wp_die ('Maintenance - ваш текст, фото...');
}
}
Если вы хотите отключить режим обслуживания, т.е. позволить людям снова видеть ваш сайт, просто закомментируйте следующую строку (как комментировать всческий код, описано тут).
9: зададим минимальный предел для комментария, в символах
Если мы хотим ограничить размер комментариев – минимум символов – максимум, вот решение.
Если комментатор ввёл короткий, либо длинный комментарий, то он увидит предупреждение об ошибке!
…используя следующий код в файле functions.php
.
new GW_Minimum_Characters( array(
'form_id' => 524,
'field_id' => 1,
'min_chars' => 10, // минимальное кол. символов
'max_chars' => 500, // максимальное кол. символов
'min_validation_message' => __( 'Sorry! You need more than %s characters! - Извините! Вам нужно больше, чем% s символов!' ),
'max_validation_message' => __( 'Sorry! You need less than %s characters! - Извините! Вам нужно больше, чем% s символов!' )
) )
;
Изменяйте идентификаторы, лимиты символов и сообщения предупреждений…
(Обратите внимание, что вы должны использовать этот фрагмент с Gravity Forms – универсальный конструктор форм для WordPress).
А этот хук к preprocess_comment (функция контролирует данные комментария перед сохранением в Б.Д) позволит задавать длину комментария в символах для стандартной формы комментирования (WordPress):
add_filter( 'preprocess_comment', 'wpb_preprocess_comment_s' );
function wpb_preprocess_comment_s($comment) {
if ( strlen( $comment['comment_content'] ) > 1000 ) {
wp_die('Комментарий слишком длинный. Пожалуйста, пишите комментарии длиной не более 1000 символов!');
}
if ( strlen( $comment['comment_content'] ) < 60 ) {
wp_die('Комментарий слишком короткий - минимум 60 символов!');
}
return $comment;
}
Примечание: фильтр запускается раньше того, как WordPress сохранит комментарий в Базе Данных! …именно на этом обыграны “предупреждение” пользователю, и сама возможность подкорректировать комментарий – так как текст комма ещё не сохранён в Б.Д!
Также возможно задавать длину комментария посредством плагинов, например: по типу этого Control Comment Length.
А этот Плагин ats privacy policy
Плагин ats privacy policy позволит с лёгкостью добавить чекбокс политики конфиденциальности в стандартную форму комментирования… позволит легко и просто добавить к стандартной форме комментирования правила политики конфиденциальности: чекбокс согласия!.. и если комментатор его не отметит, то получит предупреждение для исправления!
Настраиваемый…
10: отобразим счетчик Twitter для ваших посетителей веб-сайта
Это код позволяет нам отобразить количество подписчиков нашего аккаунта Twitter в любом месте сайта, а также любого другого пользователя Twitter! – без использования громоздкого плагина!
function twitter_follow_count($twinames) {
$json_string = file_get_contents('https://cdn.syndication.twimg.com/widgets/followbutton/info.json?screen_names='.$twinames);
$json = json_decode($json_string,true);
return $json[0]['followers_count'];
}
После прописки кода в файл функций – functions.php
активной темы – останется решить, где нужно выводить счётчик…
…в месте вывода счётчика добавляем следующие строки:
а) определяем функцию twitter_follow_count() – и информацию для переменной $twinames.
echo "Мои читатели в Twitter: "; echo twitter_follow_count('SashaiDasha'); // вместо моего SashaiDasha ставите свой name (юзернейм)
На данный момент, код нормально работает! тестите…
11: автоматическое добавление к картинке в статье title – текстовый редактор
Этот код автоматически добавит к картинке в статье title – всё это для удобства работы в текстовом редакторе… и не только…
/** АВТОМАТИЧЕСКОЕ ДОБАВЛЕНИЕ К КАРТИНКЕ статьи title **/
if ( !function_exists('avd_insert_image_title') ) :
function avd_insert_image_title( $html, $id, $attachment ) {
if ( !strpos($html, "title=") ) {
$html = str_replace('<img', '<img title="'. get_the_title( $id ) .'"' , $html);
}
return $html;
}
endif;
add_filter( 'media_send_to_editor', 'avd_insert_image_title', 10, 3 );
/** ФИН - АВТОМАТИЧЕСКОЕ ДОБАВЛЕНИЕ К КАРТИНКЕ статьи title **
/
12: обусловим автоматическое добавление title в атирибуты миниатюры статьи
Если в вашем шаблоне не организована поддержка автоматической прописки title в атрибуты миниатюры (а это скверно в плане SEO), –
добавте этот код себе, и отныне миниатюра записи будет организована по всем законам СЕО
/** добавляем title в атрибутику миниатюры **/
add_filter('wp_get_attachment_image_attributes','titles_gallery',10,2);
function titles_gallery($atts,$img) {
$atts['title'] = trim(strip_tags( $img->post_title ));
return $atts;
}
/** фин добавляем title в атрибутику миниатюры **/
13: адаптаци шапки сайта – убираем лишние данные из исходного кода
В комментариях к коду всё подробно рассказано…
/** АДАПТАЦИЯ ШАПКИ САЙТА ВЫБИРАЕМ ТРЕБУЕМОЕ **/
remove_action( 'wp_head', 'feed_links_extra', 3 ); // откл доп фид лент
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'rsd_link' ); // откл доп фид лент
remove_action( 'wp_head', 'wlwmanifest_link' ); // ссылки на главной странице: первый пост, следующий, предыдущий
remove_action( 'wp_head', 'index_rel_link' );
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ); // ссылки на главной странице: первый пост, следующий, предыдущий
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); // Убираем связанные ссылки
remove_action( 'wp_head', 'wp_generator' ); // запрет показа версии вордпресс
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 ); // Короткая ссылка, ссылка без ЧПУ
//add_filter( 'show_admin_bar', '__return_false' ); // запрет вывода админбара
/** ФИН - АДАПТАЦИЯ ШАПКИ САЙТА ВЫБИРАЕМ ТРЕБУЕМОЕ **/
14: запретим показ версий движка сайта, и при подключении css и jquery
/** защита сайта запрет показа версии движка сайта в ленте фида **/
add_filter('the_generator', 'remove_version');
function remove_version() {
return '';
}
/** защита сайта запрет показа версии движка сайта в ленте фида **/
…или этот код, который исключит показ версий при подключении css и jquery
/** убираем версии показа ДВИЖКА из исходного кода, при подключении css и jquery **/
add_filter( 'style_loader_src', 'vc_remove_wp_ver_css_js', 9999 );
add_filter( 'script_loader_src', 'vc_remove_wp_ver_css_js', 9999 );
function vc_remove_wp_ver_css_js( $src ) {
if ( strpos( $src, 'ver=' ) )
$src = remove_query_arg( 'ver', $src );
return $src;
}
/** убираем версии показа ДВИЖКА из исходного кода, при подключении css и jquery **/
Полезные статьи:
Что такое Open Graph? как подключить протокол Open Graph к WordPress.
Что такое Яндекс? SEO оптимизация сайта за пределами Google.
Защита сайта WordPress — обезопасим административную панель.
Полезная подборка кода, если Вы используете на сайте произвольные типы записей.
Подключение jQuery библиотеки от CDN Google – рационально!..
Как организовать подключения js скриптов в файлах шаблона — событие wp_footer — без перегрузок!..
Необходимые настройки новенького сайта на WordPress.
Важнейшие правила создания и настройки своего сайта на WordPress.
На этой странице помещена подборка полезного кода для файла functions.php
.
Полезные настройки в консоли администратора сайта на базе WordPress.
Мои услуги:
Сопровождение сайтов на WP – запросто с WordPress.
Переведу Ваш сайт на https — расторопно и качественно.
На этом занавес представления опускается…
…на рампы пыль печальная ложится…
Связка Contact Form 7 с плагином CF7 Google Sheet Connecto (отправим данные из формы связи в таблицы Google)
mihalica.ru !
Здравствуйте!
Спасибо! для меня полезная статья… всё собрано (или почти всё) в одном месте.
Было бы здорово, если бы Вы написали что-то по JS, который используете сами: например – “бегущая строчка” или кнопка “Скайп”…
Спасибо, Михаил!
Здравствуйте Вадим!
Сам подумывал… но всё как-то времени не выберу…
Как только напишу, сообщу вам…
Спасибо за поддержку идеи!