Bearbeiten des wp_head-Inhalts

Ich würde gerne wissen, ob es mir möglich ist, die Ausgabe von wp_head () zu manipulieren?

Im Moment benutze ich das Yoast SEO Plugin , um einige Social Tags in meine Beiträge einzufügen (og: *).

Jetzt ist diese Seite ein Remake eines älteren Blogs auf Umbraco-Basis, und die Permalink-Struktur ist anders, also sind die alten URLs 301 zu den neuen URLs, aber das erfordert die alte URL, um die richtige Anzahl zu behalten, also haben wir ein benutzerdefiniertes Feld stellt die “addthis: url” wenn erforderlich zur Verfügung … Leider benutzen facebook & twitter diese URL nicht, aber sie benutzen die Seiten “og: url” Metatag, die das plugin zur Verfügung stellt (das auf die neue URL zeigt) und scheint dass es in der Post nicht manipuliert werden kann.

Meine Idee ist, dass, bevor der wp_head ausgedruckt wird, ich im Grunde eine Suche-und-ersetzen würde, um diese “og: url” zu ändern, aber ich habe keinen Weg gefunden, das zu tun …

Was ich also frage ist, ob meine Idee richtig ist und wie man es macht, oder gibt es einen besseren / offiziellen Weg, diese Lösung zu reparieren?

Solutions Collecting From Web of "Bearbeiten des wp_head-Inhalts"

Informationen, die an den wp_head Aktions-Hook angehängt sind, werden bei ihrem wp_head als echo (falls erforderlich) wp_head . Es gibt keine “wp_head” Inhaltszeichenfolge, die Sie suchen und ersetzen können.

  1. Sie müssen die Callback-functionen / Methoden für die Daten finden, die Sie manipulieren möchten, und hoffen, dass die eingebauten Hooks Ihnen helfen werden.
  2. Oder entfernen Sie diese callbacke und fügen Sie eigene hinzu, um sie zu ersetzen
  3. Oder versuchen Sie die Pufferung der Ausgabe um wp_head :

     ob_start(); wp_head(); $head = ob_get_contents(); ob_end_clean(); echo $head; 

Sie könnten zum Beispiel eines der folgenden Dinge tun:

  1. Haken Sie sich in wp_head und geben Sie Ihre eigenen Metainformationen aus. Dies könnte als Post-Meta definiert werden .
  2. Haken Sie sich in einen Filter / eine Aktion des Plugins ein, wenn es eines gibt, und ändern Sie das Meta, bevor es ausgedruckt wird.

// Bearbeiten

Ich hatte nur einen kurzen Blick auf das Plugin.

Wenn Sie die og:url ändern möchten, können Sie das folgendermaßen tun:

 if (is_single()) { remove_action('wpseo_opengraph', array('WPSEO_OpenGraph', 'url'), 12); add_action('wpseo_opengraph', 'wpse_131062_my_og_url', 12); } function wpse_131062_my_og_url() { // this post meta has to be set up and filled by you! if ($url = get_post_meta('my_og_url')) { ?>  < ?php } } 

Dieser Code ist jedoch nicht getestet .

Ich habe es geschafft, diesen Beitrag zu finden: https://wordpress.stackexchange.com/a/75168/45611

Es hatte im Grunde, was ich brauchte.

 /* * This whole block here changes the og:url that WordPress Seo Yoast provides * It uses the addthis_share_url custom field, and if it is not present, it defaults * to the permalink, just like the plugin does. */ add_action('get_header', 'blog_template_add_ob_start'); add_action('wp_head', 'blog_template_add_ob_end_flush', 100); function blog_template_add_ob_start() { ob_start('blog_template_add_filter_wp_head_output'); } function blog_template_add_ob_end_flush() { ob_end_flush(); } function blog_template_add_filter_wp_head_output($output) { $altUrl = get_post_custom_values('addthis_share_url')[0]; $url = get_permalink(); if ($altUrl && is_single()) { $output = str_ireplace('', '', $output); } return $output; } 

Danke Leute, ihr wart hilfreich!