如何在保留语义URL的同时将我的PHP应用程序添加到WordPress页面?

时间:2012-06-12 作者:baritoneuk

我正在使用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页面中为应用程序运行PHPdomain.com/directory/ 我怎样才能让它通过$_GET 通过扩展url但保持相同的WP页面,例如。domain.com/directory/list/people/all/by-name/page-1/20-per-page/ ?

2 个回复
最合适的回答,由SO网友:Vincent Guesné 整理而成

这不是一个好的编辑方式。htaccess用于wordpress url重写(仅用于管理面板中的主url设置)

您在此处找到了您的回复:API basic url rewritingThe 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\'];

我希望这对你有帮助;)

SO网友:Vincent Guesné

@男中音:对我来说,有多重查询和重写规则。我在rewrite\\u rule上有一个键,例如: add_rewrite_rule( // The regex to match the incoming URL \'yourpage/makey-([a-z0-9-]+)/?\', \'index.php?pagename=yourpage&your_param=$matches[1]\', \'top\' );

在我的链接中,通过这种方式,我可以拥有多个具有相同重定向和相同模式的重写规则;)

结束
如何在保留语义URL的同时将我的PHP应用程序添加到WordPress页面? - 小码农CODE - 行之有效找到问题解决它

如何在保留语义URL的同时将我的PHP应用程序添加到WordPress页面?

时间:2012-06-12 作者:baritoneuk

我正在使用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页面中为应用程序运行PHPdomain.com/directory/ 我怎样才能让它通过$_GET 通过扩展url但保持相同的WP页面,例如。domain.com/directory/list/people/all/by-name/page-1/20-per-page/ ?

2 个回复
最合适的回答,由SO网友:Vincent Guesné 整理而成

这不是一个好的编辑方式。htaccess用于wordpress url重写(仅用于管理面板中的主url设置)

您在此处找到了您的回复:API basic url rewritingThe 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\'];

我希望这对你有帮助;)

SO网友:Vincent Guesné

@男中音:对我来说,有多重查询和重写规则。我在rewrite\\u rule上有一个键,例如: add_rewrite_rule( // The regex to match the incoming URL \'yourpage/makey-([a-z0-9-]+)/?\', \'index.php?pagename=yourpage&your_param=$matches[1]\', \'top\' );

在我的链接中,通过这种方式,我可以拥有多个具有相同重定向和相同模式的重写规则;)

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请