
Posts Controller現(xiàn)在支持分類法“OR”關(guān)系
查詢/wp/v2/posts?tags=1&categories=2返回了分配了ID為1的標(biāo)簽,并且分配了ID為2的分類下的所有文章。自WordPress 4.7以來,Posts Controller一直只支持這種AND關(guān)系(必須同時滿足多個分類法的分類關(guān)系。
REST API?/wp/v2/posts端點以及從擴(kuò)展過來的自定義文章類型端點WP_REST_Posts_Controller(包括指定的自定義文章類型"show_in_rest" => true)現(xiàn)在支持一個新參數(shù)tax_relation,該參數(shù)可用于返回與任一分類過濾器(而不是兩者)匹配的文章,也就是“或者( OR )” 關(guān)系。
例如,在WordPress 5.4中,posts端點查詢
/wp/v2/posts?tags=1&categories=2&tax_relation=OR
現(xiàn)在將返回標(biāo)簽ID為 1?或與分類ID為 2的所有文章。
選擇性鏈接嵌入
REST API現(xiàn)在支持使用_embed參數(shù)返回有限的一組嵌入式對象。例如,在WordPress 5.4中,以下查詢僅嵌入作者信息,而不包括所有評論,媒體等。
/wp/v2/posts/?_embed=author
如果_embed省略參數(shù)值或?qū)⑵湓O(shè)置為true或 1 ,則將返回所有嵌入。
WP_REST_Server方法更改
WordPress 5.4更改了WP_REST_Server類中兩個方法的簽名。擴(kuò)展WP_REST_Server和覆蓋這些方法的開發(fā)人員應(yīng)更新其代碼以匹配新的簽名,以避免出現(xiàn)PHP警告。
WP_REST_Server::embed_links()的簽名現(xiàn)在為embed_links( $data, $embed = true )。新參數(shù)$embed接受鏈接關(guān)系(例如array( 'author', 'wp:term' ))的數(shù)組,并在響應(yīng)這些關(guān)系時限制嵌入的鏈接。默認(rèn)設(shè)置為true將保留以前在響應(yīng)中嵌入所有鏈接的行為。有關(guān)更多詳細(xì)信息,請參見#39696。WP_REST_Server::get_routes()的簽名現(xiàn)在為get_routes( $namespace = '' )。新參數(shù)$namespace接受一個字符串,并將返回的路由限制為名稱空間與該字符串匹配的路由。在內(nèi)部,WP_REST_Server使用此新參數(shù)來提高性能,WP_REST_Server::dispatch()方法是減少將請求與注冊路由相匹配所需的正則表達(dá)式檢查次數(shù)。有關(guān)更多詳細(xì)信息,請參見#48530。
出于性能原因,WP_REST_Server::embed_links()現(xiàn)在還將響應(yīng)數(shù)據(jù)緩存在內(nèi)存中。此緩存由WP_REST_Server::response_to_data()管理。直接調(diào)用被保護(hù)embed_links方法的代碼可能需要更新,以確保不返回舊的數(shù)據(jù)。




