学习写wordpress插件(二)

我们的第一个插件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插件(二)

评论

7+2=