我们将在主题设置页面中包括什么?
> 主题设置页面中的选项取决于主题支持的功能和自定义。也就是说,每个主题设置页面中都有一些常见的内容。一些常见的选择是:社交网址,静态或响应式布局和标头徽标,仅举几例。在本教程中,我将向您展示如何在我们的主题设置页面中包含这四个选项。
>首先,我们必须在管理面板上创建一个菜单项,该菜单项将访问我们的主题设置页面。
>在这里,主题面板是代表我们菜单项的唯一ID。 them_settings_page是显示菜单API创建的页面内容的回调。我们将接下来对此功能进行编码。
这是外观。
<span>function theme_settings_page(){} </span> <span>function add_theme_menu_item() </span><span>{ </span> <span>add_menu_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "theme_settings_page", null, 99); </span><span>} </span> <span>add_action("admin_menu", "add_theme_menu_item");</span>
设置api
的概述
>设置API用于填充菜单项API创建的页面。设置页面分为各节和字段。这是theme_settings_page函数的代码以创建一个部分并添加提交按钮。
<span>function theme_settings_page(){} </span> <span>function add_theme_menu_item() </span><span>{ </span> <span>add_menu_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "theme_settings_page", null, 99); </span><span>} </span> <span>add_action("admin_menu", "add_theme_menu_item");</span>
>在这里,我们使用ID部分使用settings_field注册一个部分。主题选项是属于部分的所有字段的组ID。最后,submit_button()函数回荡了我们主题设置页面的提交按钮。
这是应该看起来的样子。
现在,让我们在设置页面中添加字段以存储我们的Facebook和Twitter个人资料URL。几乎每个WordPress主题都有社交个人资料选项,因此这是一个方便,实用的例子。
这是使用设置API添加输入文本字段的代码。初始化管理面板后,我们将注册各节和字段显示回调。在这里,我们使用了三个重要功能:
function theme_settings_page() { ?> <span><span><span><div</span> class<span>="wrap"</span>></span> </span> <span><span><span><h1</span>></span>Theme Panel<span><span></h1</span>></span> </span> <span><span><span><form</span> method<span>="post"</span> action<span>="options.php"</span>></span> </span> <span><span><?php </span></span><span> <span>settings_fields("section"); </span></span><span> <span>do_settings_sections("theme-options"); </span></span><span> <span>submit_button(); </span></span><span> <span>?></span> </span> <span><span><span></form</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><?php </span></span><span><span>}</span></span>
add_settings_section用于显示部分标题和描述。
>我们现在已经看到了如何使用我们的设置页面添加输入文本字段。让我们来看看如何通过在静态或响应式布局之间进行选择来添加复选框。
>>让我们看看如何扩展display_theme_panel_fields函数以显示一个复选框以在布局之间进行选择。
>
>我们使用add_settings_field添加了一个新的设置字段,并像往常一样使用register_settings进行了注册。要注意的一件事,如果我们想确定用户是否已选中了复选框,我们正在使用checked()函数。
>function display_twitter_element() { ?> <span><span><span><input</span> type<span>="text"</span> name<span>="twitter_url"</span> id<span>="twitter_url"</span> value<span>="<span><?php echo get_option('twitter_url'); ?></span>"</span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_facebook_element() </span></span><span><span>{ </span></span><span> <span>?></span> </span> <span><span><span><input</span> type<span>="text"</span> name<span>="facebook_url"</span> id<span>="facebook_url"</span> value<span>="<span><?php echo get_option('facebook_url'); ?></span>"</span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_theme_panel_fields() </span></span><span><span>{ </span></span><span> <span>add_settings_section("section", "All Settings", null, "theme-options"); </span></span><span> </span><span> <span>add_settings_field("twitter_url", "Twitter Profile Url", "display_twitter_element", "theme-options", "section"); </span></span><span> <span>add_settings_field("facebook_url", "Facebook Profile Url", "display_facebook_element", "theme-options", "section"); </span></span><span> </span><span> <span>register_setting("section", "twitter_url"); </span></span><span> <span>register_setting("section", "facebook_url"); </span></span><span><span>} </span></span><span> </span><span><span>add_action("admin_init", "display_theme_panel_fields");</span></span>
checked()函数将值与另一个值进行比较,如果它们是相等的,则它会回荡一个检查属性,否则什么都不是。
这是我们的设置页面现在的外观。
上传徽标
这是在我们的设置页面上上传徽标的代码。
>>在这里,我们使用wp_handle_upload来存储图像文件并检索其URL并将其作为选项存储。
function display_twitter_element() { ?> <span><span><span><input</span> type<span>="text"</span> name<span>="twitter_url"</span> id<span>="twitter_url"</span> value<span>="<span><?php echo get_option('twitter_url'); ?></span>"</span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_facebook_element() </span></span><span><span>{ </span></span><span> <span>?></span> </span> <span><span><span><input</span> type<span>="text"</span> name<span>="facebook_url"</span> id<span>="facebook_url"</span> value<span>="<span><?php echo get_option('facebook_url'); ?></span>"</span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_layout_element() </span></span><span><span>{ </span></span><span> <span>?></span> </span> <span><span><span><input</span> type<span>="checkbox"</span> name<span>="theme_layout"</span> value<span>="1"</span> <span><span><?php checked(1, get_option('theme_layout'), true); ?></span></span> /></span> </span> <span><span><?php </span></span><span><span>} </span></span><span> </span><span><span>function display_theme_panel_fields() </span></span><span><span>{ </span></span><span> <span>add_settings_section("section", "All Settings", null, "theme-options"); </span></span><span> </span><span> <span>add_settings_field("twitter_url", "Twitter Profile Url", "display_twitter_element", "theme-options", "section"); </span></span><span> <span>add_settings_field("facebook_url", "Facebook Profile Url", "display_facebook_element", "theme-options", "section"); </span></span><span> <span>add_settings_field("theme_layout", "Do you want the layout to be responsive?", "display_layout_element", "theme-options", "section"); </span></span><span> </span><span> <span>register_setting("section", "twitter_url"); </span></span><span> <span>register_setting("section", "facebook_url"); </span></span><span> <span>register_setting("section", "theme_layout"); </span></span><span><span>} </span></span><span> </span><span><span>add_action("admin_init", "display_theme_panel_fields");</span></span>
这是我们的设置页面现在的外观,它很好地塑造了!
>>主题需要检索前端的设置值。设置API使用选项API在内部存储值。因此,您可以使用get_option()函数检索值。
>非常简单,这是代码。
><span>function theme_settings_page(){} </span> <span>function add_theme_menu_item() </span><span>{ </span> <span>add_menu_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "theme_settings_page", null, 99); </span><span>} </span> <span>add_action("admin_menu", "add_theme_menu_item");</span>
>
>关于创建WordPress主题设置页面的常见问题(FAQ)>如何在WordPress中注册设置?
>如何为设置创建一个表单字段? >
>要为您的设置创建一个表单字段,您可以使用add_settings_field()函数。此功能采用多个参数,包括字段的ID,字段标题,输出表单字段的回调函数,应显示字段的页面,应添加字段的部分以及一系列参数对于字段。如何验证和消毒我的设置?以验证和消毒您的设置,您可以在register_setting()函数中使用sanitize_callback参数。该参数应该是一个回调函数,该函数获取输入数据,验证并对其进行消毒,然后返回消毒数据。这样可以确保仅保存在数据库中。>
>如何在WordPress中删除我的设置?>
以上是使用设置API创建WP主题设置页面的详细内容。更多信息请关注PHP中文网其他相关文章!