Liitteiden käyttäminen alkuperäiseltä sivustolta

Jos työskentelee julkaistun sivuston paikallisen version parissa esimerkiksi Localilla, säästää paljon vaivaa, kun ei kopioi kaikkia liitetiedostoja paikalliseen versioon. Silloin riittää, että on teeman tiedostot (jotka ovat tietysti versionhallinnassa), pluginit ja tietokanta.

Tällöin sivuston virkistämiseen vastaamaan julkaistua versiota riittää silloin tietokannan kopioiminen ja se on paljon helpompi operaatio kuin kaikkien liitteiden siirtäminen.

Liitetiedostoja olisi kuitenkin kiva katsella työskennellessään sivustolla. Näppärä ratkaisu onkin virittää WordPress niin, että liitetiedostojen URLit korjataan automaattisesti käyttämään tuotantosivuston URLia paikallisen palvelimen sijasta. Näin kuvat noudetaan automaattisesti tuotannosta.

Toteutin itse asian pienellä lisäosalla, jonka laitoin paikallisen version mu-plugins-hakemistoon, jolloin se on automaattisesti käytössä aina ilman eri toimenpiteitä. mu-plugins on oiva ratkaisu juuri tällaisille pakollisille pahoille.

Itse plugini on yksirivinen funktio, joka lisätään pariin filtterikoukkuun:

<?php
/**
 * Plugin name: Liitteiden ohjaus
 * Plugin URI:
 * Description: Ohjaa liitteet alkuperäiselle sivustolle.
 * Version: 1.0.0
 * Author: Mikko Saari
 * Author URI: https://mikkosaari.fi/
 * License: GPL License
 *
 * @package liitteidenohjaus
 */

namespace LiitteidenOhjaus;

add_filter( 'wp_get_attachment_url', 'LiitteidenOhjaus\liitteiden_ohjaus' );
add_filter( 'post_thumbnail_html', 'LiitteidenOhjaus\liitteiden_ohjaus' );
/**
 * Ohjaa liitteiden paikalliset URLit käyttämään alkuperäisen sivuston URLeja.
 *
 * Käytetään sekä `wp_get_attachment_url`:n että `post_thumbnail_html`:n
 * kanssa. Jälkimmäisen avulla saadaan kaikki `srcset`-merkintöjen osoitteet
 * vaihdettua oikeiksi.
 *
 * @param string $url Liitteen URL tai thumbnailin HTML-koodi.
 *
 * @return string URL tai HTML-koodi, jossa osoitteet vaihdettu.
 */
function liitteiden_ohjaus( string $url ) : string {
	return str_replace( 'http://kirjavinkit-local.local/', 'https://www.kirjavinkit.fi/', $url );
}

Näin kaikkien liitteiden URLissa vaihdetaan automaattisesti osoite http://kirjavinkit-local.local/ muotoon https://www.kirjavinkit.fi/.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

This site uses Akismet to reduce spam. Learn how your comment data is processed.