J'utilise wp_query pour obtenir les médias téléchargés. Tout fonctionne bien, mais wp_query renverra les médias sans publication. Ce n'est pas ce que je voulais. Comment puis-je exclure les médias non liés de wp_query?
Voici les arguments de ma requête qui ressemblent à:
$args = array(
'post_type' => 'attachment',
'post_status' => 'inherit',
'posts_per_page' => -1,
);
$attachemnt = new WP_Query($args);
Existe-t-il un argument pouvant être utilisé pour exclure les médias non attachés dans la classe wp_query?
Merci
Tous les médias (un peu incorrectement) dans la table $wpdb->posts
seront des "pièces jointes", qu'elles soient réellement attachées ou non. Les "pièces jointes" qui sont réellement attachées auront un post_parent
différent de 0, vous avez donc besoin de toutes les pièces jointes qui ont un 0 dans la colonne post_parent
, si je vous comprends bien.
$args = array(
'post_type' => 'attachment',
'post_status' => 'inherit',
'posts_per_page' => -1,
'post_parent__not_in' = array(0)
);
$attachment = new WP_Query($args);
var_dump($attachment->posts);
<?php if ( $post->post_type == **'post type name'** && $post->post_status == 'publish' ) {
$attachments = get_posts( array(
'post_type' => 'attachment',
'posts_per_page' => -1,
'post_parent' => $post->ID,
'exclude' => get_post_thumbnail_id()
) );
if ( $attachments ) {
foreach ( $attachments as $attachment ) {
$class = "post-attachment mime-" . sanitize_title( $attachment->post_mime_type );
$thumbimg = wp_get_attachment_link( $attachment->ID, 'thumbnail-size', true );
echo '<li class="' . $class . ' data-design-thumbnail">' . $thumbimg . '</li>';
}
}
}
?>