Я работаю над плагином для Wordpress, который требует добавления кнопки в редактор. При нажатии кнопки открывается диалоговое окно с некоторыми полями формы. Пользователь может заполнить данные, и когда они «отправят», он создает короткий код в редакторе.Скрипты Enqueue в диалоговом окне плагина Wordpress
Мне удалось успешно добавить кнопку в редактор, и у меня есть вызов AJAX для загрузки диалогового окна. Вот отрывок из JS, что делает это возможным:
ed.windowManager.open(
{
file : ajaxurl + '?action=my_dialog_window',
width : 480 + parseInt(ed.getLang('my_app.delta_width',0)),
height : 300 + parseInt(ed.getLang('my_appdelta_height',0)),
inline : 1
},
{
plugin_url : url,
some_custom_arg : 'custom arg'
}
)
В моем модуле я звоню следующее:
add_action('wp_ajax_my_dialog_window', 'my_dialog_window');
Это основная функция выглядит следующим образом:
function my_dialog_window()
{
// Queue JavaScript
wp_enqueue_script("jquery");
wp_enqueue_script("tiny_mce_popup",MY_WP_PLUGIN_URL."/js/tiny_mce_popup.js");
wp_enqueue_script("my-dialog",MY_WP_PLUGIN_URL."/js/my-dialog.js");
// Display Form
echo "<form id=\"myForm\" method=\"post\">
<tr>
<td align=\"right\" class=\"gray dwl_gray\"><strong>Field:</strong></td>
<td valign=\"top\"><input name=\"answer1\" type=\"text\" id=\"answer1\" size=\"40\" /></td>
</tr>
...
</table>
<div class=\"mceActionPanel\">
<div class=\"fl\"><input type=\"button\" id=\"insert\" name=\"insert\" value=\"Insert\" onclick=\"MyInsertDialog.insert();\" /></div>
<div class=\"fr\"><input type=\"button\" id=\"cancel\" name=\"cancel\" value=\"Cancel\" onclick=\"tinyMCEPopup.close();\"/></div>
</div>
</form>";
}
Так , вы нажимаете кнопку в редакторе и загружается диалог. Я вижу 2 вопроса.
Во-первых, javascript не включен. Я могу переключиться на прямые ссылки для него, но «лучшие практики» используют wp_enqueue_script, поэтому я действительно стараюсь приспособить это.
Во-вторых, в нижней части формы находится текст: «0». Похоже, что он не может найти функцию обратного вызова, которая является той же функцией. Мне действительно не нужна функция обратного вызова на этом, так как я просто хочу использовать my-dialog.js для создания короткого кода и отбросить его в редактор.
для текста: «0». вы должны положить ** die() или выйти ** в конце вашей функции ** my_dialog_window ** – softsdev