2015-05-19 62 views
3

我是WordPress新手,我正在爲wordpress創建一個擴展。我搜查了很多,但沒有找到任何解決方案。可能是我的問題是重複的,但我沒有找到任何解決方案。我的問題是:在wordpress中爲我的網絡服務添加自定義網址

我想爲我的擴展API創建自定義網址。像 一些將發佈該網址上的數據,我將數據保存在數據庫中。我的網址應該是www.example.com/custom_url

我的網址沒有頁面也沒有模板,它是一種網絡服務。

所以在我的擴展中,我希望當任何用戶安裝該擴展時,這個custom_url將自動爲它們激活。

我試過add_rewrite_rule,add_rewrite_endpoints等但沒有成功。

請給我建議或向我提供描述它的任何鏈接。

回答

4

據WordPress的論壇教程:

什麼是終點?

使用端點允許您輕鬆創建重寫規則來捕獲 正常的WordPress網址,但在最後還有一些額外的內容。例如,對於 示例,您可以使用端點匹配所有發佈的網址,然後匹配 「圖庫」,並顯示帖子中使用的所有圖像。 http://example.com/my-fantastic-post/gallery/

完全教程這裏:https://make.wordpress.org/plugins/2012/06/07/rewrite-endpoints-api/

所以它不是因爲你需要創建虛擬網頁很有幫助。

然而,按照WordPress的堆棧交易所下面的帖子,也可以使用add_rewrite_rule

How do you create a 「virtual」 page in WordPress

這裏創建虛擬頁面是從原始文章的一些摘錄:

首先我們添加一個重寫規則,添加一個查詢變量,然後我們使這個 query var public,然後我們需要檢查這個 query var是否存在將控制權傳遞給我們的plu杜松子酒文件。當我們做 這個時候,通常的WordPress初始化將會發生(我們在普通帖子查詢之前將 分開)。

add_action('init', 'wpse9870_init_internal'); 
function wpse9870_init_internal() 
{ 
    add_rewrite_rule('my-api.php$', 'index.php?wpse9870_api=1', 'top'); 
} 

add_filter('query_vars', 'wpse9870_query_vars'); 
function wpse9870_query_vars($query_vars) 
{ 
    $query_vars[] = 'wpse9870_api'; 
    return $query_vars; 
} 

add_action('parse_request', 'wpse9870_parse_request'); 
function wpse9870_parse_request(&$wp) 
{ 
    if (array_key_exists('wpse9870_api', $wp->query_vars)) { 
     include 'my-api.php'; 
     exit(); 
    } 
    return; 
} 

Codex Page add_rewrite_rule

0

1)。爲虛擬頁面創建操作。

add_action('template_redirect', 'apicall'); 


function apicall() { 

$callapi = $_GET['API']; 

if($callapi=='YOUR API Name'){ 

      header('Content-Type: text/javascript; charset=utf8'); 
      header("Access-Control-Allow-Origin: *"); 
      header('Access-Control-Max-Age: 3628800'); 
      header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); 

{{YOUR LOGIC}} 

     exit; 
} 
} 

瀏覽器的URL 寫:www.YOURDOMAIN.com/?API=YOUR API NAME