我正在使用Wordpress在主域(例如域)上为客户重建一个静态网站。com。在目录中还有一个成员目录网站。领域我希望将其迁移到主网站-domain.com/directory/
(我们想这样做,首先是为了让它保持在同一个域上,但也为了能够使用相同的布局和样式,最好是使用页面模板。)
该应用程序具有主页、列表视图和成员详细信息视图,并使用发送搜索查询$_GET
. 使用mod\\u rewrite使URL看起来很漂亮(语义URL),例如:directory.domain.com/list/people/all/by-name/page-1/20-per-page/
中的示例代码。htaccess文件可以是:
RewriteRule ^list/([a-zA-Z0-9-\\-]+)/([a-zA-Z0-9-\\-]+)/([a-zA-Z0-9-\\-]+)/$ /list.html?member-type=$1&area-name=$2&order-by=$3 [L]
我已经想到了实现上述目标的两种可能性。。。
1) 如果我们将成员目录保存在不同的子域上,那么可能会在WP站点上缓存并使用空白页面的副本,然后将其用作成员目录的模板。
2) 在WP页面中以某种方式拥有成员目录的php代码。
理想情况下,我想选择(2),但我不确定如何实现这一点。
那么,实现这一目标的最佳方式是什么?明确地
如何在WP页面中为应用程序运行PHP如何使用mod\\u rewrite访问$\\u GET变量并启用nice(语义)URL?例如,如果目录处于打开状态domain.com/directory/
我怎样才能让它通过$_GET
通过扩展url但保持相同的WP页面,例如。domain.com/directory/list/people/all/by-name/page-1/20-per-page/
?很抱歉,如果我没有很好地解释这一点,这有点复杂!
最合适的回答,由SO网友:Vincent Guesné 整理而成
这不是一个好的编辑方式。htaccess用于wordpress url重写(仅用于管理面板中的主url设置)
您在此处找到了您的回复:API basic url rewriting 或The Rewrite API: Post Types & Taxonomies
例如:
add_action( \'init\', \'rewrite_rule\' );
function rewrite_rule()
{
global
$wp,$wp_rewrite;
// Remember to flush the rules once manually after you added this code!
add_rewrite_rule(
// The regex to match the incoming URL
\'yourpage/([a-z0-9-]+)/?\',
// The resulting internal URL: `index.php` because we still use WordPress
// `pagename` because we use this WordPress page
// `designer_slug` because we assign the first captured regex part to this variable
\'index.php?pagename=yourpage&your_param=$matches[1]\',
// This is a rather specific URL, so we add it to the top of the list
// Otherwise, the "catch-all" rules at the bottom (for pages and attachments) will "win"
\'top\' );
$wp_rewrite->flush_rules();
}
add_filter( \'query_vars\', \'query_vars\' );
function query_vars( $query_vars )
{
$query_vars[\'yp\'] = \'your_param\';
return $query_vars;
}
您可以获得以下数据:
$param_website_name = $wp->query_vars[\'your_param\'];
我希望这对你有帮助;)