私はマルチサイトプラットフォームを持っていて、私はメインにあるメニューを異なるフォルダにある他のサイトと共有しようとしています。
これはメインのPHPタグで、他のヘッダにも必要なメニューをプルします。
<?php dokan_header_user_menu(); ?>
/site2
のヘッダーにあるようにそれを使用しようとしました、そして、それはうまくいきませんでした。私もこれを試しました:
<?php
include $_SERVER['DOCUMENT_ROOT']."site.com/wp-content/themes/dokan/header.php";
?>
まだ運がありません。どんなヒントでも大歓迎です。
乾杯!
特定の機能を複数のテーマで利用できるようにしたい場合は、プラグインにまとめてネットワーク全体で有効にするのが最善です。
利用可能なテーマで機能を見つけます。これで2つの可能性があります。
あなたのpluginsディレクトリ、f711-custom-menu-function.php
、またはあなたがあなたのpluginが呼ばれることを望むものなら何でもでファイルを作成してください。
このファイルの中にプラグインヘッダを作成します。
/*
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
*/
今すぐあなたのプラグインは使用する準備ができています。
テーマのメニュー機能をコピーして、次のように特定のプレフィックスを付けます。
function f711_dokan_header_user_menu() {
// insert your functionality from the original function here
}
これは自己説明的です。ネットワーク全体で有効にしてください。
これで、ネットワークで利用可能なすべてのテーマで、まったく同じ関数を使ってf711_dokan_header_user_menu()
を呼び出すことができます。
関数がどこから来ているのかあなた自身のオリジナルのテーマを取り、そして新しいプラグイン関数を使用するようにヘッダを変更してください。その後、冗長を避けるために古いテーマ固有の関数を削除することができます。
これは古い質問です。これは、WORDPRESS MULTISITE MENUをすべてのネットワークサイトで共有するためのもう1つの簡単な解決策です。
メニューだけでなく、同じ方法を使用して、他のウィジェット以外のものをすべてのネットワークサイトで共有できます。
これが解決策です: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);