-
投稿者投稿
-
2020年12月21日 6:56 PM #63815
【お使いの Snow Monkey のバージョン】
バージョン: 12.1.0
【当該サイトのURL】こちらのサイトのデザインリニューアル準備中です。
### 発生している問題
[3D FlipBook – Lite Edition]というPDFを表示するプラグインが有り、利用したいと思っています。
こちらのプラグインを使おうとしたら、PDFを登録及び表示編集画面が動かないです。
console で以下のErrorが発生しています。
DOMException: Failed to execute ‘removeChild’ on ‘Node’: The node to be removed is not a child of this node.
多分、カスタム投稿の 3d-flip-book で JavaScript (REACT) がぶつかっているようです。
### 試したこと
他のテーマを利用したら、特に問題なく編集できました。ちなみに、表示は問題ありません。
管理画面内の新規追加及び編集のページでの動きに問題がある形です。
可能であれば、対応をお願い致します。
♥ 0Who liked: No user2020年12月22日 9:58 AM #63858私も
twentytwentyone
テーマだと正しく動作しているのを確認しました。管理画面の方では、おそらく
removeChild
の直接的なエラーではなく、Loading でデータが何らかの不具合で取れていない → Detailの中のオブジェクトを remove しようとしているがそもそもデータが何らかの不具合で…なので、remove が正常にできなくて、それでremoveChild
としたエラー表示が出ているような感じがします。(保証はできませんが…)Snow Monkey テーマだと、
追加の不具合で、「ビューア(フロントの投稿)画面で、CSSやら色々当たらずに真っ白になる」
のもあるようです。
このビューアが表示されない問題は、投稿タイプ周りのテンプレートコール等の問題かも。
テンプレートの読み込み方法を変更したりして、ビューアが表示されるかとかも少し試してみます。(追って報告しま)♥ 0Who liked: No user2020年12月22日 10:47 AM #63862とりあえず、ビューアの表示の問題は プラグイン内の
add_filter('single_template', '\iberezansky\fb3d\custom_template');
と言ったこの処理が問題なので、こいつをpost-type
を見てremove_filter
して…発行されているshortcode
をハンドラーで処理されているのをそのまま同じように処理すれば 一応の表示を可能にできるかとました。(追記修正// ビューア画面を崩さず表示する(管理画面はまだ未対応) add_filter( 'single_template', 'fb3d_viewer_fix_template', 1 ); function fb3d_viewer_fix_template( $single ) { global $post; if ( '3d-flip-book' === $post->post_type ) { remove_filter( 'single_template', '\iberezansky\fb3d\custom_template' ); add_filter( 'the_content', function() { echo( \iberezansky\fb3d\shortcode_handler( [ 'id'=> get_the_ID(), 'classes'=> 'fb3d-default-page' ] ) ); } , 1 ); } return $single; }
管理画面の不具合の方も、プラグイン内の呼び込み処理云々が原因のようなので、調査しますが
少々難しい問題もあるのでお急ぎでしたら別テーマで管理画面でPDFをアップロードなどしていただき、 My Snow Monkeyに上記のコードを書いて対応していただければと思います。
(一応、ビューア表示がされるようになるはずです)調査中ですが…管理画面の設定も綺麗に動作するように対応するには Snow Monkey にも手を加えるしかないかもです…(北島さん、よろしくw
♥ 1Who liked: No user2020年12月22日 11:35 AM #63868Snow Monkey テーマの
app/setup/assets.php
のforeach ( [ 'wp_enqueue_scripts', 'admin_enqueue_scripts' ] as $action_hook ) { add_action(
の読み込みを外せば動作する
んですが、これをどうやってプラグインなりで外せばいいんだろう…これでどうだ!!
add_action( 'load-post.php', 'fb3d_viewer_fix_post' ); add_action( 'load-post-new.php', 'fb3d_viewer_fix_post' ); function fb3d_viewer_fix_post() { global $current_screen; if( is_admin() && '3d-flip-book' === $current_screen->post_type ) { add_action( 'wp_print_scripts', function() { wp_dequeue_script( 'fontawesome5' ); wp_dequeue_script( \Framework\Helper::get_main_script_handle() . '-fontawesome' ); } ); } }
♥ 0Who liked: No user2020年12月22日 12:05 PM #63871こちらの環境では動作したので、解決方法をまとめときます。
my snow monkey で、下記のコードを加えてください。
// 公開したカスタム投稿のビューア画面を崩さず表示させる // ショートコードで埋め込むと正しく表示されますが、デフォルトだとサイトの /3d-flip-book/パーマリンク が正しく表示されないのでfixする add_filter( 'single_template', 'fb3d_viewer_fix_template', 1 ); function fb3d_viewer_fix_template( $single ) { global $post; if ( '3d-flip-book' === $post->post_type ) { remove_filter( 'single_template', '\iberezansky\fb3d\custom_template' ); add_filter( 'the_content', function() { echo( \iberezansky\fb3d\shortcode_handler( [ 'id'=> get_the_ID(), 'classes'=> 'fb3d-default-page' ] ) ); } , 1 ); } return $single; } // 管理画面の投稿のDetailメタボックスを正常に動作させる add_action( 'load-post.php', 'fb3d_viewer_fix_post' ); add_action( 'load-post-new.php', 'fb3d_viewer_fix_post' ); function fb3d_viewer_fix_post() { global $current_screen; if( is_admin() && '3d-flip-book' === $current_screen->post_type ) { add_action( 'wp_print_scripts', function() { wp_dequeue_script( 'fontawesome5' ); wp_dequeue_script( \Framework\Helper::get_main_script_handle() . '-fontawesome' ); } ); } }
なお、35ドルするのでPro版は買ってません。Light版で確認してます。
Pro版で動くかは解りません…(汗♥ 2Who liked: No user2020年12月24日 2:19 PM #64132ありがとうございます。
こちらで対応できました。
他のカスタム投稿で発生するのであればコアの方でも実装できれば。
よろしく北島さん!
♥ 0Who liked: No user2020年12月24日 2:36 PM #64134他のカスタム投稿で発生するのであればコアの方でも実装できれば。
北島さんではないですが、少し回答します。
何で今回このような問題が起こっているかというと…
3D FlipBook のプラグインは、プラグイン内に仕込まれている React と React dom などの javascript ライブラリを強制的に呼び出してるんです。
それで、Snow Monkey で読み出してる Font Awesome の javascript で使われている処理を、このプラグインの強制的に呼んでいる React dom とかの処理が競合動作をして正しく動作しないような状態にさせてたんですね。
なかなか癖の悪いプラグインなので…このような問題に対してテーマでオールマイティに対応するよは個々で条件を付けてカスタマイズした方が良いと思います。他のカスタム投稿タイプに対応させる場合は
‘3d-flip-book’ の所をカスタム投稿タイプに合わせて条件を変更していただく形で対応するのが良いと考えられます。
そもそも、プラグイン側で PDFビューアの投稿タイプを3d-flip-book
以外にすると正常に動作しないコード構造で実装されてますので…3D FlipBook のプラグインを独自カスタマイズされない限りは大丈夫という気がします。♥ 1Who liked: No user2020年12月24日 2:43 PM #64136WooCommerce、Event Organiser、The Event Calendar など、カスタム投稿タイプが使われていて、かつプラグイン内のページテンプレートを呼びだすようにしていたり、あるいは独自にクエリを書き換えたりしているものとは Snow Monkey は相性がわるいんです…。そして、どれも個別に対応しないと対処できないところがやっかいなところでして…。
♥ 1Who liked: No user2020年12月25日 4:08 AM #64165Kmical Lightsさん、キタジマさん
なるほどです。ありがとうございます。
個別対応するようにします。
♥ 0Who liked: No user -
投稿者投稿
- トピック「3D FlipBook のプラグインが使えないので、使えるようにしてほしい。」には新しい返信をつけることはできません。