/ Wordpress / Расширение функционала WP

Расширение функционала WP

HIT

14.06.2015

2457

Разгрузка functions.php

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

В основном файле functions.php подключаем фрагменты из директории inc

require get_template_directory() . '/inc/plagins-updater.php'; require get_template_directory() . '/inc/simple-widget.php'; require get_template_directory() . '/inc/wordpress-breadcrumbs.php'; require get_template_directory() . '/inc/wordpress-customizer.php'; require get_template_directory() . '/inc/wordpress-updater.php'; require get_template_directory() . '/inc/wordpress-writer.php'; require get_template_directory() . '/inc/wp-shortcoder.php'; 
deadspace2

Расширение основного функционала WP

Узнать подробнее что такое функция можно здесь.

// html теги в описании рублики
remove_filter('pre_term_description', 'wp_filter_kses');
remove_filter('pre_term_description', 'wp_kses_data');


// Шорткоды в описании рублики
add_filter( 'term_description', 'shortcode_unautop');
add_filter( 'term_description', 'do_shortcode' );


// добавление цитаты в редактировании страницы
add_post_type_support( 'page', 'excerpt' );


// настройка количества символов цитаты по умолчанию
function custom_excerpt_length() {
$length = 50;
return $length;
}
add_filter('excerpt_length', 'custom_excerpt_length');


// регистрируем меню
function register_my_menus() {
register_nav_menus (
array( 'header-menu' => 'header-menu1', 'left-menu' => 'left-menu1')
);
}


// запуск меню
if (function_exists('register_nav_menus')) {
 add_action( 'init', 'register_my_menus' );
}


//добавление поддержки миниатюр
if ( function_exists('add_theme_support') ) {
 add_theme_support('post-thumbnails');
}


//регистрируем сайтбар
register_sidebar(
 array(
 'id' => 'primary',
 'name' => __( 'Primary' ),
 'description' => __( 'Описание сайтбара (видно в админ панели).' ),
 'before_widget' => '<div class="widgit">',
 'after_widget' => '</div>',
 'before_title' => '<h2 class="headwidgit">',
 'after_title' => '</h2>'
 )
);

Поддержка PHP-кода в виджетах

// Поддержка PHP в виджетах
function php_in_widgets($widget_content) {
	if (strpos($widget_content, '<' . '?') !== false) {
		ob_start();
		eval('?' . '>' . $widget_content);
		$widget_content = ob_get_contents();
		ob_end_clean();
	}
	return $widget_content;
}
add_filter('widget_text', 'php_in_widgets', 99);

Данная функция будет действовать и на Текстовый виджет и на виджет Пользовательский HTML, которые были добавлены в WordPress 4.8

Решение мягко говоря нестабильное, лучше использовать плагин PHP Code Widget (200 000).

Только при установке выплыла ошибка create_function() is deprecated. Решил проблему заменив функцию в единственном файле плагина execphp.php с

add_action('widgets_init', create_function('', 'return register_widget("PHP_Code_Widget");'));

на

function php_code_widget_init_widget () {
    return register_widget('PHP_Code_Widget');
}
add_action ('widgets_init', 'php_code_widget_init_widget');

Меняем текст на логотип

Мы можем любое слово на странице заменить на логотип:

function replace_text_wps($text){
    $replace = array(
    'UNDERSUN' => '<img class="company-logo" src="/wp-content/uploads/2017/09/undersun_logo-classic.png">'
    );
    $text = str_replace(array_keys($replace), $replace, $text);
    return $text;
}

Либо сделать слово (или несколько слов) ссылкой:

function replace_text_wps($text){
    $replace = array(
    'thesis' => '<a href="http://mysite.com/myafflink" rel="nofollow">thesis</a>',
    'studiopress' => '<a href="http://mysite.com/myafflink" rel="nofollow">studiopress</a>'
    );
    $text = str_replace(array_keys($replace), $replace, $text);
    return $text;
}

Далее привязываем функцию к содержимому записи, либо к отрывку:

add_filter('the_content', 'replace_text_wps'); 
add_filter('the_excerpt', 'replace_text_wps');

Поделиться в соц. сетях:

  • Похожие записи
  • Комментарии
  • Вложения
Хуки WordPress

Хуки WordPress

Хуки WordPress — важнейший элемент функционирования ядра WordPress. Хуки (зацепы) действуют следующим образом: система WP содержит множество различных хуков (фильтров и экшенов), которые являются частью структуры ядра и имеют определенную Читать далее »

Поиск по сайту

Поиск по сайту

Поиск по сайту — важнейший инструмент позволяющий находить на сайте любую информацию. Relevanssi Relevanssi — A Better Search — плагин расширяющий функционал поиска Стандартная форма поиска wordpress CSS Формы поиска Читать далее »

/
Breadcrumbs

Breadcrumbs

Breadcrumbs (хлебные крошки) — это удобный инструмент навигации, без которого не обходится ни один современный сайт. На данный момент есть несколько альтернативных вариантов крошек от разных разработчиков, помимо нескольких десятков Читать далее »

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

Пока нет комментариев. Будь первым!

Расширение функционала WP Расширение функционала WP Расширение функционала WP
Открывать запись во всплывающем окне
Рекомендации для васОткрывать запись во всплывающем окнеOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.