Phpmyadminを使用してcg_optionの行/フィールドに値を保存しようとしていますが、データが正しく保存されておらず、保存後に再度ロードすると、データの一部しか表示されません。 phpmyadmin内で変換関数を使用する必要がありますか?
行はtheme_mods_ [テーマ名]です。
これは、フィールドに含まれているデータのサンプルです。
s:19:"thim_my_text_option" s:0:"" s:30:"thim_display_login_menu_mobile" b:0 s:25:"thim_body_secondary_color" s:7:"#4caf50" s:24:"thim_remove_query_string" b:0 s:21:"thim_google_analytics"
データはシリアル化されています。
それを編集するためには、それをアンシリアライズし、編集し、そして再度シリアライズし、そして保存する必要があります。
あなたはPHPでそれをすることができます。
シリアライズ および シリアライズ解除 を確認してください。
あなたは同様にこのツールをチェックすることができます: serializededitor.com
設定によっては、データベースに直接アクセスするときに考慮されないキャッシュがある場合があります。
あなたの代わりに新しい値でset_theme_mod
を実行することは可能ですか?例えば、あなたのfunctions.phpファイルを通して。
私はこのオンラインツールに "壊れた"シリアル化されたデータベースエントリを貼り付けることができました。
https://itask.software/tools/serialization-fixer.php
私の場合、シリアル化されたテキストを直接編集していたために文字数が壊れていましたが、何らかの理由でその数を手動で正しく取得するのが困難でした。
オンラインツールで文字が正しくカウントされ、シリアル化文字列が更新されました。
私が見つけたもう一つの便利なオンラインツールは文字列のPHPシリアライズされていないバージョンを示しています、これはいいです。
しかし、私がテストに役立つとわかったのは、文字数が間違っている場合に、シリアル化されていない出力の上にエラーメッセージが表示されることです。
メッセージが表示されない場合、シリアル化された文字列は(おそらく)正しいです。
http://unserialize.onlinephpfunctions.com/