Любых идей, что может быть не так с этим регулярным выражением - это, кажется, не найти ничего:Regex шаблон для сложного HTML DIV
function ad_content($content) {
if (is_single()) {
$find = '#<div id=\"attachment_(\d+)\" class=\"wp-caption aligncenter\" style=\"width: (\d+)px\">(.*?)</div>#s';
$replace1 = '11111';
$content = preg_replace($find,$replace,$content,1);
}
return $content;
}
add_filter ('the_content','ad_content');
Я пытался что-то вроде основного
$find = '#attachment#';
и это действительно работает.
Когда я использую указанное выше регулярное выражение, оно ничего не заменяет и не дает никаких ошибок. Таким образом, я полагаю, он ничего не нашел. Вот что он должен найти:
<div id="attachment_167" class="wp-caption aligncenter" style="width: 600px"><a href="http://www.url.com"><img class="size-full wp-image-167" alt="text" src="http://www.url.com" width="600" height="776" /></a><p class="wp-caption-text">text – text</p></div>
Я пробовал его на this regex validator и это делает матч.
ОТВЕТ:
Я думаю, что я, наконец, понял это - the_content крюк, кажется, не относится к моим делам. Просто как тот.
Что не используется парсер DOM для этого? Это было бы предпочтительным методом. –
http://stackoverflow.com/a/1732454/1253312 –
Потому что я понятия не имею, что это такое. Я ЭТО НУЖНО. Вы были бы любезны пролить свет? – kat