Ограничить ответ дБ до 5 строк - PullRequest
0 голосов
/ 05 января 2020

Начиная со следующего кода, мне нужно просто ограничить отображаемые результаты 5 именами авторов, но сохранить те же идентичные свойства.

$value = get_post_meta($post->ID, 'authors_names', true);
$value_array = explode(',', $value);
$num_values = count($value_array);
foreach ($value_array as $key => $array) {
    $remove_space = str_replace(' ', '-', $array);
    $url = esc_url('http://mywebsite.com/authors/' . $remove_space);
    if ('' !== $url) {
        $display = esc_html($array);
        print"<a href='$url'>$display</a>";
    }
    if ($key < $num_values - 1) {
        echo ',';
    };
}

Я пытаюсь вот так, но, похоже, нет работа ... Где я иду не так?

$mpirate = get_post_meta($post->ID, 'authors_names', true); 
    $mpirate_array = explode(',', $mpirate);
    $url = esc_url( 'http://mywebsite.com/authors/' . $mpirate_array[$i]);
    $display = esc_html( $mpirate_array[$i]);

    for($i = 0; $i < 5; $i++) { 
        echo $mpirate_array[$i];
        if($i < 4) { 
            echo ',';}};
        print "<a href='$url'>$display</a>";

Ответы [ 2 ]

1 голос
/ 05 января 2020

Попробуйте это:

$value = get_post_meta($post->ID, 'authors_names', true);
$value_array = explode(',', $value);
$hrefs = [];
for($i = 0; $i < 5; $i++) {
    $remove_space = str_replace(' ', '-', $value_array[$i]);
    $url = esc_url('http://mywebsite.com/authors/' . $remove_space);
    if ('' !== $url) {
        $display = esc_html($value_array[$i]);
        $hrefs[] = "<a href='$url'>$display</a>";
    }
}
echo implode(",", $hrefs);
0 голосов
/ 05 января 2020

Метод get_post_meta вернет только одного автора, поскольку для третьего параметра задано значение true, документы: https://developer.wordpress.org/reference/functions/get_post_meta/

Чтобы получить только первые пять результатов, вы можете использовать array_splice метод, который получает массив, и вы можете установить предел результатов, которые вы хотите извлечь из него, документы: https://www.php.net/manual/en/function.array-splice.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...