你是对的。
功能表\\u顺序不再用于多媒体资料中的媒体。不幸的是,库顺序的唯一“来源”似乎是嵌入在页面/帖子内容中的库短代码的“ids”参数。
不确定这是出于设计还是疏忽,但也可能是出于设计,因为您现在可以在图库中包含媒体,即使它没有“附加”到页面/帖子。在任何情况下,下面是我用来获取ID并根据快捷码中指定的顺序获取附件的方法。
关键是调用get\\u posts时的“orderby”参数必须是“post\\u in”,这告诉它按照“include”参数中指定的post id顺序进行排序。见下文。
// helper function to return first regex match
function get_match( $regex, $content ) {
preg_match($regex, $content, $matches);
return $matches[1];
}
// Extract the shortcode arguments from the $page or $post
$shortcode_args = shortcode_parse_atts(get_match(\'/\\[gallery\\s(.*)\\]/isU\', $post->post_content));
// get the ids specified in the shortcode call
$ids = $shortcode_args["ids"];
// get the attachments specified in the "ids" shortcode argument
$attachments = get_posts(
array(
\'include\' => $ids,
\'post_status\' => \'inherit\',
\'post_type\' => \'attachment\',
\'post_mime_type\' => \'image\',
\'order\' => \'menu_order ID\',
\'orderby\' => \'post__in\', //required to order results based on order specified the "include" param
)
);
这并不理想,如果WP-core能够将这种排序存储在数据库中的某个地方,那就太好了,但在我们找到更好的方法之前,它是有效的。
希望有帮助!