我想为管理员创建一个插件,以便在仪表板中编写每日消息;将其显示在他的网站上。我有两个文件,dailymessage.php
和messageform.php
.
在里面dailymessage.php
我有以下代码:
add_action( \'admin_menu\', \'getMessage\' );
function getMessage() {
add_options_page( "DailyMessage", "DailyMessage", 1, "DailyMessage", "messageForm" );
}
function messageForm() {
include(\'messageForm.php\' );
}
并且在
messageform.php
我有以下代码:
<form method="POST" action="">
<label for="adminMessage">Your Message : </label>
<input id="adminMessage" type="text" name="adminMessage" placeholder="Your Message ..." />
<input type="submit" value="Submit" />
</form>
<?php
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE messages (
id mediumint(9) NOT NULL AUTO_INCREMENT,
message tinytext NOT NULL,
) $charset_collate;";
require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
dbDelta( $sql );
$wpdb->insert( "messages", array(
"id" => null,
"message" => $_POST[\'adminMessage\'],
) );
?>
代码不起作用,为什么?我可以在上面这样的表单文件中编写处理表单的代码,还是应该创建另一个页面?
最合适的回答,由SO网友:webtoure 整理而成
如果您不想使用Dashboard Widgets API
您可以使用我快速编造的这个代码片段作为starting point:
function dashboard_daily_post_metabox() {
add_meta_box( \'wt_id\', \'Daily Post\', \'dashboard_daily_post_process\', \'dashboard\', \'normal\', \'high\' );
}
add_action( \'wp_dashboard_setup\', \'dashboard_daily_post_metabox\' );
function dashboard_daily_post_process() {
global $wpdb;
?>
<form method="post">
<label>Age <input type="text" name="wt_age" value="<?php echo $wpdb->prefix; ?>" /></label>
<input type="submit" class="button-primary" value="Save" />
</form>
<?php
}
正如您所见,您可以访问全球
$wpdb
变量,您可以根据需要处理您的请求。
您可以通过将此代码转储到主题的functions.php
文件