Как получить данные в WordPress TinyMCE Listbox из базы данных

#php #wordpress #listbox #tinymce

#php #wordpress #listbox #tinymce

Вопрос:

Я разрабатываю плагин для WordPress.

я добавил список в TinyMCE, и мне нужно загрузить данные в TinyMCE из базы данных WordPress. я не могу жестко запрограммировать значения listbox, поскольку все мои значения коротких кодов сохраняются в базе данных WordPress.

есть ли какой-либо возможный способ сделать это?

 (function() {
    tinymce.PluginManager.add('AP_tc_button', function( editor, url ) {
        editor.addButton( 'AP_tc_button', {
            text: 'My test button',
            icon: 'wp_code',
            onclick: function() {
    editor.windowManager.open( {
        title: 'Select Your AD',
        body: [
        {
            type: 'listbox', 
            name: 'level', 
            label: 'Header level', 
           values: getValues()
        }],
        onsubmit: function( e ) {
            editor.insertContent('dd');
        }
    });
}
        });
    });


})();


function getValues() {
     //Set new values to myKeyValueList (i need this values get from the db)
tinyMCE.activeEditor.settings.myKeyValueList = [{text: 'newtext', value: 'newvalue'}];
      return tinyMCE.activeEditor.settings.myKeyValueList;
   }
  

Комментарии:

1. Можете ли вы поместить пример кода, который вы разработали?

2. хорошо, я добавил код

Ответ №1:

если это поможет кому-то, кто посещает этот пост.

Моим решением было получение данных с помощью ajax-запроса. Хитрость заключается в выполнении синхронного запроса (async: false).

 function getValues() {

    var data = {'action': 'getValuesAjax'};

    var q = jQuery.ajax({
        type: 'POST',
        url: ajaxurl,
        data: data,
        async: false,
        dataType: 'json'
    });      

    var values = q.responseJSON;
    return values;
}
  

Комментарии:

1. Это решение больше не работает… Я не уверен, связано ли это с обновлениями WordPress или устареванием async false