__( 'Primary Menu', 'my-theme' ), 'footer-menu' => __( 'Footer Menu', 'my-theme' ) ) ); } add_action( 'after_setup_theme', 'theme_setup' ); //crops function my_custom_image_sizes() { add_image_size( 'small-thumbnail', 300, 200, true ); // Кроп до 300x200 add_image_size( 'medium-thumbnail', 600, 400, true ); // Кроп до 600x400 add_image_size( 'large-thumbnail', 1200, 800, true ); // Кроп до 1200x800 } //add_action( 'after_setup_theme', 'my_custom_image_sizes' ); // Создание нового типа записи "Каталог" function register_catalog_post_type() { $labels = array( 'name' => 'Каталог', 'singular_name' => 'Элемент каталога', 'menu_name' => 'Каталог', 'name_admin_bar' => 'Элемент каталога', 'add_new' => 'Добавить новый', 'add_new_item' => 'Добавить новый элемент каталога', 'new_item' => 'Новый элемент каталога', 'edit_item' => 'Редактировать элемент каталога', 'view_item' => 'Просмотреть элемент каталога', 'all_items' => 'Все элементы каталога', 'search_items' => 'Искать в каталоге', 'parent_item_colon' => 'Родительский элемент:', 'not_found' => 'Элементы каталога не найдены.', 'not_found_in_trash' => 'В корзине элементы каталога не найдены.' ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => array('slug' => 'catalog'), 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => 5, 'menu_icon' => 'dashicons-products', 'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'comments', 'custom-fields'), 'taxonomies' => array('category') // Подключаем стандартные категории ); register_post_type('catalog', $args); } add_action('init', 'register_catalog_post_type'); function get_first_subcategory( $post_id ) { // Получаем все категории поста $categories = get_the_category( $post_id ); if ( !empty( $categories ) ) { // Проходим по каждой категории foreach ( $categories as $category ) { // Проверяем, является ли категория подрубрикой (если у неё есть родитель) if ( $category->parent != 0 ) { // Возвращаем массив с названием и ссылкой на подрубрику return array( 'name' => esc_html( $category->name ), 'url' => get_category_link( $category->term_id ), ); } } } // Если подрубрика не найдена, возвращаем null return null; } function custom_posts_per_page($query) { if (!is_admin() && $query->is_main_query()) { // Для главной страницы if (is_home() || is_front_page()) { $query->set('cat', 174); $query->set('posts_per_page', 18); $query->set('post_status', 'publish'); $query->set('ignore_sticky_posts', 1); $query->set('meta_query', array( array( 'key' => '_thumbnail_id', 'compare' => 'EXISTS' ) )); } // Для архивов рубрик и тегов if (is_category() || is_tag()) { $query->set('posts_per_page', 18); $query->set('meta_query', array( array( 'key' => '_thumbnail_id', 'compare' => 'EXISTS' ) )); } } } add_action('pre_get_posts', 'custom_posts_per_page'); // Добавляем slug категории в body class для архивов и постов function add_category_slug_to_body_class($classes) { // Для архивов рубрик if (is_category()) { $category = get_queried_object(); // Рубрики с обрезкой (cover) - укажите slug нужных рубрик $cover_categories = array('news'); $is_cover = false; if (in_array($category->slug, $cover_categories)) { $is_cover = true; } if (!$is_cover && $category->parent) { $parent_id = $category->parent; while ($parent_id) { $parent = get_category($parent_id); if (in_array($parent->slug, $cover_categories)) { $is_cover = true; break; } $parent_id = $parent->parent; } } if (!$is_cover) { $classes[] = 'image-portrait'; } } // Для одиночных постов if (is_single()) { $categories = get_the_category(); // Рубрики с обрезкой (cover) $cover_categories = array('news'); $is_cover = false; foreach ($categories as $category) { if (in_array($category->slug, $cover_categories)) { $is_cover = true; break; } // Проверяем родительские категории if (!$is_cover && $category->parent) { $parent_id = $category->parent; while ($parent_id) { $parent = get_category($parent_id); if (in_array($parent->slug, $cover_categories)) { $is_cover = true; break; } $parent_id = $parent->parent; } } if ($is_cover) break; } if (!$is_cover) { $classes[] = 'image-portrait'; } } return $classes; } add_filter('body_class', 'add_category_slug_to_body_class'); // Добавляем классы к каждому посту в цикле для архивов тегов function add_category_class_to_posts($classes, $class, $post_id) { // Только для архивов тегов if (is_tag()) { $categories = get_the_category($post_id); // Рубрики с обрезкой (cover) $cover_categories = array('news'); $is_cover = false; foreach ($categories as $category) { if (in_array($category->slug, $cover_categories)) { $is_cover = true; break; } // Проверяем родительские категории if (!$is_cover && $category->parent) { $parent_id = $category->parent; while ($parent_id) { $parent = get_category($parent_id); if (in_array($parent->slug, $cover_categories)) { $is_cover = true; break; } $parent_id = $parent->parent; } } if ($is_cover) break; } if (!$is_cover) { $classes[] = 'image-portrait'; } } return $classes; } add_filter('post_class', 'add_category_class_to_posts', 10, 3); require_once 'inc/opengraph.php'; //опенграф require_once 'inc/postdate.php'; //постдаты