私は、すべてのセクションのオプションを管理するために Redux Framework がインストールされている WordPress 用のソーター プラグインに取り組んでいます。プラグインは AJAX を使用して Web サイトのホームページのすべてのセクションの ID を取得し、それらの値をプラグインのメイン ファイルに渡して、現在のユーザー メタに値を格納する関数で処理します。それはうまくいきます、ここでは問題ありません。関数は次のようになります。
add_action( 'wp_ajax_save_sections_ids', 'save_sections_ids_sorting_sections' );
function save_sections_ids_sorting_sections() {
//stuff here...
$user_ide = get_current_user_id(); //it works because it is inside a hook
update_user_meta($user_ide, "set-sections", $sections_ids);
die();
}
次に、user_meta に格納された値を取得して Redux フィールドに渡す必要があるため、プラグインのメイン ファイルに別の関数を記述しました。関数は次のとおりです。
function get_the_db_sections_ids() {
$user_ide = 1; //This should be get_current_user_id() or something similar, but nothing works, not even globalizing $current_user and using get_currentuserinfo();
$sections_ids = get_user_meta($user_ide, "set-sections", true);
$sorter_field = array(
"section_id" => "basic",
'id' => 'homepage-sections',
'type' => 'sorter',
'title' => 'Control de secciones',
'desc' => 'Arrastra y suelta los bloques con los nombres de las secciones, tanto para ordenarlas verticalmente como para desactivarlas o activarlas.',
'compiler' => 'true',
'options' => array(
'enabled' => array(
),
'disabled' => $sections_ids
),
);
return $sorter_field;
}
上記の関数のコメントでわかるように、いくつかの方法も試しましrequire_once("/../../../wp-load.php")
たが、何も起こりません。と 、フックを作成しようdo_action
とadd_actions
しましたが、それらもグローバル変数を使用しています。私が理解していることでは、プラグインにフックがない関数ではグローバル変数は機能しません。
しかし、私はまだ終わっていません。本当にトリッキーな部分は、Redux 構成ファイル内で Redux クラスのインスタンスを呼び出していることです (デモ用のsample-config.php、カスタム ファイルがありますが、それは同じです)。
インスタンスはRedux::setField($opt_name, get_the_db_sections_ids());
関数から呼び出した場合、またはAJAX呼び出しにリンクされた関数から呼び出した場合、これは何も出力しません。
ご覧のとおり、インスタンスの 2 番目のパラメーターはその上に記述した関数であり、 に設定$user_ide
すると完全に機能しますが、ユーザーが消去された場合などに備え1
て、すべての admins にデータ ストアが必要です。user_meta
1
私が望むものを達成する方法、またはデータを別の場所に保存してそこから取得する方法はありますか? dbにカスタムテーブルを作って、それを使ってデータを取得しようと思っていたのですが、どちらも同じ問題になるのでwpdb
使えないと思います。wpdb
非常に基本的なものが欠けているような気がしますが、わかりません。助けてください。