wake-up-neo.net

Wie verwende ich Live-Images bei der lokalen Installation?

Wie verwende ich Live-Images bei einer lokalen WP Installation? Ich möchte so etwas wie den Code hier unten im wp-config.php machen. Das Problem ist, dass die siteurl ein relativer Pfad und keine URL sein muss. Ich möchte eine lokale Umgebung einrichten, um einige Teile offline zu testen und die Bilder anzuzeigen.

if ($_SERVER['SERVER_ADMIN'] == 'dev') {
  define('WP_HOME','http://localhost/siteurl.com/public_html/');
  define('WP_SITEURL','http://localhost/siteurl.com/public_html/');
  // use live images
  define( 'UPLOADS', 'http://siteurl.com/wp-content/uploads/' );
}
4

Versuchen Sie, die Ausgabe-URLs mithilfe des folgenden Codes vorübergehend zu filtern, um sie durch Online-Bilder zu ersetzen:

add_filter( 'wp_get_attachment_image_src', function ( $image, $attachment_id, $size ) {

    // For thumbnails
    if ( $size ) {
        switch ( $size ) {
            case 'thumbnail':
            case 'medium':
            case 'medium-large':
            case 'large':
                $image[0] = str_replace( 'localhost/', 'EXAMPLE.COM/', $image[0] );
                break;
            default:
                break;
        }
    } else {
        $image[0] = str_replace( 'localhost/', 'EXAMPLE.COM/', $image[0] );
    }
    return $image;
}, 10, 3 );

Dadurch werden alle Zeichenfolgen, die localhost enthalten, durch den Namen Ihrer Online-Domain ersetzt. Sie können jedoch keine Änderungen an den Bildern vornehmen, sondern nur die URL für Entwicklungszwecke korrigieren.

Beachten Sie, dass Sie den Domainnamen ohne http:// oder einen / vor dem Domainnamen verwenden sollten.

Löschen Sie diese Funktion aus dem functions.php Ihres Themas, nachdem Sie damit fertig sind.

0
Jack Johansson

Der beste Weg, dies zu tun, ist die Verwendung von URL-Rewrites.

Auf diese Weise müssen Sie keine Änderungen vornehmen, bevor Sie CODE erneut auf Ihren Server hochladen. Versuchen Sie den folgenden CODE in Ihrer .htaccess-Datei:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# custom rules for loading server images or any other uploaded media files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_Host} ^localhost$
RewriteRule ^.*/uploads/(.*)$ http://siteurl.com/wp-content/uploads/$1 [L,R=301,NC]

# default WordPress rules
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Passen Sie Ihre Live-Domain im obigen Code entsprechend auf siteurl.com an, und Ihre Server-Images werden geladen, wenn Sie von localhost aus entwickeln.

Mit der folgenden Zeile: RewriteCond %{REQUEST_FILENAME} !-f prüft der Webserver zunächst, ob das Bild in Ihrer localhost (mit genau demselben Namen) verfügbar ist, und lädt es nur vom Server, wenn es lokal nicht verfügbar ist. Wenn Sie das Server-Image auch dann laden möchten, wenn dasselbe Image lokal vorhanden ist, entfernen Sie einfach diese Zeile.

8
Scott