我的wordpress网站上有一个页面,可以从第三方api中获取数据。数据取决于url参数。如果我的网址是example.com/profile/user1,那么我需要使用用户帐户" user1"从用户提取api中的数据。
我无法通过wordpress识别最后一个url参数。现在,我找不到页面。这是我的页面代码:
<?php
/*
Template Name: Profiles
*/
$gamertagurl = $_SERVER["REQUEST_URI"];
$gamertag = substr($gamertagurl, 9, -1);
$url = 'https://xboxapi.com/v2/'.$gamertag.'/profile';
$headers = array('X-AUTH: 718a17918628b41f8be806dfd5b27a20e8973d3f');
$session = curl_init($url);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
curl_setopt($session, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($session);
curl_close($session);
$myArray = json_decode($response);
$i = 0;
foreach ($myArray as $key => $value) {
echo '<a href=' . $value->screenshotUris[0]->uri .'><img src=' . $value->thumbnails[1]->uri . '/></a>';
$i++;
if($i==10) break;
}
echo '<pre>';
var_dump($myArray);
echo '</pre>';
?>
在我的functions.php文件中,我添加了:
function custom_rewrite_tag() {
add_rewrite_tag('%gamertag%', '([^&]+)');
}
add_action('init', 'custom_rewrite_tag', 10, 0);
function custom_rewrite_rule() {
add_rewrite_rule('^profile/([^/]*)/([^/]*)/?','index.php?page_id=2&gamertag=$matches[1]','top');
}
add_action('init', 'custom_rewrite_rule', 10, 0);
显然,我在某个地方犯了一个错误,但我不知道在哪里。
答案 0 :(得分:0)
我发现了问题。
我需要删除函数文件中的代码并添加:
function add_query_vars_filter( $vars )
{
$vars[] = "gamertag";
return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );
add_rewrite_rule('profile/([/])/([/])/?','index.php?page_id=2&gamertag=$matches[1]');