如何限制per_page结果并显示自定义WP REST API端点的分页链接?

时间:2019-05-16 14:55:16

标签: json wordpress wordpress-rest-api

我已经建立了自定义WP REST API路由,我需要帮助将结果限制为每页5个,然后具有分页链接以显示下一页等。

我尝试在参数数组中添加'per_page => 5',但url结果没有任何变化。我似乎也根本不知道如何包括分页。抱歉,这是我第一次尝试。

function staffSearchEndpoint(){
    register_rest_route('staffbio/v1', 'staffsearch', array(
        'methods' => WP_REST_SERVER::READABLE,
        'callback' => 'staffSearchJSONResults',
    ));
}

function staffSearchJSONResults($data) {
    $staffBio = new WP_Query(array(
        'post_type' => 'staff_bios',
        's' => $data['term'],
        'orderby' => 'title',
        'order' => 'asc'
    ));

如果可以的话,请告诉我要在$staffBio array中添加的内容或将不胜感激的其他内容。另外,如果您的答案需要Javascript,请仅使用纯JS,而无需JQuery。

1 个答案:

答案 0 :(得分:0)

对于每页的帖子,您似乎在WP Query中使用了错误的参数。您需要在Private Sub btnLogin_Click() Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("Employee", dbOpenSnapshot, dbReadOnly) rs.FindFirst "UserName='" & Me.TextUserName & "'" If rs.NoMatch = True Then Me.LabelWrongUser.Visible = True Me.TextUserName.SetFocus Exit Sub End If Me.LabelWrongUser.Visible = False If rs!Password <> Encrypt(Me.TextPassword) Then Me.LabelWrongPass.Visible = True Me.TextPassword.SetFocus Exit Sub End If Me.LabelWrongPass.Visible = False TempVars("EmployeeType") = rs!EmployeeTypeId.Value If DLookup("HasAccess", "EmployeeAccess", "EmployeeTypeId=" & TempVars("EmployeeType")) Then TempVars("FormName") = rs!FormName.Value And DoCmd.OpenForm ( 参数中使用'posts_per_page' => 5,而不是'per_page => 5'

所以您的WP_Query函数将是:

staffSearchJSONResults

对于分页,我建议使用function staffSearchJSONResults($data) { $staffBio = new WP_Query(array( 'post_type' => 'staff_bios', 'posts_per_page' => 5, 's' => $data['term'], 'orderby' => 'title', 'order' => 'asc' )); 参数。

假设您在offset中拥有帖子总数,并且staff_bios的值和默认posts_per_page的值将为0

因此分页的基本逻辑表示将是:

offset

您可以在此处检查所有WP_Query参数:https://www.billerickson.net/code/wp_query-arguments/