Верх страницы
Обложка к записи Доработка темы DooPlay
Время для прочтения: 1 мин. 17 сек.

Доработка темы DooPlay

Платная тема DooPlay под WordPress является лидером среди инструментов для создания сайтов видео тематики (фильмы, сериалы, ТВ шоу). Предлагаю несколько трюков по её оптимизации.

Рейтинг в эпизодах

Голосование в виде звёзд в теме DooPlay присутствует только на страницах сезонов, а в эпизодах его нет, добавим:

/**
 * Вставить голосование звёздами в
 * эпизоды темы DooPlay.
 *
 * @author Mikhail Kobzarev <mikhail@kobzarev.com>
 */
add_filter(
	'the_content',
	function ( $content ) {

		if ( is_singular( 'episodes' ) ) {
			$rating  = sprintf( '<div class="starstruck-ptype">%s</div>', starstruck_post_display() );
			$content = $rating . $content;
		}

		return $content;
	}
);

Очистка тулбара WordPress

По умолчанию тулбар WordPress забит всякими не нужными ссылками, уберём лишние:

/**
 * Удалить пункты меню из тулбара WordPress.
 *
 * @param WP_Admin_Bar $wp_admin_bar объект тулбара
 * @author Mikhail Kobzarev <mikhail@kobzarev.com>
 */
add_action(
	'admin_bar_menu',
	function ( WP_Admin_Bar $wp_admin_bar ) {
		$wp_admin_bar->remove_node( 'wp-logo' );
		$wp_admin_bar->remove_node( 'customize' );
		$wp_admin_bar->remove_node( 'comments' );
		$wp_admin_bar->remove_node( 'wpseo-menu' );
		$wp_admin_bar->remove_node( 'search' );
	},
	999
);

Добавление сущностей в меню

При создании меню через админку WordPress в него нельзя добавить сущности DooPlay (ТВ Шоу, Сезоны, Эпизоды и фильмы), исправим это:

/**
 * Разрешить добавлять сущности DooPlay в меню.
 *
 * @author Mikhail Kobzarev <mikhail@kobzarev.com>
 */
add_filter(
	'register_post_type_args',
	function ( $args, $post_type ) {

		if ( in_array( $post_type, [ 'movies', 'tvshows', 'seasons', 'episodes' ] ) ) {
			$args['show_in_nav_menus']   = true;
		}

		return $args;
	},
	12,
	2
);

Поиск сущностей

Во время стандартного поиска по сайту в WordPress в теме DooPlay не находятся её сущности (ТВ Шоу, Сезоны, Эпизоды и фильмы), исправим это:

/**
 * Разрешить поиск сущности DooPlay на сайте.
 *
 * @author Mikhail Kobzarev <mikhail@kobzarev.com>
 */
add_filter(
	'register_post_type_args',
	function ( $args, $post_type ) {

		if ( in_array( $post_type, [ 'movies', 'tvshows', 'seasons', 'episodes' ] ) ) {
			$args['exclude_from_search'] = false;
		}

		return $args;
	},
	12,
	2
);

Включение редактора Gutenberg

По какой-то неведанной причине редактор блоков Gutenberg специально отключен внутри темы DooPlay для всех её произвольных типов записей. Вернём всё назад:

/**
 * Включить редактор Gutenberg для сущностей DooPlay.
 *
 * @author Mikhail Kobzarev <mikhail@kobzarev.com>
 */
add_filter(
	'register_post_type_args',
	function ( $args, $post_type ) {

		if ( in_array( $post_type, [ 'movies', 'tvshows', 'seasons', 'episodes' ] ) ) {
			$args['show_in_rest'] = false;
		}

		return $args;
	},
	12,
	2
);

add_filter(
	'use_block_editor_for_post',
	function ( $bool, WP_Post $post ) {
		$default = false;

		if ( in_array( $post->post_type, [ 'movies', 'tvshows', 'seasons', 'episodes', 'post' ] ) ) {
			return true;
		}

		return $default;
	},
	20,
	2
);

Удаление не используемых сущностей

Из коробки в теме DooPlay много сущностей, которые по факту вам не нужны, например, сайт посвящен только сериалам (сезоны и эпизоды), соответственно, произвольный тип записи «Фильмы» можно удалить:

/**
 * Удалить не используемую сущность movies.
 *
 * @author Mikhail Kobzarev <mikhail@kobzarev.com>
 */
add_action(
	'init',
	function() {
		unregister_post_type( 'movies' );
	},
	2
);

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, Opencart, DLE, Laravel, Moonshine, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

18 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
George
George
4 лет назад

Спасибо! Полезная тема, надо будет опробовать 🙂

s
s
4 лет назад

Привет, нашел только куда вставить код с рейтингом. Подскажите, пожалуйста, куда вставлять другие?

Gokhan
Gokhan
4 лет назад

Hello sir, i have dooplay 2.3.3 how to make this like site: http://www.dizimodu.com/ pls help me?

Gokhan
Gokhan
4 лет назад

i want to edit dooplay this like site : http://www.dizimodu.com how to move sidebar right to left.

Gokhan
Gokhan
4 лет назад
Ответить на  Кобзарёв Михаил

Thank you sir and header code pls?

Gokhan
Gokhan
4 лет назад

Header code my friend pls?

Sotipsters
Sotipsters
3 лет назад

Hello.

Thanks for all these tips.

Can you tell me how to modify the search bar ??. Add actors and directors in the research

Sotipsters
Sotipsters
3 лет назад
Ответить на  Кобзарёв Михаил

??? its a script for search in Atom theme

Роман
Роман
1 год назад

А как бы в этой теме добавить тайтлы к ссылкам в виджете?

Т.е. категория выводится ссылкой «Боевики». Тайтла нету. Я хочу добавить тайтл «Смотреть онлайн Боевики»
Сам кусок «Смотреть онлайн» будет для всех категорий одинаковый.

# Get genres
function doo_li_genres(){
    $transient = get_transient('dooplay_genres_widget');
    if(false === $transient){
        $args = array(
            'post_type'    => '',
            'taxonomy'     => 'genres',
            'orderby'      => 'DESC',
            'show_count'   => 1,
            'hide_empty'   => false,
            'pad_counts'   => 0,
            'hierarchical' => 1,
            'exclude'      => '55',
            'title_li'     => '',
            'echo'         => 0
        );
        $links = wp_list_categories($args);
        $links = str_replace('</a> (', '</a> <i>', $links);
        $transient = str_replace(')', '</i>', $links);
        set_transient('dooplay_genres_widget', $transient, MINUTE_IN_SECONDS*5);
    }
    echo $transient;
} 
Roman
Roman
1 год назад
Ответить на  Кобзарёв Михаил

Если именно так, то нет, не работает

$links = str_replace('<a>', '<a title=Ваш тайтл', $links );
Предыдущая запись

Давайте дружить
в Telegram

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы