Intereting Posts
создать событие mysql при нажатии кнопки, чтобы удалить первую строку таблицы каждые 5 минут? Как можно изменить всю часть тела документа xml, загруженного в php через simplexml? Как обновить timezonedb в PHP (обновлять информацию о часовых поясах)? загрузить HTML \ PHP-страницы в div другой страницы Каков наилучший способ взглянуть на экземпляр (объект) класса PHP, чтобы увидеть все доступные ему публичные свойства и методы? Проблема подключения к базе данных sqlite с использованием php Как написать регулярное выражение в PHP для удаления специальных символов? Невозможно отключить отчет об ошибках в OpenCart (PHP) Каковы риски сеансов PHP? создание фоновых процессов в php для продолжительного процесса как войти на другой сайт через PHP .htaccess RewriteRule, вызывающий запрет 403 API Google – разрешить соединения только с доменом Google Apps Как вставить несколько данных, используя отношение? MYSQL – добавить или вставить значение в столбец в зависимости от того, пуст он или нет

Пользовательские сообщения с одним и тем же слизком. Перенаправление на неправильный пост с одинаковым слизнем

У меня есть 2 сообщения типа Post Post. Видео-сообщение и руководство по городу. Первое сообщение (видео-сообщение) содержит URL-адрес: 104.130.239.132/rick-owens/ и второй пост (City-Guide Post) conatins url: http: //104.130.239.132/city-guide/rick-owens/ (city-guide – это постоянная ссылка, которая является названием персонализированного типа сообщения). SO проблема возникает здесь всякий раз, когда мы пытаемся получить доступ к первому URL-адресу, он отображает шаблон и содержимое второго URL-адреса. Второй URL-адрес опубликован последним. Я попытался от себя решить, отключив плагин Yoast Seo, по-прежнему не изменился, а также сделал свою постоянную ссылку обновленные все же получили одинаковые результаты.

Прикрепление Yoast SEO-фрагмента для первого URL-адреса: введите описание изображения здесь и Yoast SEO-фрагмент второго URL-адреса введите описание изображения здесь Любая помощь будет оценена, спасибо.

Дополнение:

Вот мои коды CPT.

1.Video Сообщений:

$labels = array( 'name' => _x( 'Videos', 'Post Type General Name', 'roots' ), 'singular_name' => _x( 'Video', 'Post Type Singular Name', 'roots' ), 'menu_name' => __( 'Video Posts', 'roots' ), 'parent_item_colon' => __( 'Parent Video:', 'roots' ), 'all_items' => __( 'All Videos', 'roots' ), 'view_item' => __( 'View Video', 'roots' ), 'add_new_item' => __( 'Add New Video', 'roots' ), 'add_new' => __( 'Add New', 'roots' ), 'edit_item' => __( 'Edit Video', 'roots' ), 'update_item' => __( 'Update Video', 'roots' ), 'search_items' => __( 'Search Video', 'roots' ), 'not_found' => __( 'Not found', 'roots' ), 'not_found_in_trash' => __( 'Not found in Trash', 'roots' ), ); $rewrite = array( 'slug' => 'rewrite', 'with_front' => true, 'pages' => true, 'feeds' => true, ); $args = array( 'label' => __( 'video', 'roots' ), 'description' => __( 'Videos Post Type', 'roots' ), 'labels' => $labels, 'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'trackbacks', 'revisions', 'custom-fields', ), 'taxonomies' => array( 'category', 'post_tag' ), 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, 'show_in_admin_bar' => true, 'menu_position' => 5, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'rewrite' => $rewrite, 'capability_type' => 'post', 'yarpp_support' => TRUE ); register_post_type( 'video', $args ); 

Сообщений:

 function register_post_types(){ register_post_type( 'city-guide', [ 'has_archive' => TRUE, 'hierarchical' => TRUE, 'labels' => [ 'name' => 'City Guide' ], 'public' => TRUE, 'supports' => ['editor', 'page-attributes', 'revisions', 'thumbnail', 'title','custom-fields','excerpt'], 'taxonomies' => array('post_tag') ] ); add_image_size( 'ipad-city-thumb', 650, 650, TRUE ); } add_action( 'init', __NAMESPACE__.'\register_post_types', 20 ); 

У меня есть это в моем коде

 remove /rewrite/ slug from custom permalinks, to allow domain/slug for all post types public function post_link_rewrite( $post_link, $post, $leavename ){ $post_link = str_replace( '/rewrite/', '/', $post_link ); return $post_link; } 

Эта проблема очень распространена, так как имя слива двух типов сообщений аналогично, будет отображаться тот, который является последним. Теперь он не отражает тип сообщения. Я предполагаю, что вы выбрали «post-name» или% postname% в структуре permalink. Чтобы решить эту проблему, первым и самым простым способом является изменение столбца сообщения одного из сообщений.

Другим является изменение структуры permalink типа post из функции functions.php путем перезаписи функций класса WordPress. Для этого вам нужно посмотреть ссылку ниже заголовка сообщения. Это связано с тем, что для выяснения пули почтового типа конкретного пользовательского типа сообщения.

Я выполнил ваш предоставленный код в моей локальной установке. Теперь у меня есть 2 пользовательских типа сообщений, как у вас, так и почта в обоих именах «rick owens», в котором slug будет «rick-owens». Во-первых, та же ошибка отображается как упомянутая.

Я решил эту проблему, добавив эту функцию в functions.php

 function add_rewrite_rules_custom_post(){ global $wp_rewrite; $structure = 'rewrite/%rewrite%'; $structure1 = 'city-guide/%city-guide%'; $wp_rewrite->add_permastruct('%rewrite%', $structure, false); $wp_rewrite->add_permastruct('%city-guide%', $structure1, false); } add_action('init', 'add_rewrite_rules_custom_post'); 

Над этим кодом работал для меня и тестировался и должен работать и на вас.

Как я уже упоминал, вы должны знать URL-адрес сообщения на странице редактирования этого конкретного сообщения.

Для типа персонализированного видеорекламы почтовый URL должен выглядеть следующим образом:

http://www.siteurl.com/rewrite/rick-owens

Для типа почтового адреса, почтовый URL должен выглядеть следующим образом:

http://www.siteurl.com/city-guide/rick-owens

Если я прав, та же структура ссылок также должна быть на вашей странице, поэтому код должен работать, который я предоставил в верхней части. Если у вас есть другие, чем упомянутые выше ссылки, измените их в коде functions.php, который я предоставил. Например, если у вас есть для типа персонализированного видео,

http://www.siteurl.com/video/rick-owens

Затем измените код functions.php на

 $structure = 'video/%rewrite%'; 

см. img для проверки URL-адреса видео

Если у вас есть тип персонализированного почтового маршрута,

http://www.siteurl.com/city_guide/rick-owens

 $structure1 = 'city_guide/%rewrite%'; 

см. img для проверки URL-адреса города

Это еще один вариант, который я обычно делаю, если какой-либо конфликт происходит так же, как ваш в моем проекте. Если у вас его нет, пожалуйста, напишите мне об этом.

Надеюсь, это сработает.

Обновлен ответ от вашего обновленного процесса

Используйте этот код для обновления типа сообщения для функциональности WordPress Core

 function update_parse_request( $query ) { if ( ! $query->is_main_query() || 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) { return; } if ( ! empty( $query->query['name'] ) ) { $query->set( 'post_type', array( 'post', 'page', 'video', 'rewrite' ) ); } } add_action( 'pre_get_posts', 'update_parse_request' ); 

Надеюсь, этот код будет работать для вас, и, пожалуйста, удалите код, как я упоминал ранее выше, и не забудьте обновить постоянную ссылку.

Спасибо

ПРИМЕЧАНИЕ. Не забудьте обновить постоянную ссылку после того, как вы поместили код в functions.php

Обновить код типа почтового индекса с нижеприведенным кодом и, если возможно, использовать тот же код для типа почтового адреса города

 $labels = array( 'name' => _x( 'Videos', 'Post Type General Name', 'roots' ), 'singular_name' => _x( 'Video', 'Post Type Singular Name', 'roots' ), 'menu_name' => __( 'Video Posts', 'roots' ), 'parent_item_colon' => __( 'Parent Video:', 'roots' ), 'all_items' => __( 'All Videos', 'roots' ), 'view_item' => __( 'View Video', 'roots' ), 'add_new_item' => __( 'Add New Video', 'roots' ), 'add_new' => __( 'Add New', 'roots' ), 'edit_item' => __( 'Edit Video', 'roots' ), 'update_item' => __( 'Update Video', 'roots' ), 'search_items' => __( 'Search Video', 'roots' ), 'not_found' => __( 'Not found', 'roots' ), 'not_found_in_trash' => __( 'Not found in Trash', 'roots' ), ); $args = array( 'labels' => $labels, 'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'trackbacks', 'revisions', 'custom-fields', ), 'taxonomies' => array( 'category', 'post_tag' ), 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, 'show_in_admin_bar' => true, 'menu_position' => 5, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'yarpp_support' => TRUE ); register_post_type( 'video', $args ); 

в настройке постоянных ссылок в WordPress, поставьте пользовательскую структуру, например /% category% /% postname% /, затем в своем первом интервью вы заметите вкладку передач yoast seo. вы можете поместить / rick-owens / как канонический URL.