Intereting Posts
Версия плагина не обновлена ​​с новой версией Пользовательский CSS для конкретного виджета text / html в WordPress Миграция WordPress: получение 404 ошибок: работает только домашняя страница Исключить категорию из цикла foreach Объединить массивы и набор заказов и подмножество как один Случайная запись, один раз в день facebook Страница Публикация 2 2 пользовательских пост-типа и 1 таксономия Как проверить, загружает ли пользователь / устанавливает изображение в качестве отображаемого изображения? Получение пользовательского поля из формы контакта 7 Указание количества сообщений на странице с использованием встроенного плагина (: Штрих-коды: за и против 'delete_option ()' удаляет только значение, а не пару ключ / значение Я пытаюсь создать поле вопроса безопасности для моей страницы входа Избегать дублирования имен функций в столбце Post (сценарий WP_Footer)

Страница WordPress не отображается – заменена на последние 10 сообщений?

Я много работал над системой для загрузки статей. В частности, через пользовательский пост, URL-адрес которого изменяется на основе поля выбора ACF.

У меня был большой успех, и пользователи здесь помогли мне в финальном нажатии, чтобы исправить ошибки 404. но теперь кажется, что я снова застрял. Родительские страницы кажутся недействительными, заставляя показывать последние 10 сообщений.

Вот настройка. У меня есть страница, в которой родительская структура – это Community => Articles => Theories. URL-адрес example.com/community/articles/theory/

Когда я посещаю этот URL, он отображает только последние 10 сообщений. Не пользовательские сообщения, просто регулярные сообщения.

Код, который я должен изменить для ссылок на персонализированный пост, следующий:

add_rewrite_tag( '%category_type%', '([^&]+)' ); register_post_type( 'articles', array( 'labels' => array( 'name' => 'Articles', 'singular_name' => 'Article', 'add_new' => 'Add new article', 'edit_item' => 'Edit article', 'new_item' => 'New article', 'view_item' => 'View article', 'search_items' => 'Search articles', 'not_found' => 'No articles found', 'not_found_in_trash' => 'No articles found in Trash', ), 'public' => true, 'supports' => array( 'title', 'editor', 'excerpt', 'revisions', 'thumbnail' ), 'rewrite' => array('slug' => 'community/articles/%category_type%'), 'menu_icon' => "dashicons-groups", 'capability_type' => array('article','articles'), 'map_meta_cap' => true, ) ); 

 function rem_articles_rewrite( $post_link, $id = 0 ){ $post = get_post($id); if ( is_object( $post ) ){ $ptype=get_post_type($post); if($ptype=="articles"){ $category=get_field('category',$post->ID); if( $category ){ return str_replace( '%category_type%' , $category , $post_link ); } } } return $post_link; } 

Это гарантирует, что статьи появляются, например, example.com/community/articles/theory/-ARTICLE_NAME-/ . Но я боюсь, что это также блокирует страницу example.com/community/articles/theory/ , поэтому я не могу редактировать эту страницу через обычный раздел страницы. Так или иначе, это резерв не 404, а последние 10 сообщений сайта.

На странице example.com/community/articles/ кажется, что все происходит неправильно. это только прямой ребенок этой страницы. Другие дети дочерних страниц (сами публикации статей) появляются без проблем.

Есть ли что-нибудь, что сразу выпрыгивает на кого-нибудь? Что-то, что я забыл?

Заранее благодарим за любой ответ!

Проблема заключается в правилах перезаписи, сгенерированных с типом сообщения – они немного жадные и захватывают эти запросы. WordPress пытается запросить соответствующий тип category_type , который на самом деле не является типом объекта, а при отсутствии любого другого допустимого аргумента запроса он запускает основной запрос блога.

Вы могли бы вручную генерировать правила перезаписи типа сообщения, которые менее жадные, или вы можете добавить правило, которое просто переопределяет их в случае, если ARTICLE_NAME отсутствует:

 add_rewrite_rule( '^community/articles/([^/]*)?/?$', 'index.php?pagename=community/articles/$matches[1]', 'top' ); 

Когда вы занимаетесь переписыванием, я рекомендую плагин Monkeyman Rewrite Analyzer , который даст вам новый пункт меню в разделе «Инструменты», в котором вы можете подключать URL-адреса и просматривать, как они подходят для перезаписи правил и разбора для запроса варов.