有风的日子

WordPress主题添加后台控制选项

Luoshui邀请您加入WORDPRESS技术交流QQ群:31196817 → wordpress技术交流

wordpress怎样做带后台的主题?一直想做主题的时候加入带后台控制的东东,本主题终于试验成功,加入了后台可以添加广告的功能。那么怎么实现,不再废话,下面跟着哥哥往下看:

 

首先创建一个control.php文件

 

该文件内容为:

 

<?php

$themename = “广告”; //主题名称

$shortname = “luoshui”; //主题简写,必须是英文、数字、下划线组合

$options = array (

array(“name” => “这里是大标题”,”type” => “heading”,”desc” => “这里是描述信息”),

array(“name” => “文章上方广告(尺寸最好是方形):”,”id” => $shortname.”_ad1″,”std” => “填入你的广告联盟代码”,”type” => “text”),

array(“name” => “广告2″,”id” => $shortname.”_ad2″,”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’] ); } }

header(“Location: themes.php?page=control.php&saved=true”); //这里的 control.php 就是这个文件的名称

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=control.php&reset=true”); //这里的 control.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” class=”updated fade”><p><strong>’.$themename.’ 设置已保存。</strong></p></div>’;

if ( $_REQUEST[‘reset’] ) echo ‘<div id=”message” class=”updated fade”><p><strong>’.$themename.’ 设置已重置。</strong></p></div>’;

?>

<style type=”text/css”>

th{text-align:left;}

input{width:100%;}

textarea{width:100%;}

.input{width:400px;height:200px;}

.submit{width:100px;padding:0;}

.defaultbutton{padding-left:745px;}

</style>

<div class=”wrap”>

<h2><b><?php echo $themename; ?> 设置</b></h2>

<form method=”post”>

<div class=”submit” style=”padding:0;”>

<input style=”font-size:12px !important;” name=”save” type=”submit” value=”保存设置” />

<input type=”hidden” name=”action” value=”save” />

</div>

<table class=”optiontable” >

<?php foreach ($options as $value) {

if ($value[‘type’] == “text”) { ?>

<tr align=”left”>

<th scope=”row”><?php echo $value[‘name’]; ?>:</th>

<td>

<textarea class=”input” name=”<?php echo $value[‘id’]; ?>” id=”<?php echo $value[‘id’]; ?>”><?php if ( get_settings( $value[‘id’] ) != “”) { echo get_settings( $value[‘id’] ); } else { echo $value[‘std’]; } ?></textarea>

</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 class=”submit”>

<input style=”font-size:12px !important;” name=”save” type=”submit” value=”保存设置” />

<input type=”hidden” name=”action” value=”save” />

</div>

</form>

<form method=”post” class=”defaultbutton”>

<div class=”submit”>

<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’);

?>

 

然后在functions.php文件中包含上面刚刚创建的这个control.php

<?php

//后台控制

require_once(TEMPLATEPATH . ‘/control.php’);

?>

最后把下面展示代码插入你想要放的地方:

<?php echo stripslashes(get_option(‘luoshui_ad1’));?>

这样就OK了。至此,一个简单的广告管理后台控制的东西就完成了。

要添加更复杂的东西可以琢磨一下,原理都一样的。

简单说明一下:

1.本文是做后台广告控制功能的,所以使用的textarea标签,当然其他的功能也可以使用Input标签。

2.测试时发现填入带引号的内容会被反斜杠了,不能正常显示广告,所以使用了stripslashes()函数解决。

3.添加多个广告,参考control.php文件第四行的数组,可以添加你需要的组数。

4.<?php echo stripslashes(get_option(‘luoshui_ad1’));?> 中的luoshui_ad1为相应的广告ID可以参考上一条所说的地方查看该ID。

 

转载请注明:有风的日子 > WordPrees > WordPress主题添加后台控制选项

评论 (2) 分享

评论 2