Как сгенерировать идентификатор или класс для div?

Есть PHP-код, который когда пользователь нажимает на the_title(); тогда the_content появится.

Моя проблема в том, что если есть неограниченное the_title(); и the_content(); Существует проблема с генерацией идентификатора, что он должен быть уникальным.

Как я могу создать для href="#id" и id = "id"???

<?php
    // Start the loop.
    while ( have_posts() ) : the_post();

    echo '<a href="#id" data-toggle="collapse">';

        the_title();

    echo '</a>
    <div id="id" class="collapse">';

        the_content();

    echo '</div>';

    // End of the loop.
    endwhile;
?>

2 ответа

Решение

Вы должны использовать как этот пример:

$i = 1; // counter start from 1
while ($i <= 10):
    echo '<a href="id='.$i.'" data-toggle="collapse"> '.$i.'</a>';
    $i++; // increment 1
endwhile;

Пример с вашим кодом:

$i = 1; // start counter from  1
while ( have_posts() ) : the_post();

echo '<a href="#'.$i.'" data-toggle="collapse">';

    the_title();

echo '</a>
<div id="'.$i.'" class="collapse">';
$i++; // counter
    the_content();

echo '</div>';

// End of the loop.
endwhile;

Что я изменил?

Просто добавьте счетчик в while loop инициализировать с 1

Сделать массив, который продолжает увеличиваться. используйте его индекс так:

<?php echo $new=array('1','2','3','4');?>
foreach($new as $key =>variable){
     echo '<a href="#id<?php echo $key+1;?>" data-toggle="collapse">';
    the_title();
    echo '</a>
    <div id="id<?php echo $key+1;?>" class="collapse">';
    the_content();
    echo '</div>';
}

Я попробовал это. это сработало для меня. надеюсь, вы тоже поняли, как это работает. Я увеличиваю идентификатор с помощью значения ключа цикла foreach.

Другие вопросы по тегам