簡體   English   中英

WordPress自定義重寫規則

[英]WordPress Custom Rewrite Rules

我的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);

顯然,我在某個地方犯了一個錯誤,但我不知道在哪里。

我解決了這個問題。

我需要刪除我的函數文件中的代碼並添加:

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]');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM