WPワークス

ダウンロードコンテンツやワードプレスのカスタマイズ方法を配信中。

IDが原因で一部のテーマカスタマイザーの設定値が保存されない?

分かる方がいらっしゃったらご教授頂きたいんですが、テーマ「ShapeShifter」上で、一部のテーマカスタマイザー設定で問題が起こっているんですよ。確認したのは「右上固定可能ウィジェットエリア」でウィンドウのトップと右からの距離を設定する「range」タイプの設定です。

 

テーマカスタマイザー range エラー HTML
テーマカスタマイザー range エラー HTML

スクリーンショットにあるように、「保存して公開」というボタンをクリックすると、「無効な値です。」とラベル下に表示されます。

下の要素検証ツールでも、何も奇妙な点・エラーなどは出力されていません。

通常PHPのコードの時点で間違っていると、input要素の前後か属性値として何か出力されていると思ったんで、一応載せておきます。

 

テーマカスタマイザー range エラー console
テーマカスタマイザー range エラー console

こちらはライブプレビュー用のJavaScriptでちゃんと値が受け取れているかコンソールでチェックしていますが、ちゃんとスライドバーを動かすたびに値が取得できているんですよ。

テーマカスタマイザーのクラスの初期化で、何かしらプロパティなどで問題が起こっているんだと思います。

 

原因は恐らくIDだと推測

既に英語版と日本語版の両方のフォーラムの方に質問を書き込んでみたんですが、返事が来るまで自分で粘ろうと頑張って気付いたことがありました。

設定IDの値を変更するだけでスムーズに設定値が保存されるんです。

ただ、気になったのが、不具合がある設定項目が1つだけじゃない点でした。ただ、その問題が起こっている2つの設定項目に用いられているIDはともに「widget_area_top_right」で始まるものでしたので、恐らく「widget」もしくは「widget_area」というプレフィックスに問題があったんじゃないかと推測できます。恐らくワードプレスコアがテーマカスタマイザー上でウィジェットやウィジェットエリアに関して設定する際に、プレフィックスを使ってまとめて管理していて、その対象に誤まって含まれてしまったという感じがします。

そこでIDを「widget_area_」から変更してみると、上手く機能してくれるようになったんですよ。

まぁIDを譲ることになってしまったのでスッキリはしないんですが、問題が起きないよりはマシですからね。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

メニュ
ホーム
トップへ