17 полезных функций для файла functions. php в cms wordpress

17 полезных функций для файла functions.php в cms wordpress

Из всех файлов движка WordPress functions.php один из самых универсальных. Если вы знаете, как с ним работать, этот файл позволит добавлять на сайт различные функции всего несколькими строками кода.

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

Давайте приступим!

Введение в wordpress functions файл

Functions.php один из основных файлов движка wordpress. Другими словами он помогает работать всю платформу и участвует в многих функциях сайта.

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

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

Как я упоминал ранее, каждая тема включает в себя свою версию functions.php. Если вы собираетесь внести существенные изменения в свой, лучший способ это — настроить дочернюю тему, чтобы ваши изменения не исчезли во время обновлений. Так же вам стоит сделать резервную копию, до того как делать любые изменения

Пройдите в wp-content\themes\название вашей темы. Внутри вы найдете functions.php файл. Откройте его в вашем любимом текстовом редакторе.

1. Добавить нового пользователя с правами администратора в wordpress

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

Просто скопируйте код, в самый конец файла functions. php и сохраните изменения. Вам нужно поменять на свои значения «имя пользователя», «пароль», «ваша@почта.com»


function wpb_admin_account() {
	$user = 'имя пользователя';
	$pass = 'пароль';
	$email = 'ваша@почта.com';
	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');

Для вывода количества пользователей добавьте в нужное вам место файлов шаблона (header.php, footer. php, sidebar. php)

3. Удалить из консоли панель «Добро пожаловать»

Панель добро пожаловать это секция в консоли которая появляется, когда вы входите в wordpress и она содержит советы с чего начать. С этим фрагментом кода вы сможете его удалить окончательно


remove_action('welcome_panel', 'wp_welcome_panel');

4. Скрыть версию вордпресса

Как вы верояно знаете в зависимости от вашей темы, вордпресс как правило выводит свою версию в футере сайта. Эту мелкую деталь вы можете просто удалить этим кодом


function wpb_remove_version() {
	return '';
}
add_filter('the_generator', 'wpb_remove_version');

5. Добавить произвольный текст или ссылку в футер консоли

Ваша консоль вордпресс вероятно содержит какой-то текст в футере. Как правило это указание авторства. Вы можете указать собственное


function remove_footer_admin () {
	echo 'Привет мир!';
}
add_filter('admin_footer_text', 'remove_footer_admin');

Замените «Привет мир!» на любой текст или ссылку.

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 'Если вам нужна помощь в внесении изменений на ваш сайт, вы всегда можете связаться со мной по электронной почте [email protected]';
}

Этот фрагмент кода добавляет виджет «больше информации». Для примера вы можете создать «виджет» с контактами, чтобы оставаться на связи.

7. Добавить произвольные размеры изображений

Вордпресс позволяет изменять размеры изображения после загрузки и предоставляет некоторые размеры по умолчанию. С этим кодом вы сможете добавлять новые предустановленные размеры.


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 лента имеет много настроек. Вы можете исключить ненужные категории из ленты


function exclude_category($query) {
	if ( $query->is_feed ) {
		$query->set('cat', -2, -3');
	}
	return $query;
}
add_filter('pre_get_posts', 'exclude_category');

10. Отключить 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);

Заметьте код использует небольшое сообщение для пользователей, кто попытается получить доступ к rss после того как вы ее отключили

11. Скрыть ошибки при авторизации в wordpress

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


function no_wordpress_errors(){
	return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

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

12. Заставить пользователей авторизовываться с помощью имени пользователя вместо почтового адреса

Много людей регистрируются использую одну и ту же почту, что означает злоумышленники могут попытаться получить доступ зная только email. Можно заставить авторизовываться используя имя пользователя.


remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );

Это маленькое улучшение может улучшить вашу безопасность.

13. Изменить длину «excerpt» записи блога

Посты в вордпресс обычно имеют «выдержки», чтобы дать понять читателям о чем они. Если хотите увеличить длину «выдержек» вам поможет фрагмент кода ниже.


function new_excerpt_length($length) {
	return 75;
}
add_filter('excerpt_length', 'new_excerpt_length');

По умолчанию длина 55 слов, но этим кодом увеличим до 75.

14. Позволить вордпрессу загружать любой тип файла

По умолчания wordpress позволяет загружать только определенные типы файлов. Но вы можете позволить загружать и другие.


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. Отключить автоматическое добавление ссылки для изображений

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


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. Добавить область виджетов

Для регистрации дополнительной области виджетов используйте код ниже.


function custom_sidebars() {
	$args = array(
		'id' => 'custom_sidebar',
		'name' => __( 'Custom Widget', 'text_domain' ),
		'description' => __( 'A custom widget, 'text_domain' ),
		'before_title' => '

', 'after_title' => '

', 'before_widget' => '', ); 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;" ) );

Убедитесь наверняка прежде чем отключать, так как это может сильно повлиять на юзабилити

Подведение итогов

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

Оглавление:

  1. Добавить нового пользователя с правами администратора в wordpress
  2. Вывод общего количества зарегистрированных пользователей
  3. Удалить из консоли панель «Добро пожаловать»
  4. Скрыть версию вордпресса
  5. Добавить произвольный текст или ссылку в футер консоли
  6. Добавить простой текстовый виджет в консоль
  7. Добавить произвольные размеры изображений
  8. Добавить миниатюру изображения в rss ленту
  9. Исключить определенные категории из rss ленты
  10. Отключить rss ленту
  11. Скрыть ошибки при авторизации в wordpress
  12. Заставить пользователей авторизовываться с помощью имени пользователя вместо почтового адреса
  13. Изменить длину «excerpt» записи блога
  14. Позволить вордпрессу загружать любой тип файла
  15. Отключить автоматическое добавление ссылки для изображений
  16. Добавить область виджетов
  17. Отключить поиск в wordpress