2017-09-11 1 views
0

Ich habe Schwierigkeiten, URLs neu zu schreiben. BC facebook folgt nicht 301 Weiterleitungen für Likes (ugh) Ich muss einen Weg finden, um den og:url Parameter wordpress spuckt aus, um http anstelle von https zu bekommen.String in der Funktion get_permalink() ersetzen?

Ich versuche, nach dem ohne Erfolg:

<?php 
$oldlink = get_permalink(get_the_id()); 
$newlink = str_replace('https', 'http', $oldlink); 
?> 
<meta property="og:url" content="<?php echo $newlink ?>"/> 

Irgendwelche Ideen, warum diese Methode funktionieren kann nicht?

+0

get_the_id funktioniert in der WP-Schleife. – inarilo

+0

Warum genau können Sie https im Meta-Tag nicht verwenden? – Steve

+0

und was Sie von get_permalink abrufen (get_the_id()); ? falsch? – PayteR

Antwort

0

Wenn Sie es in der header.php verwenden und die Seite, die Sie laden, einzelne Post/Seite/benutzerdefinierte Post ist, können Sie the_post(); vor Ihrer Aussage, um die Schleife zu initiieren.

<?php the_post(); ?> 
<meta property="og:url" content="<?php $oldlink = get_permalink(get_the_id()); $newlink=str_replace('https','http',$oldlink); echo $newlink; ?>" /> 

Die Sache ist die, dass die get_the_id() Funktion nur innerhalb der Schleife arbeitet, so mit heraus, es Initiieren gibt es Fehler Ergebnisse verursachen get_permalink Funktion nichts brauchbar zurückzukehren.

Aber Vorsicht, wenn Sie the_post später auf der gleichen Seite nach dem ersten wieder aufrufen, kann es Ihre Datenausgabe durcheinander bringen. Achten Sie also darauf, dass Sie es nur einmal pro Seite aufrufen (wenn Sie keine benutzerdefinierte Schleife von cource erstellen).