首页 > 技术文章 > WordPress插件制作笔记(二)---Second Plugins Demo

fxmbz 2014-10-23 15:53 原文

1->插件演示代码:下载地址:http://pan.baidu.com/s/1gd1lFlL

在 wordpress/wp-content/plugins/ 目录下 新建一个文件夹取名为second_plugins_demo(或自己定义),在新建的second_plugins_demo目录下新建second_plugins_demo.php(自定义.php但要求与父级目录名一直)文件,将以下代码拷贝到second_plugins_demo.php文件中保存,刷新wordpress后台-插件菜单-已安装的插件,启用second_plugins_demo 插件即可

目录示例:*/wordpress/wp-content/plugins/second_plugins_demo/second_plugins_demo.php

<?php 
/**
*Plugin Name: Second Plugins Demo
*Plugin URI: http://www.cnblogs.com/fxmbz/p/4030286.html
*Description: Second Plugins Demo, This plugin shows a line end of welcome information on the content, add the Settings menu button In the Settings men
*Version: 1.0
*Author: Zhangxl
*Author URI: http://www.cnblogs.com/fxmbz
*License: GPL
*Text Domain: 29583035
*/

/**
 * add_action funtions not exists exit and prompt
 */
if ( !function_exists( 'add_action' ) ) {
    echo 'Hi there!  I\'m just a plugin, not much I can do when cwholeed directly.';
    exit;
}
/**
 * [add_action($hook,$function)]
 * [add_css_link add css link]
 */
add_action( 'wp_head','add_css_link' );
function add_css_link() {
    $styleUrl = plugin_dir_url( __FILE__ ) . 'css/style.css';
    echo "<link rel='stylesheet' href='$styleUrl'>";
}

/**
 * [register_activation_hook run set_text_options]
 */
register_activation_hook( __FILE__, 'set_text_options' );

/**
 * [register_deactivation_hook run del_text_options]
 */
register_deactivation_hook( __FILE__, 'del_text_options' );

/**
 * [set_text_options insert data in the options table]
 */
function set_text_options() {
    add_option( 'display_text_thearticle', '<p id="display_text_thearticle">Welcome to second plugin testing! This plugin is only added word at the end of the article. author: Zhangxl, Email: 29583035@qq.com</p>' );
}

/**
 * [del_text_options delete data in the options table]
 */
function del_text_options() {
    delete_option( 'display_text_thearticle' );
}

/**
 * [add_action add text to the content end]
 * [display_text is single show content and new add infomation]
 * @param  [type] $content [the source article content]
 * @return [type]          [string]
 */
add_action('the_content','display_text');
function display_text($content) {
    if ( is_single() ) {
        $content = $content . get_option( 'display_text_thearticle' );
        return $content;
    } else {
        return $content;
    }
}

/**
 * is admin page run [add_action($hook,$function) ]
 */
if ( is_admin() ) {
    add_action('admin_menu','display_text_menu');
}

/**
 * [display_text_menu add admin menu settings page]
 * @return [type] [description]
 */
function display_text_menu() {
     // add_options_page( $page_title, $menu_title, $capability(权限), $menu_slug(URL-friendly name), $function );
    add_options_page('Text Settings', 'Text Settings', 'manage_options', 'display_text_thearticle','display_text_html_page');
}

/**
 * [display_text_html_page settings page form]
 * @return [type] [description]
 */
function display_text_html_page() {
?>
<div>   
    <h2>Settings Version information</h2>   
    <form method="post" action="options.php">   
        <!-- 下面这行代码用来保存表单中内容到数据库(官网的方法) -->
        <?php wp_nonce_field( 'update-options' ); ?>   
        <p>   
            <textarea cols="80" rows="6" name="display_text_thearticle" id="display_text_thearticle" ><?php echo get_option('display_text_thearticle'); ?></textarea>
        </p>
        
        <!-- 下面这两个隐藏字段为必须,其中第二个字段的值为要修改的字段名(官网的方法) -->
        <p>
            <input type="hidden" name="action" value="update" />   
            <input type="hidden" name="page_options" value="display_text_thearticle" />
            <input type="submit" value="Save Changes" class="button-primary" />
        </p>
    </form>
</div>
<?php }

?>

 

推荐阅读