17713433920 info@mac163.com
使WordPress仪表板小部件可配置
使WordPress仪表板小部件可配置

几周前,我们看到了如何向管理中添加自定义RSS仪表板元框。今天,我想向您展示如何向此仪表板metabox添加可配置选项。

这是我们要做的结果:

要做的第一件事显然是阅读本教程的第一部分,以创建元框。

本教程中最重要的功能是  wp_add_dashboard_widget()。WordPress功能注册了仪表板小部件。我们已经看到在窗口板上注册窗口小部件和输出窗口小部件的功能非常简单,但是我们没有介绍该功能的最后一个参数。基本上,wp_add_dashboard_widget()具有4个参数:

$ widget_id
(整数)(必需),它是小部件的标识段。这将用作其CSS类以及其在小部件数组中的键。
默认值:无

$ widget_name
(字符串)(必填),这是您的小部件将在其标题中显示的名称。
默认值:无

$ callback
(字符串)(必需)您创建的函数的名称,该函数将显示小部件的实际内容。
默认值:无

$ control_callback
(字符串)(可选)您创建的函数的名称,该函数将处理小部件选项(配置)表单的提交,并且还将显示表单元素。
默认值:无

如您所见,第四个参数是负责“配置”选项的参数。填写此参数时,您告诉WordPress加载特定功能以配置小部件。当您将光标放在它上面时,它会自动在metabox标题中创建一个“配置”链接。

步骤1:注册配置选项功能

因此,第一步是修改  wp_add_dashboard_widget()调用,并在最后一个参数中添加configure options函数的名称。您的  rc_mdm_register_widgets()函数应变为:

/**
 * Register all dashboard metaboxes
 *
 * @access      public
 * @since       1.0 
 * @return      void
*/

function rc_mdm_register_widgets() {
	global $wp_meta_boxes;
	
	wp_add_dashboard_widget('widget_custom_rss', __('My RSS Feeds', 'rc_mdm'), 'rc_mdm_create_my_rss_box', 'rc_mdm_configure_my_rss_box');
}
add_action('wp_dashboard_setup', 'rc_mdm_register_widgets');

我们仅在最后一个参数中添加了“ rc_mdm_configure_my_rss_box”。

步骤2:创建配置选项功能

此步骤并不复杂。我们要做的就是创建存储在数组中的表单字段。为此,我们将使用  update_option()。我们不需要创建完整的表单,因为WordPress为我们创建了完整的表单。我们只需要注册字段。值得一提的是,WordPress会自动将一个随机数添加到表单中,以使表单变得安全并避免潜在的安全问题。这是rc_mdm_configure_my_rss_box()函数的代码(还记得吗?这是我们在wp_add_dashboard_widget()中定义的第四个参数   )。

/**
 * Creates the RSS metabox configuration settings
 *
 * @access      public
 * @since       1.0 
 * @return      void
*/
function rc_mdm_configure_my_rss_box( $widget_id ) {

	// Get widget options
	if ( !$rc_mdm_widget_options = get_option( 'rc_mdm_dashboard_widget_options' ) )
		$rc_mdm_widget_options = array();

	// Update widget options
	if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset($_POST['rc_mdm_widget_post']) ) {
		update_option( 'rc_mdm_dashboard_widget_options', $_POST['rc_mdm_widget'] );
	}
	
	// Retrieve feed URLs
	$url_1 = $rc_mdm_widget_options['url_1'];
	$url_2 = $rc_mdm_widget_options['url_2'];
	$url_3 = $rc_mdm_widget_options['url_3']; ?>

	<p>
		<label for="rc_mdm_url_1-"><?php _e('Enter the RSS feed URL #1:', 'rc_mdm'); ?></label>
		<input class="widefat" id="rc_mdm_url_1" name="rc_mdm_widget[url_1]" type="text" value="<?php if( isset($url_1) ) echo $url_1; ?>" />
	</p>
	
	<p>
		<label for="rc_mdm_url_2"><?php _e('Enter the RSS feed URL #2:', 'rc_mdm'); ?></label>
		<input class="widefat" id="rc_mdm_url_2" name="rc_mdm_widget[url_2]" type="text" value="<?php if( isset($url_2) ) echo $url_2; ?>" />
	</p>
	
	<p>
		<label for="rc_mdm_url_3"><?php _e('Enter the RSS feed URL #3:', 'rc_mdm'); ?></label>
		<input class="widefat" id="rc_mdm_url_3" name="rc_mdm_widget[url_3]" type="text" value="<?php if( isset($url_3) ) echo $url_3; ?>" />
	</p>
	
	<input name="rc_mdm_widget_post" type="hidden" value="1" />
	<?php
} ?>

现在,您可以重新加载仪表板,并且如果将光标放在小部件metabox上,则会在右上角看到“配置”链接。当您单击它时,将加载选项表单。填写字段并保存Feed时,URL存储在我们的选项SQL表中。

步骤3:检索选项

最后一步是替换我们在教程第一部分中硬编码的提要URL。从rc_mdm_create_my_rss_box()中的第14至18行,我们添加了两个URL。只需将其替换为:

// My feeds list
if ( !$my_feeds = get_option( 'rc_mdm_dashboard_widget_options' ) )
    $my_feeds = array();

就是这样!我们设法轻松地将自定义选项添加到仪表板小部件。


微信二维码

微信扫描二维码联系我们!
我们在微信上24小时期待你的声音
提供外贸路由器设备产品,轻松翻墙,解答:WP主题推荐,WP网站建设,Google SEO,百度SEO,专业服务器环境搭建等!


需要提供WordPress主题/插件的汉化服务可以随时联系我们!另外成品WordPress网站以及半成品WordPress网站建设,海外Google SEO优化托管服务,百度SEO优化托管服务,Centos/Debian服务器WP专用环境搭建,WP缓存服务器搭建,我们都是你的首选,拥有多年WP开源程序服务经验,我们一直在坚持客户体验,没有最好,只有更好!
回到顶部