webentwicklung-frage-antwort-db.com.de

Gemeinsame Nutzung von Header-Komponenten über mehrere Standorte hinweg

Ich habe eine Plattform mit mehreren Standorten und ich versuche, das Hauptmenü mit anderen Standorten zu teilen, die sich in verschiedenen Ordnern befinden.

Dies ist das PHP -Tag im Hauptmenü, das das Menü aufruft, das ich auch in der Kopfzeile anderer benötige:

<?php dokan_header_user_menu(); ?>

Ich habe versucht, es so zu verwenden, wie es im Header von /site2 steht, und es hat nicht funktioniert. Ich habe es auch versucht:

<?php
    include $_SERVER['DOCUMENT_ROOT']."site.com/wp-content/themes/dokan/header.php";
?>

immer noch kein Glück. Alle Tipps werden sehr geschätzt.

Prost!

1
Dave_O

Diese Funktion in ein Plugin auslagern

Wenn Sie möchten, dass eine bestimmte Funktion über mehrere Themen hinweg verfügbar ist, sollten Sie sie in einem Plugin haben und netzwerkweit aktivieren.

Finden Sie die Funktion

Suchen Sie die Funktion in dem Thema, in dem sie verfügbar ist. Sie haben jetzt zwei Möglichkeiten:

  • Löschen Sie die Funktion aus dem aktuellen Thema
  • Duplizieren Sie diese Funktion, um sie für andere Themen zu verwenden (empfohlen).

Erstelle das Plugin

Erstellen Sie eine Datei in Ihrem Plugin-Verzeichnis, f711-custom-menu-function.php oder wie auch immer Ihr Plugin heißen soll.

In dieser Datei erstellen Sie den Plugin-Header:

/*
Plugin Name: F711 Menu Function 
Plugin URI:  http://yourdomain.com
Description: Using the menu function across different themes in my network
Version:     1.0
Author:      Dave_O
Author URI:  http://wordpress.stackexchange.com/users/58774/dave-o
License:     GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Domain Path: /languages
Text Domain: f711-menu-function
*/

Jetzt ist Ihr Plugin einsatzbereit.

Fülle dein Plugin aus

Kopieren Sie die Menüfunktion Ihres Themas und geben Sie ihr ein bestimmtes Präfix, zum Beispiel so:

function f711_dokan_header_user_menu() {
    // insert your functionality from the original function here
}

Aktiviere dein Plugin

Dies ist selbsterklärend. Stellen Sie einfach sicher, dass Sie es netzwerkweit aktivieren

Verwenden Sie es in verschiedenen Themen

Jetzt können Sie f711_dokan_header_user_menu() in allen in Ihrem Netzwerk verfügbaren Themen mit genau derselben Funktion aufrufen.

Aufräumen

Nehmen Sie das ursprüngliche Thema, von dem die Funktion stammt, und ändern Sie die Kopfzeile, um die neue Plug-in-Funktion zu verwenden. Anschließend können Sie die alte themenspezifische Funktion entfernen, um Redundanzen zu vermeiden.

1
fischi

Das ist eine alte Frage. Hier ist eine weitere einfache Lösung für die gemeinsame Nutzung von WORDPRESS MULTISITE MENU auf allen Netzwerkstandorten.

Mit der gleichen Methode können Sie nicht nur Menüs, sondern auch Widgets auf allen Netzwerkstandorten freigeben.

hier ist die Lösung: Bearbeiten Sie Ihre Header.php

//store the current blog_id - Use this function at the start of the function that you want to share

global $blog_id;
$current_blog_id = $blog_id;

//switch to the main blog which will have an id of 1
switch_to_blog(1);

//output the WordPress navigation menu - incase of menu-sharing use this

wp_nav_menu( 
   //add your arguments here
);

//switch back to the current blog being viewed - before ending of the function

switch_to_blog($current_blog_id); 
7