いまではもう無効になった内容を含んでいるかもしれないことをご了承ください。いまWordPressでマルチサイトを作っています。親サイトがポータルで、子サイトが各地域のサイトという構成です。サイドバーにはバナーなどの導線を配置し、ネットワーク全体で共有したいと思います。WordPressには現在のブログを切り替える機能があるのでこんな感じでできるかなーと思いきや、なんとできません。Blogsという記事が見つかりまして、3つのアプローチが紹介されていました。親サイトでウィジェットを保存するタイミングでそれを子サイトにコピーする親サイトでサイドバーの内容を全部キャッシュしておき、それを子サイト側から参照する有料プラグインを買うウィジェット共有に対応したXThemeどれもあまりスマートではないし、「そんなに難しくないでしょハハハ」と高をくくっていたのですが、けっこうハマりました。ダイナミックサイドバーの仕組みダイナミックサイドバーはウィジェットを表示します。管理画面からは各ウィジェットの情報を保存することができます。バナーなら画像のURLとか、カテゴリー一覧なら何回層目までだすかとか、そういう情報ですね。これは各ブログのwp_optionsテーブルに保存されます。データ構造的には2種類あります。要するにこれを取得し、子サイトのサイドバーが表示されるタイミングで上書きすればよいということになります。子テーマからサイドバーを削除する今回はResponsiveというテーマの子テーマとして、ポータルテーマと地域テーマを作成します。最近のWordPressテーマはウィジェットが5個も6個も登録されているので、それを流用する形です。ポイントとしては、子テーマの管理画面にウィジェットを表示しないようにすることでしょうか。「入力できる画面があるのに入力してもなにも起きない」となると、混乱の元ですからね。子テーマのfunctions.phpにこんなコードを書きます。90);これで小テーマの管理画面には「このテーマはウィジェットに対応していません」と表示されます。親サイトのサイドバー情報を取得するWordPressはウィジェットの情報をsidebars_widgetsという関数で取得し、これにはフックが用意されています。管理画面の場合はサイドバーなし、公開画面の場合は親サイトのサイドバーを返すようにします。ちなみに、この情報は配列で返ってくるので、var_dumpするなり内容を確認してみてください。'_child_site_sidebar_widgets');子サイトのウィジェット情報を上書きするウィジェットの情報はテーマ初期化時点でグローバル変数に格納されます。これを上書きしましょう。さっき書いたコードに追加する形です。array();//親サイトのウィジェット情報を取得。MySQLべた書きになってしまいましたが、//wp_optionsなどのテーブル名は設定によって異なる可能性があります。90);$widget_instance[‘callback’]がウィジェット出力時に呼び出される関数なのですが、これをWordPressのウィジェットAPIと上手く連携させることができません。関数はcall_user_func_arrayで呼び出されるので、引数もなんかアレです。したがって、自前の関数から無理矢理ウィジェットを初期化するという力技を使います。ここらへん、アップデートの時に壊れるやり方かもしれませんね。$args[2]);}}これで無事サイドバーが共通化できました。新規構築なら有料テーマ買って解決というのも全然アリだとは思いますが、既存サイトの場合はそうもいかないと思います。プラグインがあったりするかもしれませんので、知っている人はコメントいただけると助かります。それではみなさま、よい週末を。LinkふみちゃんねるYoutube動画「ふみちゃんねる」を更新しています。土地を買い、コツコツと開拓しています。当サイトの人気コンテンツ。日いい曲だけど名前は知らない2013年から2019年にかけて破滅派で発表された掌編から選りすぐりのものを集めました。最近はWebの技術を学びつつ、これからの文芸に何が出来るのかを模索しています。高橋文樹が最近の活動報告、サイトでパブリックにできない情報などをお伝えするメーリングリストです。滅多に送りませんので、ぜひご登録お願いいたします。お得なダウンロードコンテンツなども計画中です。その他このサイトについて小説家が自ら情報を発信するブログ高橋文樹は日本の小説家です。DIYなど、様々な取り組みをこのブログで紹介していきます。遅れたが、幼い頃の冬の夜についての記憶。日タイトルを思いついてからすぐに書き始めたが、発表の機会がなかった。日ある夜、私は妻に起こされた。子供達が怖がっているという。2020が新型コロナウィルス(COVID-19)の影響によって中止となった。[...]GoDaddyがGutenberg最適化テーマGoをリリースホスティング企業最大手のGoDaddyがブロックエディターに最適化されたテーマGoをリリースした。このテーマはGithub上で宣言されている通り、GoDaddyユーザー(go-getters)用に作られたものである。彼はぼくを助けてくれた。ぼくはオフィスを出る前に礼を言い、彼は、大したことはありません、わたくしどもにできる最低限のことですからと言い、彼は、人生を腐らせるバカどもについて毒舌を吐きたいようだったがそれを抑えた、おそらくその毒舌は散々吐かれたのだろう、そしていくら何を言っても何の役にも立たないと知っているのだろう、バカどもは最も強力なのだ。ぼくの方では、ドアを開けて、お邪魔して失礼しました、と、月並みな言葉を発し、その時ぼくは、「邪魔をして失礼しました」というこの表現が自分の人生を要約していることに気がついた。