Как получить все post_parents сообщения?

К сожалению, $ post-> post_parent – это единственная переменная, а не массив. Я хочу получить все post_parents сообщения (особенно вложения, которое часто связано с несколькими сообщениями!).

Solutions Collecting From Web of "Как получить все post_parents сообщения?"

Вы явно ссылаетесь на эту функцию, которая используется следующим образом:

global $post; $parents = get_post_ancestors( $post->ID ); 

Эта функция дает список идентификаторов сообщений, к которым прикрепляется приложение.

Вставьте этот код в functions.php

 /** * get_attachment_parent fx gives array of post id to which given attachment attach * @param [int $att_id attachment id * @return array list of post ids */ function ravs_get_attachment_parent( $att_id ){ $args=array( 'posts_per_page' => -1, ); $posts=get_posts($args); if( ! $posts && empty($posts) ) return array(); $ancestors = array(); foreach ($posts as $post) { $attachment = get_post_thumbnail_id($post->ID); if( $att_id === $attachment && ! in_array($post->ID, $ancestors)) $ancestors[] = $post->ID; } return $ancestors; } 

и получить доступ к этой функции в цикле

 if( has_post_thumbnail() ) print_r( ravs_get_attachment_parent( get_post_thumbnail_id(get_the_ID())) ); 

или внешняя петля

 print_r( ravs_get_attachment_parent( $attachment_id ); 

Основываясь на решении @Ravs, я справился с этим. Эта функция возвращает все родительские сообщения и проверяет все вложения, прикрепленные ко всем сообщениям.

Смотрите это: http://codepad.org/GmNh7M9e