Wie bekomme ich die volle absolute URL für die Post-Attachments?

Ich versuche, die Open Graph-Tags manuell zu füllen und habe Probleme beim Festlegen des Inhalts für das og:image Tag.

In einer einzigen Post-Seite habe ich es so eingestellt:

 ID), 'medium'); $image = esc_attr($thumbnailSrc[0]); ?> <meta property="og:image" content=""> 

Das Ergebnis ist folgendes:

  

Auf dem Open Graph Debugger bekomme ich dann diesen Fehler:

 Object at URL 'http://website.com' of type 'article' is invalid because the given value '/wp-content/uploads/image.jpg' for property 'og:image:url' could not be parsed as type 'url'. 

Wie kann ich den Anhang erhalten, so dass die URL ist: http://img.daswordpress.com/post-thumbnails/image.jpg ?

Solutions Collecting From Web of "Wie bekomme ich die volle absolute URL für die Post-Attachments?"

esc_attr() möglicherweise nicht auf der url erforderlich, die von wp_get_attachment_image_src abgerufen wird.

Ich habe auf ein Codebeispiel von der WordPress Codex-Seite auf wp_get_attachment_image_src verwiesen und den folgenden Code angepasst, der für mich funktioniert.

 global $post; $thumbnailSrc = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'medium'); if ( $thumbnailSrc ) : echo ''; endif; 

Edit: Da Sie das $ post-Objekt außerhalb der WordPress-Schleife verwenden, müssen Sie global $post; deklarieren global $post; bevor Sie $post->ID . Ich habe es dem obigen Codebeispiel hinzugefügt.

Sie können has_post_thumbnail () und get_the_post_thumbnail_url () verwenden , um eine absolute URL für das Posts-Feature-Image zu erhalten.

Gemäß dem Codex has_post_thumbnail() , ob der Beitrag ein Bild angehängt hat und get_the_post_thumbnail_url() gibt die post-Thumbnail-URL zurück.

Ich habe den folgenden Code getestet:

 global $post; if ( has_post_thumbnail($post->ID) ) { echo ''; } 

Wie in einem vorherigen Kommentar erwähnt, verwenden Sie das $ post-Objekt vor dem Start der WordPress-Schleife und müssen global $post; deklarieren global $post; bevor Sie $post->ID .

Um auf das aktuelle Post-Objekt außerhalb der Schleife zuzugreifen, müssen Sie die $post Variable global deklarieren.

 < ?php global $post; ?>