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

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

HIT

14.06.2015

4526

Разгрузка 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');

Удалить слово Архив: из заголовков архивов

// Удалить слово Архив из заголовков архивов
add_filter( 'get_the_archive_title', function( $title ){
	return preg_replace('~^[^:]+: ~', '', $title );
});
[site-socialshare]
  • Похожие записи
  • Комментарии
  • Вложения
Поиск по сайту

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

Поиск по сайту — важнейший инструмент позволяющий находить на сайте любую информацию. Плагины расширяющие функционал поиска Relevanssi — A Better Search (100 000) — улучшает и расширяет результаты поиска, более Читать далее »

/
Разделение записей по алфавиту

Разделение записей по алфавиту

Реализуем сортировку и разделение записей по алфавиту. Данный функционал может пригодится для вывода и разделения по алфавиту категорий. Можно разделять города в разделе Где купить и т.д. Описанное решение данной Читать далее »

Шорткоды WP

Шорткоды WP

Создание шорткода Шорткоды очень удобная функция WP. Одним из важнейших преимуществ является то, что если по каким-либо причинам сама функция не работает или отсутствует — ошибки не произойдет. Шорткод перестанет Читать далее »

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

Notice: Функция WP_Styles::add вызвана неправильно. Стиль с дескриптором "editor-buttons" был поставлен в очередь с незарегистрированными зависимостями: dashicons. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 6.9.1.) in /home/t/tiberi6w/opttour.ru/public_html/wp-includes/functions.php on line 6170

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

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