#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