Wie verwende ich relative Links auf meinen Seiten?

In meinen Webseiten möchte ich relative Links anstelle von absoluten Links verwenden.

Seiten erlauben jedoch PHP-Code nicht in ihnen, so kann ich nicht von einer URL in einer relativen Weise tun.

Wie bekommt man relative URLs innerhalb von WordPress-Seiten, so dass sich ändernde Domainnamen nicht auf die Links auswirken?

Solutions Collecting From Web of "Wie verwende ich relative Links auf meinen Seiten?"

$my_url = 'my/relative/url.php'; echo site_url($my_url); 

Wenn site_url () alleine verwendet wird, wird der absolute Pfad zu Ihrem Blog zurückgegeben. Aber, wenn Sie ein Argument hinzufügen, wie in meinem obigen Beispiel, wird es den absoluten Pfad zu Ihrem Pfad voranstellen. Stellen Sie nur sicher, dass Ihre URL keinen führenden Schrägstrich enthält (zB: / this / may / not / work).

Wenn Sie WordPress im Root-Verzeichnis Ihres Servers installiert haben, können Sie einen server-relativen Pfad verwenden (dieser verwendet den führenden Schrägstrich, um anzugeben, dass er beim Server-Root beginnt). Wenn Ihr Blog also unter http://www.me.com/blog installiert ist, können Sie mit /blog/my_link.php sicher auf Ihre relativen Links /blog/my_link.php .

WordPress hat eine eingebaute function zum Entfernen von Protokoll und Domain von absoluten URLs, wp_make_link_relative , in /wp-includes/formatting.php :

 function wp_make_link_relative( $link ) { return preg_replace( '|https?://[^/]+(/.*)|i', '$1', $link ); } 

Um diese function zB auf Permalinks anzuwenden, fügen Sie einfach einen Filter hinzu:

 add_filter( 'the_permalink', 'wp_make_link_relative' ); 

In den Tipps zu Deluxe-Blogs wird gezeigt, wie Sie dies auf verschiedene Arten von Links anwenden können, während Sie sicherstellen, dass Feed- und Sitemap-Links nicht betroffen sind:

 add_action( 'template_redirect', 'rw_relative_urls' ); function rw_relative_urls() { // Don't do anything if: // - In feed // - In sitemap by WordPress SEO plugin if ( is_feed() || get_query_var( 'sitemap' ) ) return; $filters = array( 'post_link', 'post_type_link', 'page_link', 'attachment_link', 'get_shortlink', 'post_type_archive_link', 'get_pagenum_link', 'get_comments_pagenum_link', 'term_link', 'search_link', 'day_link', 'month_link', 'year_link', ); foreach ( $filters as $filter ) { add_filter( $filter, 'wp_make_link_relative' ); } } 

zwei Möglichkeiten, das zu tun:

  • Verknüpfen ohne Verwendung von Permalinks

  • Permalinks verlinken

Ich benutzte den Shortcode mit get_bloginfo für relative Pfade innerhalb des tatsächlichen Post-Inhalts. Ich wollte es in ein Full-Blow-Plugin umwandeln, aber ich hätte den Leuten bei Automatic eine E-Mail schreiben können, die ich nicht mehr finden kann. Hier ist ein einfaches Beispiel dafür, wie es funktioniert, da ich meinen Atm nicht finden kann, da ich es nicht mehr benutze, wie in Bainternet post, vielleicht haben die Leute von automatic das auch bemerkt.

Eine einfache Shortcode-function, die Ihre Basis-URL zurückgibt:

 function my_relative_post_image_link() { $linky = get_bloginfo('wpurl'); echo $linky; } add_shortcode('posty', 'my_relative_post_image_link'); 

Wenn Ihre Site example.com ist, wird example.com als Text zurückgegeben, wenn Sie den Shortcode [posty] in Ihren Content einfügen.

Um dies tatsächlich zu nutzen, müssen Sie die function anpassen, indem Sie mehr Parameter von get_blogfino verwenden und sie in die erforderlichen HTML-Tags http://codex.wordpress.org/Function_Reference/get_bloginfo einfügen

Diese function sollte in die functions.php Ihres Themes functions.php . Es wird alle Permalinks relativ machen.

 // make root relative function make_href_root_relative($input) { return preg_replace('!http(s)?://' . $_SERVER['SERVER_NAME'] . '/!', '/', $input); } function root_relative_permalinks($input) { return make_href_root_relative($input); } add_filter( 'the_permalink', 'root_relative_permalinks' ); 

Bilder im Inhalt sollten absolute Links verwenden, wenn diese Bilder ausgehen, um Leser zu füttern. Wenn Bilder relative Links verwenden, versuchen die Feed-Reader, die Bilder von ihren eigenen Domains zu laden. Es gibt einen kleinen performanceseinbruch bei der Verwendung relativer Links zu Bildern. Es scheint keinen Unterschied mit den relativen Permalinks zu machen.

Auf einigen Servern müssen Sie möglicherweise Base-href zu Ihrem Site-Root hinzufügen, um sicherzustellen, dass die Links wie erwartet funktionieren.

Ich denke, dass es ein Absolute Relative Links Plugin gibt , das alle Links auf Ihren Seiten durch relative Links ersetzt. Es funktioniert ziemlich schön, was bedeutet, dass Sie nicht zurückgehen müssen und irgendwelche alten Links korrigieren müssen, die immer noch absolut sind.

Dieses Tutorial zeigt Ihnen eine grundlegende Möglichkeit, Post-Permalink zu relativ zu ändern. Ich habe auch diese Methode verbessert, um alle Links in WordPress relativ zu machen. Der endgültige Code ist hier .