Magento 2でテーマの親を更新する正しい方法
Magento 2では、テーマのtheme.xmlファイルで親テーマを指定できます。 <theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd"> <title>Theme Title</title> <parent>Package/base-theme</parent> <media> <preview_image>media/preview.jpg</preview_image> </media> </theme> Magentoが初めてテーマを見ると、この値を使用parent_idしてthemeテーブルにaを設定します。これは、テーマの親がどこにいるかの真実の源です。 ただし、テーマをシステムに追加した後にこの値を変更しようとすると、Magentoはparent_id列の更新に失敗し、インスタンス化されたMagento\Theme\Model\Themeオブジェクトには元の親テーマが残ります。(キャッシュをクリアしても。) parent_id値を手動で変更することでこれを修正できます-これはハックのようです。parent_id通常、Magentoのコアコードのどこに設定されていますか。また、これをトリガーするユーザーアクションは何ですか?すなわち、Magentoに「このテーマをリロードしてください」と伝える方法はありますか