alle! Ich muss das Domain-Präfix www hinzufügen, nicht von Hand schreiben, jeder Filter als post_link, page_link, category_link und so weiter – es gibt einen globalen Filter für alle hinzugefügten URLs www. Methoden zum Ändern der allgemeinen Einstellungen in der Site-URL in der Datenbank oder zum Ändern von Optionen oder htaccess – passen einfach nicht. Danke im Voraus für Ihre Antwort.
Allgemeiner WordPress-Linkfilter
Wenn Sie es nicht über den wp-admin ändern können, können Sie Folgendes verwenden:
add_filter( 'post_link', array($this, 'changePermalinks'), 10, 3);
add_filter( 'page_link', array($this, 'changePermalinks'), 10, 3);
add_filter( 'post_type_link', array($this, 'changePermalinks'), 10, 3);
add_filter( 'category_link', array($this, 'changePermalinks'), 11, 3);
add_filter( 'tag_link', array($this, 'changePermalinks'), 10, 3);
add_filter( 'author_link', array($this, 'changePermalinks'), 11, 3);
add_filter( 'day_link', array($this, 'changePermalinks'), 11, 3);
add_filter( 'month_link', array($this, 'changePermalinks'), 11, 3);
add_filter( 'year_link', array($this, 'changePermalinks'), 11, 3);
function changePermalinks($permalink, $post) {
if ( strpos($permalink, '://www.') ) return $permalink;
return str_replace('://', '://www.', $permalink);
}
Gehen Sie in Ihrem Dashboard zu Einstellungen -> Allgemein und die vierte und fünfte Option sollte “WordPress-Adresse (URL)” und “Site-Adresse (URL)” sein. Ändere das http://example.com
zu http://www.example.com
und es sollte alle Links ändern.
-
Danke für deine Antwort, aber diese Lösung ist nichts für mich.
– SergeevDMS
25. Februar 2014 um 16:36 Uhr
-
Okay, kannst du erklären, warum das nicht die Lösung ist?
– Howli
25. Februar 2014 um 16:48 Uhr
-
Denn bei unserem Hosting wird diese Option aus dem Admin-Panel entfernt.
– SergeevDMS
26. Februar 2014 um 6:23 Uhr
-
2016 führt dies in functions.php zu einer leeren URL
add_filter( 'post_link', array($this, 'changePermalinks'), 10, 3);function changePermalinks($permalink, $post) { $search = array('#devauthor#is','#author#is'); $replace = array('www','www'); $thePermalink = preg_replace($search, $replace, $permalink); return $thePermalink; }
– Roberthuttinger
25. März 2016 um 15:05 Uhr
-
^ Wenn nicht im Objektkontext, sollte es nicht verwendet werden
$this
Stichwort. So wird es seinadd_filter( 'post_link' , 'changePermalinks')
im Gegensatz zuadd_filter( 'post_link' , array($this, 'changePermalinks'))
– Joe Schnalle
14. Juli 2017 um 10:35 Uhr