it-swarm.com.de

get_attached_media () auf der Autorenseite funktioniert nicht

Ich habe ein sehr nerviges und einfaches Problem.

Ich kann get_attached_media () auf einer Taxonomieseite verwenden, um die angehängten Medien eines benutzerdefinierten Posts abzurufen.

function author_loop() {

    $post = get_the_ID();

    // Where the problem lies, only on author pages. get_attached_media returns nothing.
    $attach = get_attached_media( 'application/pdf', $post );
    $attach = current( $attach );

    $attach_url = wp_get_attachment_url( $attach );

    printf( '<a href="%s">%s</a>', $attach_url, get_the_title() );

}

Wenn ich jedoch genau dieselbe Funktion auf der Autorenseite verwende, wird ein leeres Array zurückgegeben.

Ich habe so lange versucht, herauszufinden, warum, aber kein Glück.

Alles, was in der Schleife sowohl für die Taxonomie- als auch für die Autorenseiten enthalten ist, funktioniert einwandfrei, mit Ausnahme des Auffindens der angehängten Medien für die Veröffentlichung.

Bitte helfen Sie.

1
user87064

Ich gehe davon aus, dass Sie ein einfaches Missverständnis darüber haben, was diese Funktion tatsächlich tut und wofür sie verwendet werden sollte: get_attached_media() holt einfach alle ) untergeordnete Beiträge für einen bestimmten Beitrag:

if ( ! $post = get_post( $post ) )
    return array();

$args = array(
    'post_parent'    => $post->ID,
    'post_type'      => 'attachment',
    'post_mime_type' => $type,
    'posts_per_page' => -1,
    'orderby'        => 'menu_order',
    'order'          => 'ASC',
);

Vom Codex :

Rufen Sie an den übergebenen Beitrag angehängte Medien ab. Verwendet get_children().

Wenn Sie dies für ein Autorenarchiv verwenden, kann die Hauptabfrage mit $GLOBALS['wpdb']->get_queried_object() oder nur mit get_queried_object() abgerufen werden. Nochmals von der Codex Seite:

Wenn Sie sich in einem Autorenarchiv befinden, wird das Autorenobjekt zurückgegeben

Jetzt ist ein Autor standardmäßig ein WP_User und kein post Objekt, das Kinder haben kann. Um alle Medien abzurufen, die ein Autor an Beiträge angehängt hat, müssen Sie die Beiträge eines Autors durchlaufen und dann mit $media = get_attached_media( get_the_ID() ); nach den Medien in der Schleife fragen.

1
kaiser