Также не стоит исключать вариант, что, возможно, будет быстрее и дешевле заменить названия классов в верстке.
ul.submenu>li>a
, но в верстке подменю формируется div.dropdown-menu>a.dropdown-item
. Сейчас пробовал адаптировать класс Walker, брал с kama — классы не встали (сайт крашился), взял класс из include/, как раз таки не смог поменять разметку ul на div :(ul.submenu
в div.dropdown-menu
li>a
в a.dropdown-item
// Запрет использования customize (.../wp-admin/customize.php)
add_filter( 'map_meta_cap', function ( $caps, $cap, $user_id, $args ) {
if ( 'customize' == $cap ) {
return [ 'do_not_allow' ];
}
return $caps;
}, 10, 4 );
return [ 'do_not_allow' ];
add_filter( 'map_meta_cap', function ( $caps, $cap, $user_id, $args ) {
if ( 'customize' == $cap ) {
return wp_redirect( home_url() );
}
return $caps;
}, 10, 4 );
Быстро делается на этапе разработки, клиенту очень удобно визуально все настраивать c предпросмотром.
/wp-admin/customize.php
, то появиться предупреждение:// Удаление пункта «Настроить» в административной части сайта
add_action( 'admin_menu', function (){
global $submenu;
if ( isset( $submenu['themes.php'] ) ) {
foreach ( $submenu['themes.php'] as $index => $menu_item ) {
if ( in_array( 'customize', $menu_item ) ) {
unset( $submenu['themes.php'][ $index ] );
}
}
}
});
// Запрет использования customize (.../wp-admin/customize.php)
add_filter( 'map_meta_cap', function ( $caps, $cap, $user_id, $args ) {
if ( 'customize' == $cap ) {
return [ 'do_not_allow' ];
}
return $caps;
}, 10, 4 );
display: none
gпочему-то не сработал. Хотя класс у пункта настроить такой. function get_events()
{
global $wpdb;
$events = $wpdb->get_results(
"
SELECT post_id, post_status, meta_value
FROM $wpdb->postmeta
JOIN $wpdb->posts
ON $wpdb->postmeta.post_id=$wpdb->posts.id
WHERE meta_key = 'data-provedeniya' AND post_status = 'publish'
"
);
add_action( 'wp', 'remove_post_type_events' );
function remove_post_type_events()
{
$params = [
'posts_per_page' => -1,
'post_type' => 'events',
'post_status' => [
'publish',
'future',
'draft',
'pending',
'private',
'trash',
'auto-draft',
'inherit',
]
];
$query = new WP_Query($params);
if ($query->have_posts()) :
while ($query->have_posts()) : $query->the_post();
wp_delete_post($query->post->ID, true);
endwhile;
endif;
wp_reset_postdata();
}
3 потратил, что бы почти решить задачу. По вашему совету запилил адаптированный Walker и вуаля! Встал без каких либо проблем. Особенно доставило, встроенная шема разметка :) прямо находка блин)
Спасибо за помощь!
P.S. насчет Timber почитал, пока думаю нет необходимости, но штука достаточно гибкая.