我试图调用一个函数来保存提交按钮的更改,但我不习惯PHP编程,因为我刚刚开始。我试着在谷歌上搜索了一下,但没有发现任何对我的情况有用或适用的东西。
在脚本的底部,我有一个创建仪表板页面的函数:
function blank_add_pages() {
// anyone can see the menu for the Blank Plugin
add_menu_page(\'Development Log\',\'Dev Log Plugin\', \'read\', \'development_log\', \'blank_overview\', \'dashicons-book\');
// http://codex.wordpress.org/Function_Reference/add_menu_page
// this is just a brief introduction
add_submenu_page(\'blank_overview\', \'Overview for the Blank Plugin\', \'Overview\', \'read\', \'blank_overview\', \'blank_intro\');
// http://codex.wordpress.org/Function_Reference/add_submenu_page
}
function blank_overview() {
$logText = wp_remote_fopen(\'http://com.areonline.co.uk/wp-content/plugins/blank/devlog.txt\');
?>
<style>
#devlog-content {
width: 100%;
}
</style>
<div class="wrap"><h2>Labyrith Development Log</h2>
<p>A simple overview of our work.</p>
<textarea id="devlog-content"><?php echo $logText ?></textarea>
<?php submit_button(); ?>
</div>
<?php
exit;
}
?>
但我不确定如何触发保存调用,将文本区域中的内容(更改)保存回位于第27行ish链接的文件。
有人知道怎么做吗?
SO网友:majick
你需要有一个<form>
要素不指定表单action
将表单帖子属性设置为您所在的同一页面,这样可以轻松处理。
也是一个id
在文本区域上,您需要添加一个name
要捕获的属性$_POST
用于处理。还添加了nonce
字段是良好的做法,检查权限以确保安全。尝试以下操作:
function blank_overview() {
$logPath = dirname(__FILE__).\'/devlog.txt\';
$logText = file_get_contents($logPath);
if (isset($_POST[\'devlog_content\'])) {
if ( (wp_verify_nonce($_POST[\'devlog_nonce_field\'],\'devlog_nonce_action\'))
&& (current_user_can(\'manage_options\')) ) {
$logText = $_POST[\'devlog_content\'];
file_put_contents($logPath, $logText);
echo "Dev Log Saved.<br><br>";
} else {echo "Warning: Dev Log NOT Saved.<br><br>";}
}
?>
<style>#devlog-content {width: 100%;}</style>
<div class="wrap"><h2>Labyrith Development Log</h2>
<p>A simple overview of our work.</p>
<form method="post">
<?php wp_nonce_field(\'devlog_nonce_action\',\'devlog_nonce_field\'); ?>
<textarea name="devlog_content" id="devlog-content"><?php echo $logText ?></textarea>
<input type="submit" class="button-primary" value="Save Dev Log">
</form>
</div>
<?php } ?>
你也不会我已经删除了
exit
. 这里不需要它,它可以阻止管理员页脚脚本等完成,因为它会停止进一步的输出。该函数将自动返回,并允许其他事情在没有它的情况下完成。