Как я могу вернуть контент Wordpress с сгенерированными идентификаторами на основе количества тегов H2Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как я могу вернуть контент Wordpress с сгенерированными идентификаторами на основе количества тегов H2

Сообщение Anonymous »

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

Код: Выделить всё

function h2s_in_the_content($content) {
if (preg_match_all('#(.*?)#', $content, $matches)) {
foreach ($matches[1] as $key => $value) {

echo '[*]';
echo '[url=#]' . $value . '[/url]';
echo '';
}
}
}

add_filter('the_content', 'h2s_in_the_content', 98);
Вывод аналогичен изображению ниже, где все H2 извлекаются и преобразуются в ссылки.
Изображение

Проблема, с которой я столкнулся, заключается в том, что я хочу получить the_content, прочитать и заменить все H2. так же, как указано выше, и верните их с помощью переменной $key, которая должна вывести следующее: . Я использую этот код, чтобы попытаться сделать это:

Код: Выделить всё

function replace_text_wps($content){
if (preg_match_all('#(.*?)#', $content, $matches)) {
foreach ($matches[1] as $key => $value) {
$replace = array(
'' => ''
);
return $content;
}
}
$content = str_replace(array_keys($replace), $replace, $content);
return $content;
}

add_filter('the_content', 'replace_text_wps',99);
Код в некоторой степени успешен, но проблема в том, что все H2 возвращаются с id="2" вместо 0/1/2/3/и т. д. См. изображение исходного кода ниже.
Изображение
< /p>
Что не так в моем коде и как я могу сделать так, чтобы он считал каждый H2 и возвращал идентификатор на основе количества встреченных H2. Это работает в первом примере, где H2 извлекаются и заменяются ссылками, но не работает во втором примере.
Большое спасибо за помощь!

Подробнее здесь: https://stackoverflow.com/questions/763 ... mber-of-h2
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»