В разделе Settings -> Reading
я настроил свой сайт на использование пользовательских статических страниц как для домашней страницы, так и для страницы сообщений.Страница сообщений на /news/
.
Я хочу использовать /news/
в качестве URL-адреса для моего фильтруемого архива, но, похоже, он ведет себя не так, как список последних сообщений по умолчанию (при использовании в качестве домашней страницы).) или архив пользовательских типов записей.
Когда я посещаю /?tag=demo
, я вижу список сообщений, отфильтрованных по тегу demo
, но когда я пытаюсь пропустить фильтр тегов через URL-запрос,например, /news/?tag=demo
, список не фильтруется.Когда я захожу на /news/
без переменных запроса, я вижу нефильтрованный список, как и ожидалось.
Я подозреваю, что это как-то связано с тем фактом, что статическая страница сообщений является «страницей» в смысле Wordpress,а не настоящий архив.Можно ли отформатировать URL-адрес для передачи переменных запросов в этот тип статического списка сообщений?
Я занимаюсь разработкой пользовательской темы, поэтому я могу изменить PHP любым необходимым способом.Вместо этого я мог бы использовать настраиваемое правило перезаписи для отображения почтового архива на /news/
, но я надеялся, что решение будет более гибким и простым для моего клиента, чтобы его можно было понять и настроить с помощью панели управления WP.
Iпроверил это, используя тему Twenty Nineteen со всеми отключенными плагинами.Похоже, что это стандартное поведение для Wordpress и не связано с моей пользовательской темой или какими-либо плагинами.
Я попытался устранить косую черту (/news?tag=demo
), но результаты были такими же.
Я также попробовал свое решение «когда сомневаешься» о повторном сохранении настроек постоянных ссылок без эффекта.
Когда я проверяю глобальную переменную $wp_query
для /?tag=demo
, я вижу следующие значения (сокращеннопоказывать только те значения, которые я считал уместными):
"query": {
"tag": "demo"
},
"tax_query": {
...
"queries": [
{
"taxonomy": "post_tag",
"terms": [
"demo"
],
"field": "slug",
"operator": "IN",
'include_children": true
}
]
...
},
"post_count": 1
Но когда я проверяю $wp_query
на /news/?tag=demo
, те же значения выглядят так:
"query": {
"page": "",
"tag": "demo",
"pagename": "news"
},
"queries": [],
"post_count": 10
Iожидалось, что значение «query» будет одинаковым, но похоже, что статическая версия вообще не генерирует это значение.