新闻中心

如何给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

1
1
1
1
1
1
1

客户服务热线

0791-8623-3537

在线客服