• 解決済 codecrane

    (@codecrane)


    wp-envを使用して

    npm run wp-env start

    をした際にDockerのthemes/ディレクトリにインストールされるテーマを減らせますか?

    .wp-env.jsonはこのようになってます。

    {
    "core": null,
    "phpVersion": null,
    "plugins": [],
    "themes": [],
    "port": 12345,
    "env": {
    "tests": {
    "port": 12346
    }
    },
    "config": {
    "WP_DEBUG": true
    },
    "mappings": {
    "wp-content/themes/wp-theme-name/": "./dist/wp-theme-name/",
    "sql": "./sql"
    }
    }

    "themes" : []の部分を消してもDockerにインストールされるのは、古くからのテーマ全てなので不要です。

    最新の1つだけでいいのですが可能でしょうか?

    https://ja.wordpress.org/team/handbook/block-editor/reference-guides/packages/packages-env/

    公式ドキュメントを見ても知見は得られませんでした…

    • このトピックはcodecraneが2ヶ月、 2週前に変更しました。
11件の返信を表示中 - 1 - 11件目 (全11件中)
  • こんにちは。
    ご質問の事項について、古いテーマが必要ないということであれば、”themes” : [] に記載されているテーマのリストを削除しても良いかと思います。個人的な意見です。

    他の有識者の方がより有益なアドバイスをしてくださるかもしれませんので、お待ちください。

    トピック投稿者 codecrane

    (@codecrane)

    @yukinobu

    お返事いただきありがとうございます!

    ”themes” : [] に記載されているテーマのリストを削除しても良いかと思います。

    こちらリストは空の配列のままでございまして、空の配列でも全てのテーマがインストールされてしまいます。

    配列をnullにするとwp-envの起動でエラーになります。

    お忙しい中ありがとうございました。

    有識者のご意見も引き続きお待ちしております。

    失礼しました。

    共有してくださった、.wp-env.json ファイルの mappings という項目の中を改めて確認しますと、

        "mappings": {
    "wp-content/themes/wp-theme-name/": "./dist/wp-theme-name/",
    "sql": "./sql"
    }

    という記述がありました。

    .wp-env.json の mappingsという設定項目は、オリジナルのテーマやプラグインを、先程の隠しファイルで生成された WordPress と関連付けることができる機能です。

    従いまして、./dist/wp-theme-name/ というディレクトリの中に今は利用していない古いテーマがあるのでは?と推測しました。
    一度ご確認いただけますと幸いです。

    念のため環境のバックアップを実施してから、設定ファイルを見直ししてくださいね。(念のために書いています)

    トピック投稿者 codecrane

    (@codecrane)

    @yukinobu

    ありがとうございます!

    mappingsにある記述は、デフォルトのテーマ以外をマッピングするようで、対象ディレクトリ(/dist/wp-theme-name/)は空っぽでもデフォルトテーマは全てインストールされます…

    ややこしい問題で失礼いたします。

    回答ありがとうございました!!

    • この返信は2ヶ月、 2週前にcodecraneが編集しました。
    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    こんにちは。ポイントは

    "core": null,

    の部分かと思います。nullを指定すると自動的に最新のリリース版をダウンロードしてくるのですが、そのダウンロードされる一式の中に過去のデフォルトテーマが一式含まれているようです。nullだと、多分Twenty Tenあたりから全部入ってる感じじゃないでしょうか。

    ここを

    "core": "https://ja.wordpress.org/latest-ja.zip",

    にすると日本語版の最新リリース版をとってくるわけですが、この場合だと現時点では、Twenty Twenty-Two以降の4つだけが入っていました。

    試しに、プロジェクトのディレクトリ内(/wordpress)に自分でダウンロードしてきたWordPress本体を置いて、themesファイル内のテーマたちを全削除したうえで

    "core": "./wordpress",

    と指定して起動すると、"themes" でマッピングしたテーマだけが入っている状態で起動しました。ただ、初回起動時はTwenty Twentyfive があたった状態で起動するので、初手で「テーマがないので無効化するよ」というアラートが出ます。

    ということで、厳密に何もない状態でスタートしたければ自前でコアを管理するのが確実だと思います。でもわざわざ管理するのって面倒なので、普通に起動してそれから消すのとどっちの手間を取るかな?って感じですね〜。
    とりあえず、日本語で使うなら

    "core": "https://ja.wordpress.org/latest-ja.zip",

    にしておくと、ちょっとだけ入ってる数が少なくなるので、良いような気がしました。

    なるほど。
    古いテーマと表現されていたのは、デフォの Twenty Twenty シリーズのことだったのですかね….

    @mypacecreator さん、ありがとうございます!

    トピック投稿者 codecrane

    (@codecrane)

    @mypacecreator

    ご回答いただき誠にありがとうございます!

    ご提示いただいた方法で試したところ、デフォルトテーマが少ない日本語のWordPressがインストールできました!

    ホントにありがとうございました!

    @yukinobu

    最後までありがとうございました!

    私の言葉足らずで申し訳ございませんでした。

    仰る通り、デフォルトのtwentyシリーズが大量にインストールされた状態のことを

    古いテーマと伝えておりました…

    @mypacecreator さんからご教示いただいた方法でこちらのフォーラムは解決とさせていただきます!

    ホントにありがとうございました!!

    @codecrane さん

    ご報告ありがとうございます。

    私の言葉足らずで申し訳ございませんでした。
    仰る通り、デフォルトのtwentyシリーズが大量にインストールされた状態のことを
    古いテーマと伝えておりました…

    いえいえ、とんでもない。
    無事に解決できてよかったです。

    こんにちは。

    .wp-env.jsonthemes フィールドは、 WordPress コアにバンドルされているデフォルトテーマをコントロールするものではなく、追加でインストールするテーマを定義するものです。 .wp-env.json そのものには、デフォルトテーマを削除するようなオプションはありません。

    もしやるなら、package.json で独自のスクリプトを組んで、Docker 起動後に wp-env run cli などで手動で任意のテーマを削除できるかもしれません。

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    @wildworks さん、補足ありがとうございます!
    せっかくなので、自分の環境で試してみました。

    .wp-env.json はこのように。
    mythemeテーマを自作するとして、白紙のindex.phpと最低限のstyle.cssが /mytheme に入っているものとします。

    {
    "core": "https://ja.wordpress.org/latest-ja.zip",
    "themes": [
    "./cms/wp-content/themes/mytheme"
    ],
    (略)

    package.json にはこんな感じで書いてみました。

    {
    "scripts": {
    "env:init": "wp-env start && wp-env run cli wp theme activate mytheme && wp-env run cli wp theme delete --all",
    (略)

    テーマ削除処理は起動時毎回走る必要はないので、初回起動時だけ↓のコマンドを打ちます。

    // npm run wp-env start の代わりに初回起動時だけ実行
    npm run env:init

    すると、latest-ja.zipに同梱されていた4テーマを削除し、自前で用意しているmythemeテーマが有効化された状態で起動しました。
    ※ポイントは記述順で、先に activate mytheme してからtheme delete –all することで、有効化しているテーマは消されないので、自作のmythemeテーマだけが残ります。
    (先にtheme delete –all してしまい、自作テーマのファイルがごっそり消されたという失敗も共有しておきます)

    @codecrane さんもよかったらお試しください。
    有益なトピックをありがとうございました!

    トピック投稿者 codecrane

    (@codecrane)

    @wildworks

    補足ありがとうございます!

    とても有益な情報で、大変詳しくご教授いただけ感謝しております!!

    テーマを追加で、という部分は何となく理解できていたのですが、削除はできないとのことで

    scriptsでやる必要があったんですね!

    @mypacecreator

    お試しまでしていただきありがとうございます…!!

    Docker立ち上げと同時に、自作テーマ有効化からのその他削除という一連の流れを

    env:initというコマンドでやるのはスマートで素敵です!

    なるほど、という感想しか出ませんでした!

    これでwp-envを使った立ち上げがさらに効率良くできるようになりました!

    皆さま、ホントにありがとうございました!!

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • このトピックに返信するにはログインが必要です。