2017-05-26 40 views
12

我試圖在wp 4.7.4上運行自定義插件。下面是我簡單的插件rest_api_init事件未解僱

add_action('rest_api_init', 'register_routes'); 


function register_routes() { 
    register_rest_route('taxonomy-manager/v1', '/taxonomies/(P<taxonomy_type>[a-zA-Z]+)', array(
    'methods' => 'GET', 
    'callback' => 'get_or_insert' 
)); 
} 

function get_or_insert(WP_REST_Request $request) { 

    $parameters = $request->get_params(); 

    return $parameters; 

} 

當我請求wp-json端點我沒有看到插件路線那裏。插件已成功激活。我錯過了什麼嗎?上面的插件(或基於rest_api_init事件的類似插件)是否適用於其他人?謝謝。

+0

您是否啓用了漂亮的永久鏈接? –

+0

@TyBailey,在永久鏈接設置我有'日和姓名'結構。 –

+0

你可以嘗試一個靜態頁面,看看是否有效?排除在你的代碼中的其他地方使用.htaccess或其他路由規則的情況。不要忘記還有優先權。可能想要將第四個參數添加爲true。 – Shawn

回答

0

使用最新版本我沒有看到rest_api_init操作被觸發。貌似這個代碼在plugin.php總是空和返回,決不讓被解僱的rest_api_init行動:

if (empty($GLOBALS['wp']->query_vars['rest_route'])) { 
    return; 
} 
+0

因此,通過使用漂亮的固定鏈接解決了這個問題https://github.com/WP-API/WP-API/issues/1475 –

2

請參考下檢查清單,
1.更改您的永久鏈接一個漂亮的永久鏈接和檢查。
2.檢查你的.htacess文件(當你保存永久性結構時它應該是可寫的,它可以被wp重寫)。
3.檢查驗證。 4.檢查下面的自定義端點創建方法,

add_action('rest_api_init', function() { 
    register_rest_route('myplugin/v1', '/author/(?P<id>\d+)', array(
    'methods' => 'GET', 
    'callback' => 'my_awesome_func', 
)); 
}); 

REF:https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/