13

Березень, 2024

Як додати кастомний тип запису WordPress без коду (та використовуючи код)

Сьогодні виходить черговий урок по роботі з системою WordPress.

Тема відноситься до структурування даних сайту, а саме  – створення Custom Post Type за допомогою плагіну (як простіше), та за допомогою коду  – як ми рекомендуємо.

За допомогою плагіну може зробити любий початківець і в цьому немає майже нічого поганого, якщо на ващому сайті використовується 3, 5 та нехай навіть 10 плагінів. Але якщо їх там 30+, то це вже досить велике перевантаження системи.

Ми рекомендуємо максимум всього робити через код, тому й хочемо запропонувати вам ознайомитись, як можна з function.php додати кастомний тип запису Новини та Відео в ваш проєкт.

Приємного перегляду:

 

 

// Custom type
// Добавляем кастомный тип записи
function news_post_type() {
    $labels = array(
        ‘name’               => _x( ‘Новини’, ‘post type general name’, ‘textdomain’ ),
        ‘singular_name’      => _x( ‘Новина’, ‘post type singular name’, ‘textdomain’ ),
        ‘menu_name’          => _x( ‘Новини’, ‘admin menu’, ‘textdomain’ ),
        ‘name_admin_bar’     => _x( ‘Новина’, ‘add new on admin bar’, ‘textdomain’ ),
        ‘add_new’            => _x( ‘Додати нову’, ‘Новину’, ‘textdomain’ ),
        ‘add_new_item’       => __( ‘Додати нову Новину’, ‘textdomain’ ),
        ‘new_item’           => __( ‘Нова Новина’, ‘textdomain’ ),
        ‘edit_item’          => __( ‘Редагувати новину’, ‘textdomain’ ),
        ‘view_item’          => __( ‘Переглянути’, ‘textdomain’ ),
        ‘all_items’          => __( ‘Всі новини’, ‘textdomain’ ),
        ‘search_items’       => __( ‘Шукати’, ‘textdomain’ ),
        ‘parent_item_colon’  => __( ‘Батьківська новина:’, ‘textdomain’ ),
        ‘not_found’          => __( ‘Новини не знайдено.’, ‘textdomain’ ),
        ‘not_found_in_trash’ => __( ‘Кошик порожній.’, ‘textdomain’ )
    );
    $args = array(
        ‘labels’             => $labels,
        ‘public’             => true,
        ‘publicly_queryable’ => true,
        ‘show_ui’            => true,
        ‘show_in_menu’       => true,
        ‘query_var’          => true,
        ‘rewrite’            => array( ‘slug’ => ‘news’ ),
        ‘capability_type’    => ‘post’,
        ‘has_archive’        => true,
        ‘hierarchical’       => false,
        ‘menu_position’      => null,
        ‘supports’           => array( ‘title’, ‘editor’, ‘author’, ‘thumbnail’, ‘excerpt’, ‘comments’ )
    );
    register_post_type( ‘news_type’, $args );
}
add_action( ‘init’, ‘news_post_type’ );
// Регистрация таксономии
function news_taxonomy() {
    $labels = array(
        ‘name’                       => _x( ‘Категорії’, ‘taxonomy general name’, ‘textdomain’ ),
        ‘singular_name’              => _x( ‘Категорії’, ‘taxonomy singular name’, ‘textdomain’ ),
        ‘search_items’               => __( ‘Пошук категорії’, ‘textdomain’ ),
        ‘all_items’                  => __( ‘Всі категорії’, ‘textdomain’ ),
        ‘parent_item’                => __( ‘Батьківська категорія’, ‘textdomain’ ),
        ‘parent_item_colon’          => __( ‘Батьківська категорія:’, ‘textdomain’ ),
        ‘edit_item’                  => __( ‘Редагувати категорію’, ‘textdomain’ ),
        ‘update_item’                => __( ‘Оновити категорію’, ‘textdomain’ ),
        ‘add_new_item’               => __( ‘Додати нову’, ‘textdomain’ ),
        ‘new_item_name’              => __( ‘Нове ім\’я’, ‘textdomain’ ),
        ‘menu_name’                  => __( ‘Категорії’, ‘textdomain’ ),
    );
    $args = array(
        ‘hierarchical’          => true, // Определяет, будет ли таксономия иерархической
        ‘labels’                => $labels,
        ‘show_ui’               => true,
        ‘show_admin_column’     => true,
        ‘query_var’             => true,
        ‘rewrite’               => array( ‘slug’ => ‘news-category’ ), // Слаг URL
    );
    // Замените ‘custom_taxonomy’ на желаемое имя таксономии и ‘custom_type’ на ваш кастомный тип записи
    register_taxonomy( ‘news_taxonomy’, ‘news_type’, $args );
}
add_action( ‘init’, ‘news_taxonomy’ );

Поділитись

DO IT LLC - Розробка програмного забезпечення для бізнесу
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.