フォーラムへの返信
-
投稿者投稿
-
まず前提として、
– 埋め込みに失敗しました
– Snow Monkey 公式サイトトップページのブログカードのレイアウトが編集画面で崩れるについては、WordPress のデフォルトの挙動でした。
その上で、Snow Monkey は
– WordPress がブログカードとして表示できないもの(つまり↑であげたもの)
– WordPRess がブログカードとして表示するもののそれぞれについて、それぞれに別々の処理をして、結果としてどちらも同じデザインのブログカードを表示する、ということをやっています。さらに、ブログカードの表示処理は実際のページと編集画面とはまた別の処理になっていて、今回は編集画面用の処理に不具合があったことが原因でした。
編集画面用の処理は、まずそれがブログカードにするかどうかを判定する必要があって、その判定処理が
$request_uri = filter_input( INPUT_SERVER, 'REQUEST_URI' ); if ( ! $request_uri ) { return false; }
の部分でした。で、サーバーの環境によって
filter_input( INPUT_SERVER, 'REQUEST_URI' )
という書き方ではデータがとれないことがあるみたいで、そういう環境用にif ( ! $request_uri ) { $request_uri = esc_html( wp_unslash( $_SERVER['REQUEST_URI'] ?? '' ) ); }
という処理を追加しました。これでより多くの環境で正しく条件判定ができるようになり、JKDECOR さんのサイトでもちゃんと表示するようになった、ということになります。
Snow Monkey v27.0.2 としてリリースしているのでアップデートして改めて確認をお願いします!
♥ 0Who liked: No userちょっと下記をやってみてほしいです!
snow-monkey/vendor/inc2734/wp-oembed-blog-card/src/Bootstrap.php
のprotected function _is_block_embed_rendering_request() { $reuest_uri = filter_input( INPUT_SERVER, 'REQUEST_URI' );
を
protected function _is_block_embed_rendering_request() { $reuest_uri = filter_input( INPUT_SERVER, 'REQUEST_URI' ); if ( ! $reuest_uri ) { $reuest_uri = $_SERVER['REQUEST_URI']; }
に変更
♥ 0Who liked: No userとりあえず管理画面をみた範囲で。
ブログカードの仕組みは、
– URL が貼られる
– 次の URL にリクエストを送る(下記は YouTube のチャンネルの URL を貼り付けた場合の例)
https://livingskape.jkdecor.com/wp-json/oembed/1.0/proxy?url=https%3A%2F%2Fwww.youtube.com%2F%40BingJapan&_locale=user
– ブログカードのもとになるデータが生成されて返ってくる
– それをもとにブログカードを表示するとなっています。このリクエストがなぜか404になってしまうみたいです。
Snow Monkey 公式サイトでは正しくデータが返ってくるので、今時点で怪しいなと思うのはセキュリティプラグインやサーバー側のセキュリティ機能で REST API が制限されている、とか、
.htaccess
に独自のリライトルールを追加している、が怪しいかなと感じました。もしセキュリティプラグインを使っていたり、サーバー側のセキュリティ機能を有効化している場合はそれを停止してみてください。
また、.htaccess
を独自にいじっているようであれば、その内容を教えてください。♥ 0Who liked: No userお返事遅くなりすみません! いただいたコードをテスト環境にはりつけて試してみました。
PHP 8.1、8.2、8.3 で試してみたのですが、いずれの環境でもエラーは確認できませんでした。
別の要因がエラーの原因である可能性もあるのかな?と思いましたので、以下について教えてください。
以下のエラーが出力されました。
PHP Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /ホスト/ドメイン/public_html/フォルダ/wp-content/themes/snow-monkey/vendor/inc2734/wp-view-controller/src/App/Contract/Template_Tag.php on line 194上記について、エラーはどこに出力されたのでしょうか? 画面上、エラーログ等…。
エラーログだった場合、
error_log('$inquiry: ' . print_r($inquiry, true));
の部分をerror_log('$inquiry: ' . print_r($inquiry, true), 3, get_template_directory() . '/error_log');
のようにすると、そのエラーはsnow-monkey/error_log
に出力されるのか、それともサーバーのエラーログに出力されるのかどちらでしょうか?もう一点、子テーマや My Snow Monkey によるテンプレートの上書き、あるいは
snow_monkey_get_template_part_render
フィルターフックを使ったカスタマイズはされていますでしょうか?
している場合、それをやめるとエラーは発生しなくなりますか?♥ 0Who liked: No userまず All-in-One WP Migration プラグインをサイトにインストールし、エクスポートしてください。
僕もエクスポートされたデータを頂くばかりで詳しい操作方法はわからないので、詳しいやり方はググってみてください。エクスポートできたら、オンラインコミュニティ(Discrod)で僕に DM で送ってください!
♥ 0Who liked: No user詳しくありがとうございます。プラグインや CSS の状況が同じでも、3パターンの不具合が発生するということは、原因は一つではないのかもしれません…。
ちょっとこれ以上は実際にコードを書き換えたりしながら詳しく調査しないとわからなさそうなので、下記のいずれかをご対応いただくことは可能でしょうか?
1. All-in-One WP Migration でエクスポートしたデータと WordPress のログイン情報を提供いただく
2. 直接サイトにログインして調査させていただくただ、コードを書き換えたりしないと調査が難しいと思うので、できれば(1)のほうが安全かなとは思います。
ご検討よろしくお願いします!♥ 0Who liked: No userありがとうございます。となると
snow_monkey_forms/administrator_mailer/args
にフックさせた処理に何かある可能性もあるのかなと思いました。こちらでも試してみたいので、
snow_monkey_forms/administrator_mailer/args
にフックさせた処理をここに貼り付けてもらうことはできますか?♥ 0Who liked: No usersnow_monkey_forms/administrator_mailer/args
フィルターフックを使ったカスタマイズを行わない場合はPHP Deprecated〜
のエラーは表示されないのですかね?♥ 0Who liked: No userちょっと整理したいのですが、
– 何も消さない状態だと編集画面でブログカードが「真っ白」に表示される
– My Snow Monkey を無効化すると「このコンテンツを埋め込めませんでした。」のボックスが表示されるということであっていますか?
♥ 0Who liked: No user全角の空白が混ざっていたとかですかね…?
♥ 0Who liked: No user色の指定は頭に
#
が必要です。なので、例えばFFFFFF
ではなくて#FFFFFF
になります。
また、//文字色
のように、//
で始まるコメントは CSS では不正になるので、/* 文字色 */
のように書き換えるか削除してみてください。♥ 0Who liked: No userむーん…。
「My Snow Monkey を無効化したら表示される」けど「My Snow Monkey のブログカード部分の記述だけを消しても表示されない」ということは、その他の何かのコードが影響しているのだと思うので、1つずつ消していって、どのコードが影響しているのかを突きとめるのが確実かなと思います。突きとめたら、ブログカードに影響しない形にその部分のコードを書き換える感じで…。
♥ 0Who liked: No user乙女塾の受託案件と乙女塾自体のプロジェクトで1つ
わたし個人(mixPie.Design)の受託案件と私個人のソーシャルデザインプロジェクトで1つはい、そのようになります!
受託案件が完成して売上があがったら必ずライセンスをもうひとつ購入します
これについてはパブリックなこの場所で OK とは言えないです…すみません。
Snow Monkey は試用版を提供しているので、その試用版で開発を進めてあとで製品版に差し替えるとか、GitHub にもソースデータ(ビルドしないと使えない)を公開しているのでそれを使って開発を進めてあとで製品版に差し替えるとか、そういうやり方はあるかなと思います。ライセンスを取得した場合、それぞれの質問はそれぞれのアカウントで質問したほうがいいですか
このサポートコミュニティにログインするのを切り換えるのはちょっと面倒というか…もし otomeweb さんが乙女塾を抜けたときに、投稿した情報の権利はどっちにあるのかみたいな問題が発生することは絶対に無いとは言えないと思うので、そういう意味ではちゃんと使い分けたほうが良いのではないかという気はします。
♥ 0Who liked: No user情報ありがとうございます。
Chrome ゲストモード、Microsoft Edge で WordPress にログインしてリストが表示されなくなる場合はプラグインの可能性があると思います。ログインしてもちゃんとリスト表示されるのであれば拡張機能、あるいは古い CSS がキャッシュされている可能性があると思います。
Chrome ゲストモード、Microsoft Edge で WordPress にログインしたらどうなるか確認してみてください。
♥ 0Who liked: No userChrome、Safari、Firefox で確認してみましたが、僕の環境ではどれでもちゃんとリスト表示されていました。
Chrome をお使いとのことですが、シークレットウィンドウで表示したらリスト表示になったりしますかね?
♥ 0Who liked: No user -
投稿者投稿