HEX
Server: Apache
System: Linux web5.visualcom.es 4.18.0-477.21.1.lve.1.el8.x86_64 #1 SMP Tue Sep 5 23:08:35 UTC 2023 x86_64
User: ensaco.es (10019)
PHP: 8.3.32
Disabled: opcache_get_status
Upload Files
File: /var/www/vhosts/ensaco.es/httpdocs/wp-content/plugins/itempress/inc/post-type.php
<?php

if (!defined('ABSPATH')) {
    exit;
}

function itempress_register_content_types(): void
{
    register_taxonomy('itempress_category', ['itempress_product'], [
        'labels' => [
            'name'          => 'Item Categories',
            'singular_name' => 'Item Category',
        ],
        'public'         => true,
        'hierarchical'   => true,
        'show_in_rest'   => true,
        'rewrite'        => [
            'slug'       => 'item-category',
            'with_front' => false,
        ],
    ]);

    register_taxonomy('itempress_tag', ['itempress_product'], [
        'labels' => [
            'name'          => 'Item Tags',
            'singular_name' => 'Item Tag',
        ],
        'public'         => true,
        'hierarchical'   => false,
        'show_in_rest'   => true,
        'rewrite'        => [
            'slug'       => 'item-tag',
            'with_front' => false,
        ],
    ]);

    register_post_type('itempress_product', [
        'labels' => [
            'name'          => 'Items',
            'singular_name' => 'Item',
            'add_new_item'  => 'Add New Item',
            'edit_item'     => 'Edit Item',
        ],
        'public'       => true,
        'show_in_menu' => false,
        'has_archive'  => 'item',
        'rewrite'      => [
            'slug'       => 'item',
            'with_front' => false,
            'pages'      => true,
            'feeds'      => false,
        ],
        'supports'     => ['title', 'editor', 'thumbnail', 'custom-fields', 'comments'],
        'show_in_rest' => true,
        'taxonomies'   => ['itempress_category', 'itempress_tag'],
    ]);

    add_rewrite_rule('^images/([a-zA-Z0-9\-~]+)/([^/]+)\.webp/?$', 'index.php?worker_img_id=$matches[1]', 'top');
}

add_action('init', 'itempress_register_content_types', 0);

add_filter('query_vars', function (array $vars): array {
    $vars[] = 'itempress_archive';
    $vars[] = 'itempress_tag_archive';
    $vars[] = 'itempress_category_archive';
    $vars[] = 'worker_img_id';
    $vars[] = 'worker_img_hash';
    return $vars;
});

add_action('pre_get_posts', function ($query) {
    if (is_admin() || !$query->is_main_query()) {
        return;
    }

    if (get_query_var('itempress_archive') ||
        get_query_var('itempress_tag_archive') ||
        get_query_var('itempress_category_archive')) {

        $query->set('post_type', 'itempress_product');

        if (get_query_var('itempress_tag_archive')) {
            $query->set('tax_query', [
                [
                    'taxonomy' => 'itempress_tag',
                    'field'    => 'slug',
                    'terms'    => get_query_var('itempress_tag_archive'),
                ],
            ]);
        }

        if (get_query_var('itempress_category_archive')) {
            $query->set('tax_query', [
                [
                    'taxonomy' => 'itempress_category',
                    'field'    => 'slug',
                    'terms'    => get_query_var('itempress_category_archive'),
                ],
            ]);
        }
    }
});