it-swarm-eu.dev

Jak spustit dva blogy Wordpress s různými tématy as jednou databází a stejným obsahem

Jak spustit dva blogy Wordpress s různými tématy pomocí jedné databáze, kde obsah zůstává v obou lokalitách stejný? Problém, který dostávám, je mapování domény v obou blogech.

3
Aryan

Pokusím se vysvětlit, jak by se to mohlo udělat, ale není si jistý, zda to bude fungovat:

  1. Nainstalujte druhou webovou stránku s jedním db (2 kopie).
  2. Vytvořte novou tabulku ve vašem db. Zavolat wp_options2 a zkopírovat vše z wp_options do nové tabulky
  3. v druhé instalaci v wp-config.php, před if ( !defined('ABSPATH') ) přidat

    define( 'M7_OPTIONS_TABLE', 'wp_options2' );
    
  4. ve druhé instalaci přejděte na wp-includes/wp-db.php na řádku 951 a přidejte tento kód:

    if ( isset( $tables['options'] ) && defined( 'M7_OPTIONS_TABLE' ) )
        $tables['options'] = M7_OPTIONS_TABLE;
    

    (Tento kód by měl být přidán do funkce public function tables před if ( isset( $tables['users'] ) && defined( 'CUSTOM_USER_TABLE' ) ))

Nyní byste měli být schopni změnit téma, pluginy atc. pro druhé téma, ale všechny příspěvky, taxonomie atd. budou zdvojnásobeny na obou webových stránkách (což je špatné pro seo btw.)

Pokud narazíte na problémy s odkazy na druhou instalaci, přidejte:

define('WP_HOME','http://seccond_website.com');
define('WP_SITEURL','http://seccond_website.com');

ve vašem souboru wp-config.php .....

ale problém by se nepodařilo vyřešit, kdybyste vytvořili nějaký příspěvek na první webové stránce, na druhé webové stránce, na kterou by odkazovali na první webové stránky ...

Tuto odpověď budu stále posílat, i když to není správné (kvůli problému popsanému výše).

Jako řešení můžete vytvořit 2 oddělené instalace s různými $table_prefix a přidat akci ke každému pohybu (save_post, save_taxonomies, save_postmeta atd.), Abyste ušetřili od 1 db do druhého, ale změňte potřebné odkazy.

Nebo můžete vytvořit cronovou úlohu na druhé instalaci, abyste mohli analyzovat každý příspěvek, stránku atd. Z 1-db na 2-nd (protože máte přístup k oběma, bylo by to snadné)

Nejste si jisti, zda to bude stačit, ale tyto dva pluginy by vám měly dát co nejvíce Jakýkoliv název hostitele - změnit obsahové adresy obsahu tak, aby odrážely doménu, ve které byl obsah požadován Domain Theme - změnit je podle názvu domény.

Žádný z nich jsem netestoval, ale vypadá to, že i když nefungují, můžete z nich získat užitečné kódy.

0
Mark Kaplun

Pokud máte dvě samostatné instalace WordPressu (jednu pro každou doménu), můžete definovat WP_SITEURL a WP_HOME v wp-config.php pro vynucení určité adresy/hostname. Přidejte tento kód do každého wp-config.php:

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

A změňte example.com na název dané domény.

0
Sven

Motiv můžete změnit podle aktuální domény

function select_theme( $current_theme ) {
    if ( 'domain1.com' === $_SERVER['HTTP_Host']) {
        return 'domain1 theme name';
    } else {
        return 'domain2 theme name';
    }
}

add_filter( 'stylesheet', 'select_theme' );
add_filter( 'template', 'select_theme' );
0
Mitul