У меня есть страница WordPress, на которой мои изображения отображаются слева, а текст — справа. Изображения загружаются под текст, когда страница загружается на мобильный экран. У меня есть PHP-код для достижения всего этого, в основном он переключает изображения и текстовые места, а также атрибуты влево или вправо для каждого.
Но так как это на месте, у меня проблемы с добавлением подписей к изображениям. Когда я хочу добавить подписи к изображениям в моем администраторе WordPress, подпись не попадает под изображение, но появляется в моей текстовой статье (так, в правой части страницы). Я думаю, что мои атрибуты кода PHP автоматически это место для каждого текста.
Мне нужно, чтобы подписи к изображениям находились под моими изображениями, и я думаю, что это во многом связано с тем PHP-кодом, который вы можете увидеть ниже. Но я не знаю, как это исправить.
Вот мой PHP:
<?php if (have_posts()): ?>
<div class="container">
<?php while(have_posts()): the_post(); ?>
<div class="row">
<div id="content_post">
<div class="col-lg-push-5 col-lg-6 col-md-push-6 col-md-6 col-sm-12 col-xs-12 ">
<?php
//get content from back office , filter imgs except featured img to place them later in <div id='img_content_right'>
$content2 = get_the_content();
$removed_imgs = array();
$content2 = preg_replace_callback('#(?!<img.+?id="featured_img".*?\/>)(<img.+? />)#',function($r) {
global $removed_imgs;
$removed_imgs[] = $r[1];
return '';
},$content2);
//add filter to the_content to strip images except img_menu et featured_img
add_filter('the_content', 'strip_images',2);
function strip_images($content){
$content=preg_replace('/(?!<img.+?id="img_menu".*?\/>)(?!<img.+?id="featured_img".*?\/>)<img.+?\/>/','',$content);
return $content;
}
the_content();
?>
</div>
</div>
<div class="col-lg-pull-6 col-lg-5 col-md-pull-6 col-md-6">
<div id='img_content_right'>
<?php
//append the images stripped from content
foreach($removed_imgs as $img){
echo $img; } ?>
</div>
</div>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
Чтобы правильно обработать заголовок, вам нужно получить объект сообщения вложения, а затем посмотреть на post_excerpt
,
В WordPress есть функция get_attached_media, который будет перечислять все изображения в содержании сообщений. Это будет легче повторять, чем использовать регулярные выражения для поиска изображений.
Других решений пока нет …