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'),
],
]);
}
}
});