WordPress重写-如何将变量传递给Custom Post Type? 时间:2013-04-29 作者:MikeGWP 我正在寻找wordpress重写,它可以让我传递一个查询变量。我有一个自定义的帖子类型,可以生成如下URL:实例com/自定义帖子slug/自定义帖子标题/我的目标是实例com/custom post slug/custom post title/cid/10/将值10传递到cid有什么建议吗? 3 个回复 SO网友:Milo 您可以使用add_rewrite_endpoint, 这将添加查询变量并生成必要的重写规则:function wpd_cid_endpoint() { add_rewrite_endpoint( \'cid\', EP_PERMALINK ); } add_action( \'init\', \'wpd_cid_endpoint\' ); 别忘了flush rewrite rules 更改规则后。您可以通过访问管理中的设置>永久链接页面快速完成此操作。 SO网友:guidod 您需要创建一个自定义重写规则,不仅映射post slug,还映射cid值,请参阅本文:http://www.prodeveloper.org/create-your-own-rewrite-rules-in-wordpress.html以及相关的Codex文件:http://codex.wordpress.org/Rewrite_APIhttp://codex.wordpress.org/Rewrite_API/add_rewrite_ruleI\'m assuming you don\'t want to use query strings, 因为在这种情况下,使用此URL就很容易:example.com/custom-post-slug/custom-post-title/?cid=10以这种方式获取值:$cid=isset($_GET[\'cid\'])?$_GET[\'cid\']:false;然而,请记住/param\\u name/param\\u value/语法在语义和SEO方面不是最好的。URL应该是分层的。虽然最“纯粹”的解决方案是使用?param\\u name=param\\u值。 SO网友:iambriansreed 在你的init callback:add_rewrite_rule( \'^custom-post-type-slug/([^/]*)/cid/([^/]*)/?\', \'index.php?custom-post-type-slug=$matches[1]&cid=$matches[2]\', \'top\' ); add_rewrite_tag(\'%cid%\', \'([^&]+)\'); 然后,可以使用以下内容获取cid变量值:global $wp_query; $wp_query->query_vars[\'cid\'] 我使用了以下功能:http://codex.wordpress.org/Rewrite_API/add_rewrite_rulehttp://codex.wordpress.org/Rewrite_API/add_rewrite_tag 结束 文章导航