Как создать пользовательскую категорию в WordPress и настроить подгрузку статей?

Как я могу создать кастомную категорию статей, в которой при нажатии на миниатюру статьи страница не будет перезагружаться, а статья будет открываться прямо в этой же категории? Я хочу создать два блока: большой блок под статью и правый блок для слайдера миниатюр. Пример реализации, который я хочу достичь, представлен здесь: https://secondarymedia.cargo.site/01. Если у кого-то уже есть опыт с подобной задачей, поделитесь, пожалуйста.
  • 20 декабря 2023 г. 9:27
Ответы на вопрос 1
Чтобы создать пользовательскую категорию в WordPress, вам понадобится создать таксономию. Для этого вы можете использовать функцию register_taxonomy(). Вот пример:

```php
function custom_category_taxonomy() {
    $labels = array(
        'name' => 'Custom Categories',
        'singular_name' => 'Custom Category',
        'menu_name' => 'Custom Categories',
    );

    $args = array(
        'labels' => $labels,
        'public' => true,
        'hierarchical' => true,
    );

    register_taxonomy('custom_category', array('post'), $args);
}
add_action('init', 'custom_category_taxonomy');
```

Вы можете добавить этот код в functions.php вашей активной темы или в файл плагина. После этого на вашем сайте появится новая таксономия "Custom Categories", и вы сможете присваивать свои статьи этим категориям.

Для подгрузки статей без перезагрузки страницы вам понадобится использовать AJAX. В примере сайта, который вы предоставили, используется библиотека jQuery и функция load(), чтобы подгружать контент. Вот пример, как это можно сделать:

```javascript
jQuery('.thumbnail').click(function(e) {
    e.preventDefault();
    var postUrl = jQuery(this).attr('href');
    jQuery('#content').load(postUrl + ' .single-post');
});
```

Этот код будет подгружать содержимое статьи с классом .single-post и заменять им содержимое элемента с id #content.

Для создания двух блоков (большой блок под статью и правый блок для слайдера миниатюр) вам нужно будет изменить шаблон вашей темы. Вы можете создать новый шаблон с помощью файла template-parts/custom-category.php. В этом файле вы можете разместить HTML-код для двух блоков и использовать функцию get_template_part() для его включения в другие файлы шаблона.

Вот пример файлов шаблона:

single.php:
```php
<?php get_header(); ?>
<div id="content">
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
        <div class="single-post">
            <!-- контент статьи -->
        </div>
    <?php endwhile; endif; ?>
</div>
<?php get_footer(); ?>
```

category.php:
```php
<?php get_header(); ?>
<div id="content">
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
        <div class="single-post">
            <!-- контент статьи -->
        </div>
    <?php endwhile; endif; ?>

    <div id="slider">
        <!-- слайдер миниатюр -->
    </div>
</div>
<?php get_footer(); ?>
```

Примеры кода выше являются общими направлениями, и вам может потребоваться дополнительная настройка для вашей конкретной ситуации. Вам также потребуется стилизовать блоки с помощью CSS, чтобы они выглядели, как вы хотите.
Похожие вопросы