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

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

HIT

14.06.2015

1438

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


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

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

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

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

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');

Тэги:

Поделится информацией с друзьями

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

Практикум по функциям

В процессе штудирования книги «Изучаем PHP 7» (Дэвид Скляр) появилась мысль помечать некоторые моменты, касающиеся как функций, так и php в целом. Краткий обзор функций Если задать простую функцию function Читать далее »

Атрибуты товара WC

Атрибуты товара WC

В интернет-магазине Woocommerce есть функционал атрибутов. Атрибуты товара — это дополнительные поля для различных значений. Атрибуты бывают 2-х типов: текстовый (text) и с выбором значения (select). Архив значения атрибута Для Читать далее »

/
Список меток текущей категории

Список меток текущей категории

Формируем и выводим список меток текущей категории. Вариант в файл funсtion.php function get_category_tags($cats) { global $wpdb; $tags = $wpdb->get_results (" SELECT DISTINCT terms2.term_id as tag_id, terms2.name as tag_name, t2.count as Читать далее »

/

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

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

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