次のコードを使用して、ID付きの投稿から添付画像を抽出します。
$args = array(
'post_type' => 'attachment',
'post_parent' => $product_id,
'post_mime_type' => 'image',
'orderby' => 'menu_order',
'order' => 'ASC',
'numberposts' => -1
);
$attachments = get_posts($args);
問題は、上記のコードがすべての添付ファイルを返すことです。結果から注目の画像を削除する方法はありますか? $ argsクエリ、ifステートメント、または$ attachments配列をフィルタリングすることによってそれを実行するかどうかは気にしません。
親切なメリアノスニコス
単にpost__not_in
引数を追加してget_post_thumbnail_id()
関数を使用するだけです。
$args = array(
'post_type' => 'attachment',
'post_parent' => $product_id,
'post_mime_type' => 'image',
'orderby' => 'menu_order',
'order' => 'ASC',
'numberposts' => -1,
'post__not_in' => array(get_post_thumbnail_id($product_id))
);
$attachments = get_posts($args);
はい、
基本的にあなたが望むものはこれです
<?php
//get post thumbnail url
$post_thumbnail_id = get_post_thumbnail_id();
$post_thumbnail_url = wp_get_attachment_url($post_thumbnail_id);
//get your attachments. <- your query
//now loop your attachments <- foreach or something
if($attachment->ID != $post_thumbnail_id)
{
//if the attachment id is the same as your post_thumbnail_id it means you are looking at your feature image
}
上記のコードの後にこれを試してください。
foreach( $attachments as $key => $attachment ) {
if ( $attachment->ID == get_post_thumbnail_id( $product_id ) ) {
unset ( $attachments[$key] );
break;
}
}
これで$attachments
は、注目の画像を除く$product_id
のすべての添付ファイルを含みます。