wake-up-neo.com

Entfernen Sie das http-Protokoll von Bildern

Ich habe meinen Kopf gegen die Wand geschlagen und versucht, meine Posts zu filtern, um das http: -Protokoll aus dem img src zu entfernen, und ich denke, ich habe möglicherweise eine Lösung gefunden. Sieht jemand etwas falsch mit dieser Lösung in der Schleife:

$content = get_the_content();
$content = str_replace(array('http:', 'https:'), '', $content);

echo $content
2
brandozz

Der von Ihnen angegebene Code kann Probleme mit URLs von Drittanbietern in Hyperlinks verursachen, auf denen kein https ausgeführt wird. Sie können dies beheben, indem Sie Ihre Home-URL angeben, z.

$content = str_replace( set_url_scheme( home_url(), 'http' ), set_url_scheme( home_url(), 'relative' ), $content);

Als Nächstes wenden Sie dies an, wenn Sie den Inhalt anzeigen möchten, was bedeutet, dass Sie einen zusätzlichen Schritt ausführen müssen. Sie müssen nämlich einen Filter mit dem Namen the_content anwenden, der eine abschließende Verarbeitung durchführt, z. B. das Erstellen von Absätzen usw.:

$content = get_the_content();
$content = str_replace( set_url_scheme( home_url(), 'http' ), set_url_scheme( home_url(), 'relative' ), $content);
$content = apply_filters( 'the_content', $content );

echo $content

Rufen Sie für maximale Kompatibilität einfach the_content(); auf und verwenden Sie den the_content-Filter, um Ihre Änderungen vorzunehmen:

add_filter( 'the_content', 'brandozz_url_filter' );

function brandozz_url_filter( $content ) {
    $content = str_replace( set_url_scheme( home_url(), 'http' ), set_url_scheme( home_url(), 'relative' ), $content);
    return $content;
}

Filter und Hooks können sich in einem Plugin oder functions.php befinden. So sieht es als Plugin aus:

/**
 * Plugin Name:       Relative local URLs
 * Plugin URI:        http://wordpress.stackexchange.com/questions/174228/remove-the-http-protocol-from-images
 * Description:       Replaces http:// URL containing the home url, with relative protocol urls 
 * Version:           1.0.0
 * Author:            Tom J Nowell
 * Author URI:        http://tomjn.com/
 */

add_filter( 'the_content', 'tomjn_filter_relative_content_urls' );

function tomjn_filter_relative_content_urls( $content ) {
    $content = str_replace( set_url_scheme( home_url(), 'http' ), set_url_scheme( home_url(), 'relative' ), $content);
    return $content;
}
8
Tom J Nowell