it-swarm.com.de

Erhalten Sie den Permalink des Netzwerk-Blogposts

Ich versuche, eine Funktion zu schreiben, mit der ich eine Beitrags-ID und eine Blog-ID angeben und dann den Permalink und den Titel des Blog-Beitrags zurückgeben kann.

Ich brauche dies, um effizient zu sein, da die Funktion in einer foreach-Schleife verwendet wird, die dazu führen kann, dass die Funktion mehr als 50 Mal ausgeführt wird.

Irgendwelche Ideen?

2
Pippin

Das hört sich ziemlich einfach an.

Verwenden Sie: http://codex.wordpress.org/Function_Reference/switch_to_blog

Um zurück zu gehen, verwenden Sie:

restore_current_blog();

Auf diese Weise können Sie von Standort zu Standort wechseln.

Dann: http://codex.wordpress.org/Function_Reference/get_permalink

Ich gehe davon aus, dass Sie sowohl die Blog-ID als auch die Post-ID haben.

Wenn dies der Fall ist, sollte die Verwendung dieser beiden Funktionen Ihr Problem lösen.

1

Nach dem obigen Vorschlag habe ich Folgendes gewählt:

$html = '<ul>';
foreach ( $recent_across_network as $post ) {

    switch_to_blog( $post->blog_id );

    $postURI = get_permalink( $post->ID );          
    $html .= '<li><a href="' . $postURI . '">' . $post->post_title . '</a></li>';

    restore_current_blog();
}
$html .= '</ul>';

dabei ist $recent_across_network eine Liste der letzten Posts aus einem Netzwerk mit mehreren Standorten, die mit der Transients-API zwischengespeichert wurden. Es gibt hier ein zugehöriges Tutorial .

Sie könnten gleichermaßen tun:

$postURI = get_blog_permalink( $post->blog_id, $post->ID );

statt switch_to_blog()/restore_current_blog() - nicht sicher, was effizienter ist?

0
strangerpixel