0
我已經兩三週大了Wordpress,我正在爲一個基於wordpress的網站編寫一個小小的自定義系統插件。這個系統讀取一組json編碼文件,並將它們顯示爲表格列表。在插件設置頁面中編輯Wordpress遠程文件
加上我已經保存的一些基本設置,我想爲這些json文件包含一個簡單的文本編輯器,我想知道是否有一種方法可以爲options.php腳本「附加」自定義動作處理表單提交,以便發送文件路徑和內容。
我目前正在考慮編寫一些ajax,但我更喜歡在這裏問一下,也許有一個簡單的方法來實現這一點。
myplugin.php
function myplugins_menu(){
add_options_page('myplugin configuration','myplugin','manage_options', _
'myplugin_menu','myplugin_options');
//call register settings function
add_action('admin_init', 'register_mysettings');
}
add_action('admin_menu','myplugin_menu');
function myplugin_options(){
include('admin/myplugin-admin.php');
}
function register_mysettings() {
//register our settings
$setting_list=array('mail_title','mail_from','mail_to','recipient');
foreach ($setting_list as $setting){
register_setting('myplugin-settings-group', $setting);
}
}
爲myplugin-admin.php的
<div class="wrap">
<h2>My plugin</h2>
<h3>My plugin Options</h3>
<form method="post" action="options.php">
<?php settings_fields('myplugin-settings-group'); ?>
<?php do_settings_sections('myplugin-settings-group'); ?>
<table class="form-table">
<?php
print_option('Mail Subject','mail_title');
print_option('Sender address','mail_from');
print_option('Recipient address','mail_to');
print_option('Recipient name','recipient');
?>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php
echo "<select name=\"filename\" size=\"1\">";
$dir = plugin_dir_path(__FILE__);
$files = glob($dir."../services/*.json");
foreach ($files as $filename){
echo "<option value=\"".basename($filename)."\">".basename($filename)."</option>";
}
echo "</select>";
$dir = plugin_dir_path(__FILE__);
$file = file(WP_PLUGIN_DIR."/myplugin/services/010.Luftansa.json");
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">";
echo "<textarea Name=\"update\" cols=\"50\" rows=\"10\">";
foreach($file as $text) {
echo $text;
}
echo "</textarea>";
echo "<input name=\"Submit\" type=\"submit\" value=\"Update\" />\n
</form>";
}
在上面的代碼片段, 我把_SERVER['PHP_SELF']
爲形式的行動,但這變成/wp/wp-admin/options-general.php;
。
如果我把一個路徑給我的管理文件,我不能回到管理界面,除非通過http-refresh或類似的東西。
感謝您的閱讀:)
您還沒有發佈[最小工作示例](http://stackoverflow.com/help/mcve)。測試你的代碼是不可能的:'myplugin_menu'有一個錯字,'print_option'函數丟失,沒有'010.Luftansa.json'樣例。 。 。 。是的,處理表單很容易,您是否檢查了[Settings API](https://codex.wordpress.org/Settings_API)文檔? 。 。 。是的,使用Ajax是一個不錯的選擇。 – brasofilo
是的,我很抱歉,它有一個錯字,並不是一個最小的工作示例。 通過查看其他插件,我想出了一個解決方案,確實很簡單: '