Пользовательский тип Post Permalinks для поддержки нескольких структур URL -адреса в WordPressPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Пользовательский тип Post Permalinks для поддержки нескольких структур URL -адреса в WordPress

Сообщение Anonymous »

У меня есть следующие требования к шаблонам URL: < /p>
  • .com/CPT/ (Архив пользовательского типа Post)
  • .com/CPT/post-name (отдельный пост в пользовательском типе сообщения)
  • .com/CPT/category-name (архив категории CPT)
  • .com/CPT/category-name/post-name (отдельный пост в пользовательской категории типа пост)
Это структуры, которые мне нужны. До сих пор 1, 3 и 4 работают должным образом - но я не могу получить 2, чтобы сделать что -либо, кроме как бросить 404. разрывы и бросают 404 или перенаправления на домашнюю страницу. Возможно ли это исправить, поэтому все четыре постоянные ссылки функциональны? Работать в сочетании с другими постоянными структурами, которые мне нужны (3 и 4). < /p>
Я прочитал и попытался использовать здесь другое решение - но опять же, они проигнорировали необходимость в структуре of .com/cpt/post-name .
По сути, мне нужно убедиться, что слизняк для пользовательского типа поста и слизняка для пользовательской категории типа Post Type То же самое - вот несколько конкретных примеров значимых URL -адресов: < /p>

[*].com/services (Архив пользовательского типа Post)
[*].com/services/botox (отдельный пост пользовательского типа сообщения)
[*].com/services/injectables (Архив пользовательского типа Post Type Custom Таксономия)
.com/services/injectables/botox (отдельная публикация пользовательской публикации типа «Пользовательская таксономия») 2 Структура: < /p>
// Register the Custom Post Type
function register_custom_post_type() {
$args = array(
'labels' => array(
'name' => 'Services',
'singular_name' => 'Service',
),
'public' => true,
'has_archive' => true,
'rewrite' => array(
'slug' => 'services', // Base slug for your CPT
'with_front' => false,
'hierarchical' => true, // Allows for /services/category/post
),
'show_in_rest' => true, // Enable Gutenberg editor if needed
'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields' ),
'taxonomies' => array('services_category'), // Attach custom taxonomy if needed
);

register_post_type('services', $args);
}
add_action('init', 'register_custom_post_type');

// Register Custom Taxonomy for the Custom Post Type
function register_custom_taxonomy() {
$args = array(
'labels' => array(
'name' => 'Services Categories',
'singular_name' => 'Services Category',
),
'public' => true,
'rewrite' => array(
'slug' => 'services', // This will make the taxonomy appear under /services/category-name/
'with_front' => false,
'hierarchical' => true, // Ensure categories are hierarchical (like regular categories)
),
'hierarchical' => true,
);

register_taxonomy('services_category', 'services', $args);
}
add_action('init', 'register_custom_taxonomy');

**// Custom Rewrite Rules to Match the Permalink Structure
function custom_rewrite_rules($rules) {
$new_rules = array(
// CPT Archive: /services/
'services/?$' => 'index.php?post_type=services',

// Single CPT Post: /services/post-name/
'services/([^/]+)/?$' => 'index.php?post_type=services&name=$matches[1]',

// Custom Taxonomy Archive: /services/category-name/
// This rule should be placed *after* the CPT single post rule to avoid conflicts
'services/([^/]+)/?$' => 'index.php?taxonomy=services_category&term=$matches[1]',

// Single CPT Post within a Category: /services/category-name/post-name/
'services/([^/]+)/([^/]+)/?$' => 'index.php?post_type=services&services_category=$matches[1]&name=$matches[2]',
);

return $new_rules + $rules;
}
add_filter('rewrite_rules_array', 'custom_rewrite_rules');

// Add rewrite tag for custom taxonomy (to ensure taxonomy permalinks work)
function add_custom_rewrite_tags() {
add_rewrite_tag('%services_category%', '([^&]+)');
}
add_action('init', 'add_custom_rewrite_tags');


Подробнее здесь: https://stackoverflow.com/questions/794 ... -wordpress
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»