我正在使用一些URL重写,除了Wordpress本身的URL重写之外。
基本的想法是我使用一个类别页面,其地址看起来像是属于其他地方,因此/ blog / type / kids是WP中的真正类别。我用/ kids /中的.htaccess文件重写了这个类别,使类别看起来像是一个名为/ kids / programs的页面,这个代码在kids文件夹中:
RewriteEngine on
RewriteRule ^programs$ /blog/type/kids/ [P]
这发生在站点中的两个不同位置,但两者都在后台加载相同的WP页面。一切正常。
我现在需要做的是根据加载的位置设置变量,以确保导航突出显示网站的正确部分,并显示正确的子空间。问题是我无法访问用户看到的新的重写URL。
理想情况下,我正在寻找类似的东西:
if(strpos($_SERVER['PHP_SELF'],'kids//programs')) {
$top_nav_item_id = 'kids';
} else {
$top_nav_item_id = 'programs';
$subnav_item_id = 'kids';
}
PHP_SELF解析为/blog/index.php,REQUEST_URI显示/ blog / type / kids。所以我们都没有向我展示真正展示的/ kids / program位置。
任何想法如何获得这个?也许WP有内置标签吗?
干杯!
答案 0 :(得分:1)
我也在使用Rewrite,这对我来说就像一个魅力:
$ _ SERVER [ 'REDIRECT_SCRIPT_URL']
您也可以使用
$ _ SERVER [ 'REDIRECT_SCRIPT_URI']
答案 1 :(得分:0)
WordPress get_permalink()
功能在http://codex.wordpress.org/Function_Reference/get_permalink完整描述。以下是用法:
<?php echo get_permalink( $id ); ?>
由于您在循环外操作,正如您所提到的,您不能只调用get_permalink()
,您必须将$ id传递给函数。你可以在循环中设置$ id的值,然后在调用ISSET($id)
之前使用get_permalink($id)
- 是安全的。
如果在尝试使用get_permalink之后出现任何问题(我能够在循环外测试它,但我没有使用mod_rewrite规则进行设置),你可以在循环中使用仍然设置$ id然后使用类似的东西手动构建带有类别的URL,在'http:// yourservername /'之后连接:
<?php if(ISSET($specpostid)) {
$catarray = get_the_category($id);
echo $catarray[0]->cat_name; } ?>
答案 2 :(得分:0)
尝试
@ReactMethod
public void paymentRequestWithCardForm(ReadableMap params, final Promise promise) {
Activity currentActivity = getCurrentActivity();
try {
ArgCheck.nonNull(currentActivity);
ArgCheck.notEmptyString(mPublicKey);
final AddCardDialogFragment cardDialog = AddCardDialogFragment.newInstance(
mPublicKey,
getErrorCode(mErrorCodes, "cancelled"),
getDescription(mErrorCodes, "cancelled"),
params.hasKey("createCardSource") && params.getBoolean("createCardSource")
);
cardDialog.setPromise(promise);
cardDialog.show(currentActivity.getSupportFragmentManager(), "AddNewCard");
} catch (Exception e) {
promise.reject(toErrorCode(e), e.getMessage());
}
}
URL变量$protocol = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
$url = $protocol.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
将为您提供URL,如浏览器的地址栏中所示。
答案 3 :(得分:-1)
返回当前网址:
<?php
function curPageURL() {
$pageURL = 'http';
if (@$_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
?>