WORDPRESS插件開發(二)HELLO WORLD改進版

在上一篇文章中WORDPRESS插件開發(一)HELLO WORLD,演示了Hello World的最簡單實現,只是在每篇文章的後面加入Hello World字符,並且字符也是寫死的。php

若是用戶須要本身輸入一些文字,而後在每篇文章的後面顯示,改怎麼作呢?html

首先要在後臺有一個菜單,點擊菜單顯示一個頁面,在頁面中有一個輸入框,用戶輸入完畢後點擊保存,將內容保存到數據庫,顯示每篇文章時,提取保存的信息到頁面中就能夠了。數據庫

實現思路
激活插件時,使用add_option函數向wp_options添加一個字段,禁止插件時,使用delete_option函數刪除。
在wordpress後臺設置菜單添加插件菜單,添加菜單時使用add_options_page函數
點擊菜單時,顯示頁面,頁面中一個輸入框一個提交按鈕。wordpress

代碼實現:函數

<?php 
/*
Plugin Name: Hello-World
Plugin URI: http://1100w.com/
Description: 最簡單的插件實現,在每篇文章的後面追加hello world
Version: 1.0
Author: 1100w
Author URI: http://1100w.com
License: GPL
*/
add_filter('the_content','hello_world');
/* Runs when plugin is activated */
register_activation_hook(__FILE__,'hello_world_install'); 

/* Runs on plugin deactivation*/
register_deactivation_hook( __FILE__, 'hello_world_remove' );

function hello_world_install() {
add_option("hello_world_data", 'Default', '', 'yes');
}

function hello_world_remove() {
delete_option('hello_world_data');
}
if ( is_admin() ){

    /* Call the html code */
    add_action('admin_menu', 'hello_world_admin_menu');

    function hello_world_admin_menu() {
        add_options_page('Hello World', 'Hello World', 'administrator','hello-world', 'hello_world_html_page');
    }
}
?>
<?php
function hello_world_html_page() {
?>
<div>
<h2>Hello World Options</h2>

<form method="post" action="options.php">
<?php wp_nonce_field('update-options'); ?>

<table width="510">
<tr valign="top">
<th width="92" scope="row">輸入顯示內容</th>
<td width="406">
<input name="hello_world_data" type="text" id="hello_world_data"
value="<?php echo get_option('hello_world_data'); ?>" />
(ex. Hello World)</td>
</tr>
</table>

<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="hello_world_data" />

<p>
<input type="submit" value="<?php _e('Save Changes') ?>" />
</p>

</form>
</div>
<?php
    }
?>
<?php
//Callback function
function hello_world($content)
{
     //Checking if on post page.
     if ( is_single() ) {
         return $content . '<h1>'.get_option('hello_world_data').'</h1>';
     }
     else {
         return $content;
     }
}
?>

顯示效果post

相關文章
相關標籤/搜索