2016-05-11 7 views
0

В моих изображениях для вложения Wordpress есть категории и теги. Я хотел бы назвать эту информацию в фотогалерее.Wordpress Приложения из медиа-библиотеки

Хорошие новости: правильные изображения появляются при вызове в цикле. Плохая новость: мне не удается вызвать конкретные данные внутри галереи. Проблемы во всех колпачков ниже:

<?php 
$the_query = new WP_Query(array(
    'post_type' => 'attachment', 
    'post_status' => 'inherit', 
    'category_name' => 'architecture' 
    )); 
while ($the_query->have_posts()) : 
    $the_query->the_post(); 
?> 
<figure class="gallery-photo" itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject" data-groups='["all", "PHP ATTACHMENT TAG"]'> 
    <a class="photo-link" href="<?php wp_get_attachment_image(); ?>" itemprop="contentUrl" data-size="CALL PHP ATTACHMENT IMAGE WIDTH & HEIGHT"> 
     <img src="<?php wp_get_attachment_url ('full'); ?>" itemprop="thumbnail" /> 
     <figcaption itemprop="caption description">PHP ATTACHMENT CAPTION</figcaption> 
     <div class="photo-title"><h2>PHP ATTACHMENT IMAGE TITLE</h2></div> 
    </a> 
</figure> 
<?php 
endwhile; 
wp_reset_postdata(); 
?> 

Некоторые вещи я пытался, но не получилось:

  1. <?php $meta = wp_get_attachment_metadata($image->ID, true); echo '.$meta[width]."x".$meta[height].';?>
  2. <?php $description = $post->post_content; echo $description;?>
  3. <?php $image->post_title; ?>

Вот плагин, для справки:

// Custom media taxonomies 
function add_categories_to_attachments() { 
    register_taxonomy_for_object_type('category', 'attachment'); 
} 
add_action('init' , 'add_categories_to_attachments'); 

function add_tags_to_attachments() { 
    register_taxonomy_for_object_type('post_tag', 'attachment'); 
} 
add_action('init' , 'add_tags_to_attachments'); 

Эти таможенные таксономии являются для меня новой концепцией, поэтому я пытаюсь изучить их путь вокруг них. Заранее благодарю за любую помощь!

+0

Вы пытались получить сообщение meta, которое прилагается к сообщению ID (изображение с этим ID)? –

+0

Я думаю, что это то, что я пробовал в # 1, не так ли? – BlueHelmet

+0

Я имел в виду 'get_post_meta()' :) –

ответ

0

Получил это! Ниже приведен код. Я определил wp_prepare_attachment_for_js(); и get_the_category(), а затем использовал их для функций внутри echo.

По сути, у меня есть запрос, в котором перечислены все вложения медиа-библиотеки, которые относятся к категории «фотография». Затем он извлекает информацию о каждом вложении (заголовок, подпись, ширину, высоту, url, название категории) внутри контейнера html галереи.

<?php 
    $the_query = new WP_Query(array(
    'post_type' => 'attachment', 
    'post_status' => 'inherit', 
    'category_name' => 'photography' 
    )); 

    while ($the_query->have_posts()) : 
    $the_query->the_post(); 
    ?> 
    <?php 
$attachment_data = wp_prepare_attachment_for_js($attachment->ID); 
$category = get_the_category($attachment->ID); 
     echo '<figure class="gallery-photo" itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject" data-groups='. esc_attr('["all","'.$category[0]->cat_name.'"]').'>'; 
     echo'<a class="photo-link" href="'.$attachment_data['url'].'" itemprop="contentUrl" data-size="'.$attachment_data['width'].'x'.$attachment_data['height'].'">'; 
     echo'<img src="'.wp_get_attachment_url ('medium').'" itemprop="thumbnail"/>'; 
     echo'<div class="photo-title"><h2>'.$attachment_data['title'].'</h2></div></a>'; 
     echo'<figcaption itemprop="caption description">'.$attachment_data['caption'].'</figcaption></figure>';?> 
    <?php 
    endwhile; 
    wp_reset_postdata(); 
    ?>