Snow Monkey Blocksの一部のブロックが表示されません

0
いいねをした人: 居ません
  • このトピックには22件の返信、3人の参加者があり、最後にtantive.slにより1年、 9ヶ月前に更新されました。
15件の投稿を表示中 - 1 - 15件目 (全23件中)
  • 投稿者
    投稿
  • #108100
    tantive.sl
    閲覧者
    13

    【お使いの Snow Monkey のバージョン】17.2.1
    【お使いの Snow Monkey Blocks のバージョン】16.0.2
    【お使いの Snow Monkey Editor のバージョン】8.0.1
    【お使いのブラウザ】Chrome
    【当該サイトのURL】ローカル

    ### 実現したいこと

    ### 発生している問題

    Windows11にXAMPPでローカル環境を作成し、WordPress6.0.1をインストールして動作確認しようとしたところ、固定ページ、投稿ページの両編集画面でSnow Monkey Blocksの複数ブロックが表示されない現象が発生しています。

    conoha wingのサーバ上では同じバージョンの環境で問題なく動いています。

    具体的に表示されないブロックは、

    ・メディアとテキスト

    ・スライダー

    ・価格表

    ・項目

    ・パネル

    ・セクション(背景画像/動画)

    ・セクション(ブロークングリッド)

    の7つ。

    ### 試したこと

    うまく動いている環境をwp migrationで丸ごとエクスポートして、そのままローカル環境にインポートしても同じでした。

    ローカル環境では使えないブロックが存在するのでしょうか?

    表示されないブロック(一部)

    0
    いいねをした人: 居ません
    #108104
    キタジマ タカシ
    参加者
    2253

    すべてのファイルがうまくコピーされていなおのではないですかね?ローカル環境で Blocks を再インストールしてみるとどうでしょうか?

    0
    いいねをした人: 居ません
    #108107
    tantive.sl
    閲覧者
    13

    さっそくありがとうございます!
    やってみましたが、同じでした。
    <やったこと>
    Snow Monkey Editorを削除
    Snow Monkey Blocksを削除
    Snow Monkey Editorをインストール
    Snow Monkey Blocksをインストール
    Snow Monkey Editorを有効化
    Snow Monkey Blocksを有効化

    固定、投稿とも編集画面で同じ現象でした。
    ディレクトリにはコピーされているように見えます。
    以下、コマンドプロンプト dirのトレースです。

     C:\xampp\htdocs\wp-newportfolio\wp-content\plugins\snow-monkey-blocks\block のディレクトリ
    
    2022/07/20  15:09    <DIR>          .
    2022/07/20  15:09    <DIR>          ..
    2022/07/20  15:09    <DIR>          accordion
    2022/07/20  15:09    <DIR>          alert
    2022/07/20  15:09    <DIR>          balloon
    2022/07/20  15:09    <DIR>          box
    2022/07/20  15:09    <DIR>          btn
    2022/07/20  15:09    <DIR>          btn-box
    2022/07/20  15:09    <DIR>          buttons
    2022/07/20  15:09    <DIR>          categories-list
    2022/07/20  15:09    <DIR>          child-pages
    2022/07/20  15:09    <DIR>          container
    2022/07/20  15:09    <DIR>          contents-outline
    2022/07/20  15:09    <DIR>          countdown
    2022/07/20  15:09    <DIR>          directory-structure
    2022/07/20  15:09    <DIR>          evaluation-star
    2022/07/20  15:09    <DIR>          faq
    2022/07/20  15:09    <DIR>          information
    2022/07/20  15:09    <DIR>          items
    2022/07/20  15:09    <DIR>          like-me-box
    2022/07/20  15:09    <DIR>          limited-datetime
    2022/07/20  15:09    <DIR>          list
    2022/07/20  15:09    <DIR>          media-text
    2022/07/20  15:09    <DIR>          panels
    2022/07/20  15:09    <DIR>          pickup-slider
    2022/07/20  15:09    <DIR>          price-menu
    2022/07/20  15:09    <DIR>          pricing-table
    2022/07/20  15:09    <DIR>          rating-box
    2022/07/20  15:09    <DIR>          recent-posts
    2022/07/20  15:09    <DIR>          rss
    2022/07/20  15:09    <DIR>          section
    2022/07/20  15:09    <DIR>          section-break-the-grid
    2022/07/20  15:09    <DIR>          section-side-heading
    2022/07/20  15:09    <DIR>          section-with-bgimage
    2022/07/20  15:09    <DIR>          section-with-bgvideo
    2022/07/20  15:09    <DIR>          slider
    2022/07/20  15:09    <DIR>          spider-contents-slider
    2022/07/20  15:09    <DIR>          spider-pickup-slider
    2022/07/20  15:09    <DIR>          spider-slider
    2022/07/20  15:09    <DIR>          step
    2022/07/20  15:09    <DIR>          tabs
    2022/07/20  15:09    <DIR>          taxonomy-posts
    2022/07/20  15:09    <DIR>          taxonomy-terms
    2022/07/20  15:09    <DIR>          testimonial
    2022/07/20  15:09    <DIR>          thumbnail-gallery

    このフォルダ以外に見るべきフォルダはありますでしょうか?

    0
    いいねをした人: 居ません
    #108113
    キタジマ タカシ
    参加者
    2253

    snow-monkey-blocks/block/各ブロックのディレクトリ/index.php を下記のコードで読み込んでブロックを登録しています。

    ディレクトリは存在しているみたいなので、その中に index.php があるかを確認してみると良いかもです。また、上記のコードの部分で

    foreach ( $iterator as $file ) {
    	var_dump( $file );
    	if ( ! $file->isFile() ) {
    		continue;
    	}

    のようにしてみると実際にどのファイルが読まれようとしているのかが確認できると思うので、とりあえずその時点で漏れがでていないかもみてみると良いかもしれません。

    0
    いいねをした人: 居ません
    #108120
    tantive.sl
    閲覧者
    13

    全てのフォルダにindex.phpが存在しており、
    かつ、var_dumpで全て拾っています。
    また、その後段の
    if ( ! $file->isFile() ) {

    if ( ‘index.php’ !== $file->getBasename() ) {
    のcontinueに引っかかっておらず、include_once()の下までたどり着いています。
    さらに、
    $file->getPathname()もdumpしてみましたが、
    正しいフルパスで入っています。
    (var_dumpで出力したパスをエクスプローラーに貼り付けたら、該当のindex.phpがヒットした)

    正しく表示されるブロックと表示されないブロックの違いを見てみましたが、よくわかりませんでした。
    正しい例:アコーディオン

    object(SplFileInfo)#10410 (2) {
      ["pathName":"SplFileInfo":private]=>
      string(95) "C:\xampp\htdocs\wp-newportfolio\wp-content\plugins\snow-monkey-blocks/block\accordion\index.php"
      ["fileName":"SplFileInfo":private]=>
      string(9) "index.php"
    }
    string(16) "gatBasename()は"
    string(9) "index.php"
    string(23) "ifFile()抜けました"
    string(24) "index.php抜けました"
    string(95) "C:\xampp\htdocs\wp-newportfolio\wp-content\plugins\snow-monkey-blocks/block\accordion\index.php"

    正しくない例:セクションブロークングリッド

    object(SplFileInfo)#10617 (2) {
      ["pathName":"SplFileInfo":private]=>
      string(108) "C:\xampp\htdocs\wp-newportfolio\wp-content\plugins\snow-monkey-blocks/block\section-break-the-grid\index.php"
      ["fileName":"SplFileInfo":private]=>
      string(9) "index.php"
    }
    string(16) "gatBasename()は"
    string(9) "index.php"
    string(23) "ifFile()抜けました"
    string(24) "index.php抜けました"
    string(108) "C:\xampp\htdocs\wp-newportfolio\wp-content\plugins\snow-monkey-blocks/block\section-break-the-grid\index.php"

    var_dump突っ込んだソース

    			var_dump( $file );
    			var_dump('gatBasename()は');
    			var_dump($file->getBasename());
    			if ( ! $file->isFile() ) {
    				continue;
    			}
    			var_dump('ifFile()抜けました');
    			if ( 'index.php' !== $file->getBasename() ) {
    				continue;
    			}
    			var_dump('index.php抜けました');
    
    			include_once( realpath( $file->getPathname() ) );
    			var_dump($file->getPathname());
    0
    いいねをした人: 居ません
    #108161
    キタジマ タカシ
    参加者
    2253

    ありがとうございます! となるとその先ですかねー。

    src/index.php → src/block.json → dist/editor.js → dist/index.js と読み込むようになっています。

    このどこかにファイルの欠落がないですかね? あと、記事の編集画面でブラウザのコンソールになにかエラーが出たりしていますかね?

    0
    いいねをした人: 居ません
    #108180
    es:エス
    参加者
    134

    ひょっとしたら、Snow Monkey Blocksの設定関連のデータが破損したとかおかしくなったとかかもと思ったのですが、設定画面ですべての項目はオンになっていますか?検討違いでしたらすみません…

    1
    いいねをした人:
    #108241
    tantive.sl
    閲覧者
    13

    お手間かけます。

    設定は表示されていないものも含めて全てONになっています。

    src/index.php → src/block.json → dist/editor.js → dist/index.js

    については、

    wp-content\plugins\snow-monkey-blocks\src の直下および

    wp-content\plugins\snow-monkey-blocks\dist の直下には

    見当たりません。
    ただ、正常に動作しているサーバ上でも見当たりませんでした。

    類似のファイルとしては、\wp-content\plugins\snow-monkey-blocks\dist\block 下のそれぞれのフォルダにeditor.jsがあり、

    \wp-content\plugins\snow-monkey-blocks\block下のそれぞれのフォルダおよびその下層フォルダに

    index.phpblock.jsoneditor.jsindex.jsが存在しています。

    データの欠損という意味では、正常に動いているサーバ上のsnow-monkey-blocksとうまく動かないローカル上のsnow-monkey-blocksのフォルダプロパティを見たところ、どちらも

    総サイズ:8,356,300byte
    File数:956
    フォルダ数:198

    で同じでした。

    2
    いいねをした人:
    #108261
    tantive.sl
    閲覧者
    13

    ブラウザのコンソールにエラーが出ていました。

    複数種類出ていますが、同じエラーが7つ出ている箇所があって、うまく表示されないブロックの数と一致しているのでこれが原因でしょうか。

    Uncaught ReferenceError: smb is not defined

    editor.jsらしいのですが、min化されているので1行になっていて、ピンポイントで該当箇所までたどり着けていない状況です。

    0
    いいねをした人: 居ません
    #108271
    キタジマ タカシ
    参加者
    2253

    見当たりません。
    ただ、正常に動作しているサーバ上でも見当たりませんでした。

    わーすみません、書き方がわるかったです。tantive.sl さんが書かれているとおりです。この辺のファイルの欠損もなさそうですね。

    複数種類出ていますが、同じエラーが7つ出ている箇所があって、うまく表示されないブロックの数と一致しているのでこれが原因でしょうか。

    Uncaught ReferenceError: smb is not defined

    あ、これ怪しいですね。下記の部分で JavaScript のグローバル変数 smb を定義しているのですが、これが何らかの理由でこれが出力されていない感じですかね?

    0
    いいねをした人: 居ません
    #108273
    tantive.sl
    閲覧者
    13

    立て続けにすみません。

    jsを簡素化して場所は特定できました。

    itemですと

    snow-monkey-blocks/dist/block/items/editor.js

    で簡素化した時に725行目付近にある

    f = {
    innerBlocks: [{
    name: “snow-monkey-blocks/items-item-standard”,
    attributes: {
    title: “Lorem ipsum”,
    lede: “consectetur”,
    summary: “sed do eiusmod tempor incididunt”,
    imageURL: ${smb.pluginUrl}/dist/img/photos/beach-sand-coast2756.jpg,
    imageID: 1
    }

    imageURL: ${smb.pluginUrl}/dist/img/photos/beach-sand-coast2756.jpg,

    で、smb is not definedになっていて取れていないみたいです。

    0
    いいねをした人: 居ません
    #108281
    tantive.sl
    閲覧者
    13

    ページ編集のソースを見たところ、

    <script>
    var smb = {
    pluginUrl: ‘http://localhost/wp-newportfolio/wp-content/plugins/snow-monkey-blocks’,
    pluginDir: ‘C:\xampp\htdocs\wp-newportfolio\wp-content\plugins\snow-monkey-blocks’,
    isPro: true,
    };
    </script>

    となっているにも関わらず、その下の方の

    <script src=’http://localhost/~~~/wp-content/plugins/snow-monkey-blocks/block/items/../../dist/block/items/editor.js?ver=3e9dddec353ee426ba10′ id=’snow-monkey-blocks-items-editor-script-js’></script>
    でグローバル変数のsmbが取れていないようです。

     

    いろいろ簡単なソースで試したところ、

    html内の<script>でグローバル変数を宣言し、

    そのあとに<script src=””>でソースをローカルの指定にするとうまくグローバル変数が引き継がれない現象が確認できました。

    xampp他、環境の問題のような気がしてきましたので、本質ではないと思いますので、キタジマさんのコメントなければ明日くらいに閉じようと思います。

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

    0
    いいねをした人: 居ません
    #108282
    tantive.sl
    閲覧者
    13

    何度もすみません。

    分かりました。

    smbをグローバル変数として宣言している箇所で、

    pluginDir: ‘C:\xampp\htdocs\wp-newportfolio\wp-content\plugins\snow-monkey-blocks’,
    

    となっていますが、バックスラッシュが入っているので、特殊文字と認識して宣言自体が無効になっていたみたいです。

    無理やり

    pluginDir: ‘C:\\xampp\\htdocs\\wp-newportfolio\\wp-content\\plugins\\snow-monkey-blocks’,
    

    のような形でバックスラッシュをバックスラッシュとして認識させたところ、うまくいきました。

    こちら、どうしようもないですよね。。。

    1
    いいねをした人:
    #108288
    キタジマ タカシ
    参加者
    2253

    なるほど!! ありがとうございます! アップデートして対応できないかみてみます!

    1
    いいねをした人:
    #108292
    キタジマ タカシ
    参加者
    2253

    すみません! もし良かったら下記の変更を試してみてもらえますか?

    pluginDir: '<?php echo esc_attr( SNOW_MONKEY_BLOCKS_DIR_PATH ); ?>',
    

    pluginDir: '<?php echo esc_attr( realpath( SNOW_MONKEY_BLOCKS_DIR_PATH ) ); ?>',
    
    0
    いいねをした人: 居ません
15件の投稿を表示中 - 1 - 15件目 (全23件中)
  • トピック「Snow Monkey Blocksの一部のブロックが表示されません」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。