Доработка темы 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
);