新闻中心
如何给WordPress主题添加独立的控制选项
作者 / 无忧主机 时间 2012-10-17 09:14:23
如果您是wordpress主题控的话,都知道有一些主题都会有自己专属的主题控制选项,这类照片主题占大部分,因为要添加幻灯片等一些功能,所以集成在一个地方控制,管理非常方便灵活。如下图 但是只有部分主题才有这样的功能,但不是每款我们喜欢的主题都有这样的功能,怎么办呢?所以如果你想给任意一款wordpress主题,添加独立控制选项这个功能,就请你阅读下面由无忧主机(www.51php.com)小编为大家介绍如何来实现这个功能。 在本地新建一个记事本,把下列代码复制到里面。
<?php $themename = "XXX主题"; //主题名称 $shortname = "jiuchuangzhuti"; //主题简写,必须是英文、数字、下划线组合 $options = array ( array("name" => "这里是大标题","type" => "heading","desc" => "这里是描述信息"), array("name" => "这里是小标题","id" => $shortname."_test","std" => "这里是默认值","type" => "text") ); function mytheme_add_admin() { global $themename, $shortname, $options; if ( $_GET['page'] == basename(__FILE__) ) { if ( 'save' == $_REQUEST['action'] ) { foreach ($options as $value) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } foreach ($options as $value) { if( isset( $_REQUEST[ $value['id'] ] ) ) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } else { delete_option( $value['id'] ); } } //这里的 settings.php 就是这个文件的名称 header("Location: themes.php?page=settings.php&saved=true"); die; } else if( 'reset' == $_REQUEST['action'] ) { foreach ($options as $value) { delete_option( $value['id'] ); update_option( $value['id'], $value['std'] ); } header("Location: themes.php?page=settings.php&reset=true"); //这里的 settings.php 就是这个文件的名称 die; } } add_theme_page($themename." Options", "$themename 设置", 'edit_themes', basename(__FILE__), 'mytheme_admin'); } function mytheme_admin() { global $themename, $shortname, $options; if ( $_REQUEST['saved'] ) echo '<div id="message"><p><strong>'.$themename.' 设置已保存。</strong></p></div>'; if ( $_REQUEST['reset'] ) echo '<div id="message"><p><strong>'.$themename.' 设置已重置。</strong></p></div>'; ?> <style type="text/css"> th{text-align:left;} input{width:100%;} .submit{width:100px;padding:0;} .defaultbutton{padding-left:745px;} </style> <div> <h2><b><?php echo $themename; ?> 设置</b></h2> <form method="post"> <div style="padding:0;"> <input style="font-size:12px !important;" name="save" type="submit" value="保存设置" /> <input type="hidden" name="action" value="save" /> </div> <table > <?php foreach ($options as $value) { if ($value['type'] == "text") { ?> <tr align="left"> <th scope="row"><?php echo $value['name']; ?>:</th> <td> <input name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" value="<?php if ( get_settings( $value['id'] ) != "") { echo get_settings( $value['id'] ); } else { echo $value['std']; } ?>" size="40" /> </td> </tr> <?php } elseif ($value['type'] == "heading") { ?> <tr valign="top"> <td colspan="2" style="text-align: left;"><hr /> <h2 style="color:green;"><?php echo $value['name']; ?></h2></td> <tr><td colspan=2> <p style="color:red; margin:0 0;" > <?php echo $value['desc']; ?> </p> <hr /></td></tr> </tr> <?php } ?> <?php } ?> </table> <hr /> <div> <input style="font-size:12px !important;" name="save" type="submit" value="保存设置" /> <input type="hidden" name="action" value="save" /> </div> </form> <form method="post"> <div> <input style="font-size:12px !important;" name="reset" type="submit" value="还原默认设置" /> <input type="hidden" name="action" value="reset" /> </div> </form> </div> <?php } add_action('admin_menu', 'mytheme_add_admin'); ?>添加完成后,把文件改名为settings.php,然后把settings.php这个文件上传到你的php虚拟主机相对主题的目录里,这样一来我们就建立出了主题的相应主题的控制选项功能了,这个只是一个简易的控制选项,还没有漂亮到跟专业主题的样式一样的效果,所以大家不要嫌弃,但是实现的功能是差不多的,我相信,这应该才是重点。 纯Linux环境下高端免备案【香港独立IP地址】 php空间,仅仅只需199元一年起。商务中国域名核心代理直销50元注册国际顶级域名
本文地址:https://www.51php.com/wordpress/9363.html