Heim > Fragen und Antworten > Hauptteil
Ich habe eine Wordpress-Website mit einer Seite namens „Nieuwsberichten“ erstellt. Die URL sieht aus wie
https://www.example.com/newsitems
Diese Seite ist dynamisch, ich benötige einen zusätzlichen Parameter namens „news_page“
https://www.example.com/news/?news_page=recent
Die obige URL ist nicht benutzerfreundlich, daher habe ich dafür eine Umschreiberegel erstellt und die Variable „news_page“ hinzugefügt.
functions.php
function add_query_vars($vars){ $vars[] = 'news_page'; return $vars; } add_filter( 'query_vars', 'add_query_vars', 10, 1 ); function rewrite_paged(){ add_rewrite_rule('^nieuwsberichten/([0-9]+)/?', 'nieuwsberichten?news_page=$matches[1]', 'top'); } add_action('init', 'rewrite_paged');
Ich habe den Permalink inzwischen aktualisiert Menü -> Einstellungen -> Permalinks -> Speichern
Wenn ich zu
navigierehttps://www.example.com/news/recent/
Es wird zu
weitergeleitethttps://www.example.com/newsmessages/
Was fehlt mir in meinem Code?
Ich hoffe, jemand kann mir helfen, dieses Problem zu lösen
P粉5415512302024-01-17 14:33:44
在正则表达式部分,您仅指定数字条目,但在网址中传递“最近”等文本。也许错误就在这里。请检查它是否适用于数字输入,如果是问题,请编辑您的表达式。另外,您指定的 url 结构似乎不太正确。
无论如何,我不确定我的答案,所以如果您能在检查后确认,我将不胜感激。
我现在无法检查或测试。如果您的问题没有解决,我会详细研究一下。
你可以像这样使用它:
function rewrite_paged(){ add_rewrite_tag('%news_page%', '([^/]+)'); add_rewrite_rule('^nieuwsberichten/?([^/]*)$', 'nieuwsberichten?news_page=$matches[1]', 'top'); } add_action('init', 'rewrite_paged');
此外,如果您指向一个页面,则需要使用页面 ID 或页面名称。博客或产品等。如果是,仍然会有您需要使用的参数,您应该将此网址重定向到index.php。我留下一个例子供您理解我在说什么,并且为了便于您查看,您可以查看您网站上的重写内容,如下所示:
查看示例:
global $wp_rewrite; print_r($wp_rewrite);
示例:
匹配页面名称:
add_rewrite_rule('^nieuwsberichten/?([^/]*)$', 'index.php?pagename=nieuwsberichten&news_page=$matches[1]', 'top');
匹配页面 ID:
add_rewrite_rule('^nieuwsberichten/?([^/]*)$', 'index.php?page_id=10000&news_page=$matches[1]', 'top');
如果您在 WordPress 之外安装,您的示例是正确的,但如果它在 WordPress 内部,则所有请求都应定向到 index.php。因此,您可能需要像这些示例一样编辑我给出的代码。