すべてのネットワークサイトでメインサイトフッター(ブログID = 1)を使用する方法はあります。すべてのネットワークで同じフッターを使用したいです。メインサイトで私はテーマを得ましたそしてユーザーによって作成された子サイトは別のテーマを得ました。
基本的に私は両方のテーマで同じフッターを使いたいが、メインサイトだけから全てのウィジェットを管理したい。
Switch_to_blogまたはそれに似たものを使ってこれを行うことは可能ですか?
更新:私は試したが、運はありません:
<?php
global $switched;
switch_to_blog(1);
get_footer();
restore_current_blog();
?>
まず第一に、複数のテーマに同じfooter.php
ファイルを使用することは問題があります。テーマが異なれば、このファイルで閉じる必要のある要素が異なるからです。
もっと良い方法は、すべてのfooter.php
ファイルで呼び出すカスタム関数を作成することです。このような関数はwp-content/mu-plugins
内のファイルに配置するのが最善であるため、すべてのサイトで最初にロードされます。
function my_custom_footer() {
echo 'Copyright © ' . date('Y') .' ACME Studios Inc.';
}
そして、テーマのfooter.php
ファイルで関数を呼び出します。
my_custom_footer();
すべてのテーマで同じ関数を呼び出す代わりに、(すべてのテーマで呼び出す必要がある)wp_footer
アクションにフックするという方法もあります。
function my_custom_footer() {
echo 'Copyright © ' . date('Y') .' ACME Studios Inc.';
}
add_action( 'wp_footer', 'my_custom_footer' );
この最新のスニペットをwp_content/mu-plugins
内のファイルにドロップすると、テキストがすべてのテーマのフッターに表示されます。手動でテキストの位置やスタイルを設定したい場合は、テーマのfooter.php
ファイルでwp_footer()
への呼び出しを見つけ、それをHTML要素でラップすることで可能です。
フッタースクリプトなどの隠しHTMLコンテンツ用にwp_footer()
を残したい場合は、footer.php
で独自のアクションを呼び出してから、好きなときにそれにフックすることができます。
footer.php
内:
do_action( 'wpse_footer_content' );
Muプラグインの場合:
add_action( 'wpse_footer_content', function () { ?>
content goes here
<?php } );
はい。フッターのどちらかの端にswitch_to_blogとrestore_current_blogを使用して、メインブログにあるかのようにフッターをコーディングしてください。