17 файловых взломов WordPress Functions.php
Опубликовано: 2017-05-28Из всех ваших основных файлов WordPress лишь некоторые из них столь же универсальны, как functions.php . Если вы знаете, как с ним взаимодействовать, этот файл позволит вам добавить на свой сайт всевозможные функции с помощью всего нескольких строк кода.
В этой статье мы расскажем вам все, что вам нужно знать о файле функций WordPress и о том, как его использовать в ваших интересах. Мы обсудим, что он делает, почему вам следует его использовать, а когда нет. Кроме того, мы познакомим вас с 17 полезными хаками для файлов, которые позволят расширить функциональность вашего сайта без установки плагина.
Давайте устроим это шоу в дорогу!
Знакомство с файлом функций WordPress
Файл functions.php является одним из основных файлов WordPress. Другими словами, он помогает поддерживать всю платформу и стоит за многими функциями вашего сайта.

Вы также можете использовать файл functions.php как временный способ реализации новых функций на вашем веб-сайте, таких как добавление новых виджетов на панель управления или пользовательские размеры изображений для вашей установки. Это идеальная альтернатива плагинам WordPress для простых или временных функций.
Также стоит отметить, что существует «родительский» файл functions.php, который влияет на весь ваш сайт, но каждая тема имеет свою дочернюю версию (как и ваш файл style.css ). Это эффективно позволяет вам реализовывать функции только для определенных тем, не затрагивая ваш сайт глобально.
17 файловых хаков для вашего файла WordPress Functions.php
Как мы упоминали ранее, каждая тема имеет свой собственный файл functions.php . Если вы собираетесь внести значительные изменения в свою, лучше всего настроить дочернюю тему, чтобы ваши изменения не пропадали во время обновлений. Вы также захотите сделать резервную копию своего сайта, прежде чем вносить какие-либо изменения, на случай, если что-то пойдет не так и вам нужно откатить свои изменения.
Далее вам потребуется получить доступ к файлу functions.php с помощью клиента FTP (протокола передачи файлов), такого как FileZilla, чтобы перейти в каталог wp-content / themes / . Внутри вы найдете папку для каждой из ваших тем, каждая из которых должна иметь свои собственные файлы functions.php внутри:

Просто щелкните его правой кнопкой мыши и выберите вариант с надписью « Изменить», чтобы открыть текстовый редактор по умолчанию. Разобравшись с этим, перейдем к делу!
1. Добавьте нового пользователя-администратора в WordPress.
В некоторых случаях вы можете быть заблокированы в своей учетной записи администратора и не сможете ни изменить свой пароль, ни получить доступ к своему сайту. С помощью этой настройки у вас будет дополнительный способ восстановления доступа через FTP.
Как и все эти хаки и фрагменты, просто скопируйте следующий код, вставьте его в конец файла functions.php вашей темы и сохраните изменения.
function wpb_admin_account(){
$user = 'username';
$pass = 'password';
$email = '[email protected]';
if ( !username_exists( $user ) && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','wpb_admin_account');Вам нужно будет заменить значения, в которых указано имя пользователя, пароль и адрес электронной почты, своими собственными, и все готово!
2. Отображение общего количества зарегистрированных пользователей.
Если вы когда-нибудь хотели похвастаться перед миром, сколько пользователей имеет ваш сайт, эта настройка позволяет вам добавить простой счетчик к вашему интерфейсу. Этот хакер также имеет применение не только для хвастовства. Например, люди могут с большей готовностью доверять вашему сайту, если они знают, что у него сильная база пользователей. Вот фрагмент:
function wpb_user_count() {
$usercount = count_users();
$result = $usercount['total_users'];
return $result;
}
add_shortcode('user_count', 'wpb_user_count');Это немного продвинуто, поскольку мы фактически зарегистрировали специальный шорткод [user_count] для отображения общего числа зарегистрированных пользователей на вашем сайте. Хотя это может быть сложной темой, наша реализация проста!
3. Удалите "панель приветствия" на вашей панели инструментов.
Панель приветствия - это раздел вашей панели инструментов, который появляется, как только вы входите в WordPress, и обычно содержит несколько советов и контрольных списков, которые помогут вам начать работу. С помощью этого фрагмента кода вы сможете удалить его навсегда:
remove_action('welcome_panel', 'wp_welcome_panel');Конечно, панель приветствия совсем не агрессивна, но она может устареть, если вы уже какое-то время пользуетесь платформой и больше не нуждаетесь в советах. Кроме того, поскольку все, что для этого требуется, - это строка кода, у этого взлома буквально нет недостатков.
4. Скрыть номер своей версии WordPress.
Как вы, наверное, знаете, в зависимости от темы, которую вы используете, WordPress имеет тенденцию отображать номер своей версии в нижнем колонтитуле вашего сайта. Это крошечная деталь, которую вы можете легко удалить с помощью этого кода:
function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');Если вы используете старую версию WordPress (чего, конечно же, быть не должно), эта настройка может пригодиться, чтобы сделать вас менее привлекательной целью.
5. Измените нижний колонтитул информационной панели.
Ваша панель управления WordPress, вероятно, включает в себя небольшой текст в нижнем колонтитуле, часто указывающий какой-либо кредит (обычно сам WordPress). Возможно, вы забыли об этом, но этот прием действительно дает вам хорошую возможность настроить или брендировать свой сайт с помощью простого взлома. Давайте посмотрим на соответствующий код:
function remove_footer_admin () {
echo 'Hello world!';
}
add_filter('admin_footer_text', 'remove_footer_admin');Для этого взлома вам следует заменить Hello world! текст с вашим собственным, включая любые ссылки, которые вы хотите включить.
6. Добавьте простой текстовый виджет на панель инструментов.
Если вы решили освободить место на панели управления, удалив виджет приветствия, возможно, вы захотите заменить его своим собственным. Используя этот код, вы сможете настроить простой текстовый виджет:
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
function my_custom_dashboard_widgets() {
global $wp_meta_boxes;
wp_add_dashboard_widget('custom_widget', 'More Information', 'custom_dashboard_information');
}
function custom_dashboard_information() {
echo 'If you need help making changes to your site, you can always contact me via email at...';
}Этот фрагмент добавит на вашу панель управления виджет под названием Дополнительная информация , включая текст в функции custom_dashboard_information . В этом примере мы решили создать своего рода виджет контактов, который вы можете использовать для белой метки клиентских веб-сайтов и напоминать им о необходимости оставаться на связи, если это необходимо.
7. Добавьте нестандартные размеры изображений в ваши установки.
WordPress позволяет изменять размер изображений до определенных размеров после их загрузки и по умолчанию предоставляет некоторые предустановки. С помощью этого кода вы сможете добавлять новые предустановки, чтобы избежать необходимости устанавливать специальные размеры:
add_image_size( 'sidebar-thumbnail', 120, 120 );
Имейте в виду, что вы можете добавить столько новых размеров, сколько захотите, и они могут оказаться особенно полезными, если вы используете определенное разрешение на всем сайте.
8. Добавьте избранные изображения в RSS-канал.
Многие этого не знают, но WordPress автоматически генерирует RSS-каналы для ваших сайтов. Если вы собираетесь использовать свое, вам нужно настроить изображение для своих сообщений, что вы можете сделать с помощью этого кода:

function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '
' . get_the_post_thumbnail($post->ID) .
'
' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');Избранные изображения могут иметь большое значение для того, чтобы сделать ваш RSS-канал более привлекательным, что имеет решающее значение для любого типа контента, основанного на переходах по ссылкам.
9. Исключите категории из RSS-канала.
Одна из лучших особенностей функции RSS-канала WordPress - это ее настраиваемость. С помощью этого кода вы сможете скрыть определенные категории из своей ленты, чтобы вы могли выбирать, какой контент будет добавлен:
function exclude_category($query) {
if ( $query->is_feed ) {
$query->set('cat', -2, -3');
}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');Имейте в виду, что WordPress определяет категории в соответствии с номерами ID (например, -2 и -3 ) в приведенном выше коде. Поэтому вам нужно будет определить идентификаторы категорий, которые вы хотите удалить, прежде чем внедрять этот взлом.
10. Отключите RSS-канал.
Хотя это отличная функция WordPress, если вы вообще не заинтересованы в использовании RSS, вы можете полностью отключить его, используя этот фрагмент кода:
function fb_disable_feed() {
wp_die( __('Sorry, we don't use RSS!') );
}
add_action('do_feed', 'fb_disable_feed', 1);
add_action('do_feed_rdf', 'fb_disable_feed', 1);
add_action('do_feed_rss', 'fb_disable_feed', 1);
add_action('do_feed_rss2', 'fb_disable_feed', 1);
add_action('do_feed_atom', 'fb_disable_feed', 1);Вы заметите, что код содержит небольшое сообщение для пользователей, которые пытаются получить доступ к вашему каналу после того, как вы его отключили. Нет никаких недостатков в том, чтобы поддерживать его в активном состоянии, но если вы уверены, что не собираетесь его использовать, это позволяет вам полностью отключить его и, возможно, сэкономить цикл или два.
11. Скрыть подробности об ошибке входа в WordPress
Слишком подробные ошибки входа в систему могут предоставить нежелательным лицам информацию, необходимую им для получения доступа к вашему сайту. С помощью этого кода WordPress не будет указывать, где вы допустили ошибку при попытке входа в систему:
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );Используя этот способ взлома, злоумышленникам будет сложнее попытаться получить доступ к вашему сайту, в то время как у реальных пользователей не должно возникнуть проблем с выяснением того, где они допустили ошибку. Беспроигрышный вариант!
12. Заставьте пользователей входить в систему с их именами пользователей.
Многие люди, как правило, подписываются на каждую службу, используя один и тот же адрес электронной почты, а это означает, что злоумышленники могут попытаться получить доступ, просто зная свои адреса электронной почты. С помощью этого кода вы заставите пользователей входить в систему исключительно с использованием имен пользователей:
remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );
Честно говоря, имена пользователей также часто используются повторно, но эта небольшая настройка может помочь повысить вашу безопасность и минимизировать атаки.
13. Измените длину отрывков из сообщений.
Индексы блогов WordPress обычно отображают краткие выдержки из ваших сообщений, чтобы дать читателям представление о том, что их ждет. Если вы когда-нибудь хотели изменить длину этих отрывков по умолчанию, вот возможность сделать это.
functionnew_excerpt_length($length) {
return 75;
}
add_filter('excerpt_length', 'new_excerpt_length');Длина по умолчанию - 55, но в приведенном выше коде мы увеличили ее до 75, чтобы дать нам немного больше места для маневра.
14. Включите WordPress для загрузки файлов любого типа, который вы хотите
По умолчанию WordPress позволяет загружать только очень ограниченный диапазон типов файлов, включая распространенные форматы мультимедиа, такие как .png и .jpg. С помощью этого кода вы сможете принудительно разрешить установку большего количества типов:
function my_myme_types($mime_types){
$mime_types['svg'] = 'image/svg+xml';
return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);Возьмем , к примеру, .svg, тип файла, который мы обсуждали ранее. С помощью этого фрагмента вы сможете добавить для него поддержку без использования плагина.
15. Отключите автоматическое связывание изображений.
По умолчанию WordPress будет добавлять ссылки на каждое изображение, которое вы включаете в свой контент, которое указывает на его полную версию. Используя этот код, вы отключите эту функцию:
function wpb_imagelink_setup() {
$image_set = get_option( 'image_default_link_type' );
if ($image_set !== 'none') {
update_option('image_default_link_type', 'none');
}
}
add_action('admin_init', 'wpb_imagelink_setup', 10);Однако имейте в виду, что вы все равно можете получить доступ к этой функции, отредактировав каждое отдельное изображение - все это мешает ему работать автоматически.
16. Добавьте область готовности виджета
WordPress уже включает в себя несколько областей с готовыми виджетами, которые вы можете использовать, но вы всегда можете добавить новые, используя небольшую магию functions.php . Как и в случае с нашим предыдущим взломом с короткими кодами, здесь вы начинаете попадать в сферу разработчика. Однако это простая реализация, которая может вам очень помочь:
function custom_sidebars() {
$args = array(
'id' => 'custom_sidebar',
'name' => __( 'Custom Widget', 'text_domain' ),
'description' => __( 'A custom widget, 'text_domain' ),
'before_title' => '
<h3 class="widget-title">',
'after_title' => '</h3>
',
'before_widget' => '
<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>
',
);
register_sidebar( $args );
}
add_action( 'widgets_init', 'custom_sidebars' );Имейте в виду, что этот код просто «регистрирует» вашу новую область виджетов. Вам все равно нужно будет вызывать его для определенных разделов темы, таких как нижний колонтитул, путем редактирования соответствующих файлов.
17. Отключите функцию поиска WordPress.
Почти каждому сайту нужна функция поиска, чтобы помочь пользователям ориентироваться. Однако, если вы собираетесь создать одностраничный сайт, он может вам не понадобиться. Вот код, который позволит вам выключить, если он выключен:
function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
// to error
if ( $error == true )
$query->is_404 = true;
}
}
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );Перед отключением этой функции вы должны быть на 100% уверены, что она вам не понадобится, поскольку это может сильно повлиять на удобство использования вашего сайта. Конечно, вы всегда можете удалить код, чтобы возобновить поиск на своем сайте, но если вы не уверены, проявите осторожность и не выключайте его!
Заключение
Ваш файл functions.php - один из самых мощных ресурсов в вашем наборе инструментов WordPress. Это не только позволяет вам добавлять всевозможные функции с помощью нескольких строк кода, но также критически важно для функционирования вашего сайта (посмотрите, что мы там сделали?).
Если вы являетесь пользователем Divi, файл functions.php может помочь вам добавить несколько дополнительных функций на ваш сайт без необходимости устанавливать дополнительные плагины, что всегда является преимуществом.
У вас есть вопросы об этих взломах файлов функций WordPress? Если да, спросите в разделе комментариев ниже!
Миниатюра статьи MchlSkhrv / shutterstock.com
