我们的第一个插件nidaye,如果修改显示内容就要修改源代码,这显然不是我们想要的。继续改进。
今天目标:
1、在后台添加独立页面和菜单
2、用户自定义显示内容,保存在数据库中。
<?php
/*
Plugin Name:ni2daye
Plugin URI: http://www.yptk.cn
Version:V0.1
Author: YPTK
Author URI:http://www.yptk.cn
Description:My second plugin named ni2daye
*/
?>
<?php
/* 注册激活插件时要调用的函数 */
register_activation_hook( __FILE__, 'ni2daye_install');
/* 注册停用插件时要调用的函数 */
register_deactivation_hook( __FILE__, 'ni2daye_remove' );
function ni2daye_install() {
/* 在数据库的 wp_options 表中添加一条记录,第二个参数为默认值 */
add_option("ni_2daye", "我是善变的你二大爷。", '', 'yes');
}
function ni2daye_remove() {
/* 删除 wp_options 表中的对应记录 */
delete_option('ni_2daye');
}
if( is_admin() ) {
/* 利用 admin_menu 钩子,添加菜单 */
add_action('admin_menu', 'display_ni2daye_menu');
}
function display_ni2daye_menu() {
/* add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function); */
/* 页名称,菜单名称,访问级别,菜单别名,点击该菜单时的回调函数(用以显示设置页面) */
add_options_page('Set ni2daye', 'ni2daye Menu', 'administrator','display_ni2daye', 'display_ni2daye_html_page');
}
function display_ni2daye_html_page() {
?>
<div>
<h2>Set ni2daye</h2>
<form method="post" action="options.php">
<?php /* 下面这行代码用来保存表单中内容到数据库 */ ?>
<?php wp_nonce_field('update-options'); ?>
<p>
<textarea
name="ni_2daye"
id="ni_2daye"
cols="40"
rows="6"><?php echo get_option('ni_2daye'); ?></textarea>
</p>
<p>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="ni_2daye" />
<input type="submit" value="Save" class="button-primary" />
</p>
</form>
</div>
<?php
}
add_filter( 'the_content', 'display_ni2daye' );
/*the_content 是钩子的名字,display_copyright 是回调函数名称。*/
function display_ni2daye( $content ) {
$content = get_option('ni_2daye').$content; //把内容添加到每篇文章的开头。
return $content;
}
?>
成功!
修改,Save成功。
显示成功!
版权共享,随意转载:云破天开 » 学习写wordpress插件(二)