@lexstile

Как вывести на WP доп. поля к изображениям?

Вывод самих фото:
<? 
				if(have_posts()) :
					while(have_posts()) :
						the_post();
			?>
						<h1><?the_title();?></h1>
			<?			
						the_content();?>
						
						<?if(get_post_meta(get_the_ID(),'cr_upload',true)){
						$pics = get_post_meta(get_the_ID(),'cr_upload',true);
						?>
						<pre>
						<?print_r($pics);?>
						</pre>
						<?
						foreach($pics as $pic){?>
						<div class="col-md-3 col-sm-4 col-xs-12 text-center img-gallery">
							<a class="fancy" rel="group" href="<?=$pic["cr_upload"]?>"><img src="<?=$pic["cr_upload"]?>" /></a>
						</div>
						<?}
						}else{
						?>
							<div class="col-xs-12 text-center">В этом месяце нет фотографий.</div>
						<?}
						?>
						<div class="clearfix"></div>

					<?endwhile;?>
			  <?endif;?>

Как вытащить поля к каждой картинке?(подпись, описание...)
  • Вопрос задан
  • 429 просмотров
Решения вопроса 2
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
Судя по этому 'cr_upload', вы используете мой старый плагин, к сожалению, я тогда был глуп и хранил в поле именно URL а не id, пиши я его в данный момент, я бы сохранил как массив, из id, url, alt и title.

Получить id можно следующим образом

$url = get_post_meta(get_the_ID(),'cr_upload',true);
$attachment = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE guid='%s';", $url )); 
return $attachment[0];


ну а зная id можете вытащить по нему уже все что, угодно.

UPD: Вроде нашел исходник
Это оно ?
ed47467dd6.jpg
Если хотите, могу вечером слегка подправить его.
Ответ написан
@lexstile Автор вопроса
сделал пока так:
<? 
				if(have_posts()) :
					while(have_posts()) :
						the_post();
			?>
						<h1><?the_title();?></h1>
			<?			
						the_content();?>
						
						<?if(get_post_meta(get_the_ID(),'cr_upload',true)){
						$pics = get_post_meta(get_the_ID(),'cr_upload',true);
						?>
						<?// получаем вложения
						$attachments = get_posts( array(
							'post_type' => 'attachment',
							'posts_per_page' => -1,
							'post_parent' => $post->ID
						));
					
						
						?>

						<?
						$cnt=0;
						foreach($pics as $pic){

						?>
						<div class="col-md-3 col-sm-4 col-xs-12 text-center img-gallery">
							<a class="fancy" rel="group" href="<?=$pic["cr_upload"]?>"><img src="<?=$pic["cr_upload"]?>" /></a>
							<?
							$alt = get_post_meta($attachments[$cnt]->ID, '_wp_attachment_image_alt', true);
							echo "<p>" . $attachments[$cnt]->post_excerpt . "<br>";
							echo $attachments[$cnt]->post_content . "</p>";
							$cnt++;
							?>
						</div>
						<?}
						}else{
						?>
							<div class="col-xs-12 text-center">В этом месяце нет фотографий.</div>
						<?}
						?>
						<div class="clearfix"></div>

					<?endwhile;?>
			  <?endif;?>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Palych_tw
@Palych_tw
Типа веб-разработчик
Что в массиве $pics? вообще attachment'ы - это такие же посты, и вы по ID картинки можете вытянуть title, content и прочее
Ответ написан
@ommunist
Делаю и поддерживаю мультиязычные сайты
Например, так wp_get_attachment_image
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы