Intereting Posts
Добавьте «Последнее изменение» и вложения (Да / Нет) в колонку пользователей WordPress Возможно ли разместить сайт WordPress полностью на Cloudfront? Изменить порядок отправки по шаблону таксономии Кнопка кнопки администратора создает новую Что не так с этим Shortcode? Я попал в неправильное место внутри контента Лучший способ использования категорий и пользовательских полей? Каковы преимущества использования mu-plugin Пользовательские данные образуют другую систему, объединенную с wordpress Как получить SQL изменений, внесенных в базу данных, из обновления или обновления? Запрос WP Query на более чем 2000 сообщений Почему каждый подключает add_rewrite_rule для init Улучшен ли WordPress с установленным завитком? Поиск по идентификатору сообщения и отображению содержимого сообщения в результатах поиска условно загрузить javascript и CSS для do_action () звонков из плагина Возможно ли, что WordPress не распознает URL-адреса категории?

Добавление пользовательских значений в Permalinks через пользовательские поля и сообщения

У меня есть два пользовательских типа сообщений 1, называемых «дынные партии», а другой – «категории-участники». для сообщений в дынных сторонах я создаю метаболизм, который заселяется из всех сообщений из партий-категорий. Затем я смог переписать URL-адрес дыни-паритов на сайт www.domain.com/parties/christmas-party/thames-river-party

где рождественская вечеринка представляет собой персонализированный пост из партийных категорий.

Я могу получить доступ к этой странице (www.domain.com/parties/christmas-party/thames-river-party), но когда я попытаюсь перейти на сайт www.domain.com/parties/christmas-parties, он перенаправляется на главную страницу, а не пользовательский пост, где моя проблема. Я должен был сделать специальный переписывать для этого, потому что, когда я использую параметр перезаписи, когда я регистрирую тип сообщения, я получаю 404 на партийном сообщении.

вот мой код, который создает все пользовательские типы сообщений и переписывает правила:

function register_custom_post_types() { $args = array( 'labels' => array( 'name' => __( 'Parties' ), 'singular_name' => __( 'Party' ) ), 'menu_position' => 50, 'public' => true, 'has_archive' => 'true', 'hierarchical' => true, 'taxonomies' => array('post_tag'), 'capability_type' => 'post', 'rewrite' => false, 'supports' => array('title', 'editor', 'thumbnail', 'revisions', 'page-attributes') ); register_post_type('melon-parties', $args); $args = array( 'labels' => array( 'name' => __( 'Type of Parties' ), 'singular_name' => __( 'Type of Party' ) ), 'menu_position' => 50, 'public' => true, 'has_archive' => 'true', 'hierarchical' => true, 'show_ui' => true, 'publicly_queryable' => true, 'capability_type' => 'page', 'supports' => array('title', 'thumbnail', 'revisions', 'page-attributes'), 'rewrite' => false ); register_post_type('party-categories', $args); $args = array( 'labels' => array( 'name' => __( 'Home Slider' ), 'singular_name' => __( 'Home Slide' ) ), 'menu_position' => 50, 'public' => false, 'show_ui' => true, 'hierarchical' => false, 'publicly_queryable' => true, 'capability_type' => 'post', 'supports' => array('title', 'editor', 'thumbnail', 'revisions', 'page-attributes') ); register_post_type('melon-home-slider', $args); $args = array( 'labels' => array( 'name' => __( 'Case Studies' ), 'singular_name' => __( 'Case Study' ) ), 'menu_position' => 50, 'public' => true, 'hierarchical' => false, 'publicly_queryable' => true, 'capability_type' => 'post', 'rewrite' => array('with_front' => false, 'slug' => 'case-studies'), 'supports' => array('title', 'editor', 'thumbnail', 'revisions', 'page-attributes') ); register_post_type('melon-case-studies', $args); } add_action( 'init', 'register_custom_post_types' ); add_action('init', 'tdd_add_rewrite_rules'); function tdd_add_rewrite_rules() { // Register custom rewrite rules global $wp_rewrite; $wp_rewrite->add_rewrite_tag('%melon-parties%', '([^/]+)', 'melon-parties='); $wp_rewrite->add_rewrite_tag('%parties_categories%', '([^/]+)', 'cmb-event_category='); $wp_rewrite->add_permastruct('melon-parties', '/parties/%parties_categories%/%melon-parties%', false); } add_filter('post_type_link', 'tdd_permalinks', 10, 3); function tdd_permalinks($permalink, $post, $leavename) { $no_data = 'no-category'; $post_id = $post->ID; if($post->post_type != 'melon-parties' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft'))) return $permalink; $var1 = get_post_meta($post_id, 'cmb-event_category', true); $var1 = sanitize_title($var1); if(!$var1) { $var1 = $no_data; } $permalink = str_replace('%parties_categories%', $var1, $permalink); return $permalink; } add_action('init', 'partyCategoryRewriteRules'); function partyCategoryRewriteRules() { // Register custom rewrite rules global $wp_rewrite; $wp_rewrite->add_rewrite_tag('%party-categories%', '([^/]+)', 'party-categories='); $wp_rewrite->add_permastruct('party-categories', '/parties/%category%', false); } add_filter('post_type_link', 'partyCategoryPermalinks', 10, 3); function partyCategoryPermalinks($permalink, $post, $leavename) { $no_data = 'no-category'; $post_id = $post->ID; if($post->post_type != 'party-categories' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft'))) return $permalink; $var1 = $post->post_name; $var1 = sanitize_title($var1); if(!$var1) { $var1 = $no_data; } $permalink = str_replace('%category%', $var1, $permalink); return $permalink; } 

Пожалуйста, может кто-то посоветовать, куда я иду не так. будет очень благодарен.

Я исправил эту проблему, добавив правило перезаписи в мой файл functions.php вверху:

 function melon_rewrites($rules) { $new_rules = array( 'parties/([^/]*)/([^/]*)$' => 'index.php?melon-parties=$matches[2]' ); $rules = $new_rules + $rules; return $rules; } add_filter('rewrite_rules_array', 'melon_rewrites'); 

Затем я изменил свой cpt, чтобы разрешить query_var:

 function register_custom_post_types() { $args = array( 'labels' => array( 'name' => __( 'Parties' ), 'singular_name' => __( 'Party' ) ), 'menu_position' => 50, 'public' => true, 'has_archive' => 'true', 'hierarchical' => true, 'taxonomies' => array('party-tags'), 'capability_type' => 'post', 'query_var' => true, 'rewrite' => false, 'supports' => array('title', 'editor', 'thumbnail', 'revisions', 'page-attributes') ); register_post_type('melon-parties', $args); $args = array( 'labels' => array( 'name' => __( 'Type of Parties' ), 'singular_name' => __( 'Type of Party' ) ), 'menu_position' => 50, 'public' => true, 'has_archive' => 'true', 'hierarchical' => true, 'show_ui' => true, 'publicly_queryable' => true, 'capability_type' => 'page', 'query_var' => true, 'supports' => array('title', 'thumbnail', 'revisions', 'page-attributes'), 'rewrite' => false ); register_post_type('party-categories', $args); $args = array( 'labels' => array( 'name' => __( 'Home Slider' ), 'singular_name' => __( 'Home Slide' ) ), 'menu_position' => 50, 'public' => false, 'show_ui' => true, 'hierarchical' => false, 'publicly_queryable' => true, 'capability_type' => 'post', 'supports' => array('title', 'editor', 'thumbnail', 'revisions', 'page-attributes') ); register_post_type('melon-home-slider', $args); $args = array( 'labels' => array( 'name' => __( 'Case Studies' ), 'singular_name' => __( 'Case Study' ) ), 'menu_position' => 50, 'public' => true, 'hierarchical' => false, 'publicly_queryable' => true, 'capability_type' => 'post', 'rewrite' => array('with_front' => false, 'slug' => 'case-studies'), 'supports' => array('title', 'editor', 'thumbnail', 'revisions', 'page-attributes') ); register_post_type('melon-case-studies', $args); } add_action( 'init', 'register_custom_post_types' ); 

Я также должен был внести пару изменений в мои правила перезаписи, поскольку я фактически не указывал на мой cpt:

 add_action('init', 'tdd_add_rewrite_rules'); function tdd_add_rewrite_rules() { // Register custom rewrite rules add_rewrite_tag('%melon-parties%', '([^/]+)'); add_rewrite_tag('%party-categories%', '([^/]+)'); add_permastruct('melon-parties', 'parties/%party-categories%/%melon-parties%', false); } add_filter('post_type_link', 'tdd_permalinks', 10, 3); function tdd_permalinks($permalink, $post, $leavename) { $no_data = 'no-category'; $post_id = $post->ID; if($post->post_type != 'melon-parties' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft'))) return $permalink; $var1 = get_post_meta($post_id, 'cmb-event_category', true); $var1 = get_the_title($var1); $var1 = sanitize_title($var1); if(!$var1) { $var1 = $no_data; } $permalink = str_replace('%party-categories%', $var1, $permalink); return $permalink; } add_action('init', 'partyCategoryRewriteRules'); function partyCategoryRewriteRules() { // Register custom rewrite rules global $wp_rewrite; $wp_rewrite->add_rewrite_tag('%party-categories%', '([^/]+)', 'party-categories='); $wp_rewrite->add_permastruct('party-categories', '/parties/%party-categories%', false); } add_filter('post_type_link', 'partyCategoryPermalinks', 10, 3); function partyCategoryPermalinks($permalink, $post, $leavename) { $no_data = 'no-category'; $post_id = $post->ID; if($post->post_type != 'party-categories' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft'))) return $permalink; $var1 = $post->post_name; $var1 = sanitize_title($var1); if(!$var1) { $var1 = $no_data; } $permalink = str_replace('%party-categories%', $var1, $permalink); return $permalink; } 

Теперь моя структура URL правильная