Preg Заменить теги Wordpress

Я показываю содержимое WordPress на своем собственном сайте.

Однако в содержании есть такие вещи, как:

[caption id="attachment_367" align="aligncenter" width="432" caption="Version 2010!!"]

В основном я хотел бы раздеть все, что находится внутри [] и самих [].

Помощь очень ценится!


person azz0r    schedule 09.06.2010    source источник
comment
Все ли они [caption] или есть другие теги контента типа [shortcode]?   -  person artlung    schedule 09.06.2010


Ответы (2)


Вам нужно регулярное выражение /\[.*?\]/

<?php
$old_content = 'Hello [caption id="attachment_367" align="aligncenter" width="432" caption="Version 2010!!"] World!';
$new_content = preg_replace('/\[.*?\]/', '', $old_content);
echo $new_content; // result: "Hello World!"
?>
person JYelton    schedule 09.06.2010
comment
Пожалуйста, добавьте '?' после '*' (сделайте его нежадным) или сделайте его \\[[^\\]]*\\] (любым, кроме ']'), в противном случае эта строка не будет отображать «это действительное содержимое должно остаться»: [ to remove ] this valid content should stay [another remove]. - person Wrikken; 09.06.2010

Поэтому такой код, как [caption id="attachment_367" align="aligncenter" width="432" caption="Version 2010!!"], для меня выглядит как шорткод.

Если вы хотите, чтобы он ничего не делал, вы можете добавить это в файл functions.php вашей темы (если в вашей теме нет этого файла, вам нужно будет создать его и заключить этот код внутри <?php и ?>:

function do_nothing_caption() {
  return '';
}
add_shortcode('caption', 'do_nothing_caption');
person artlung    schedule 09.06.2010