wordpress外掛開發 簡易設定頁面

nekoto
·
·
IPFS
·

建議如果還沒看過這篇的可以先去看一下還有載一下範例程式碼

本篇主要是介紹用結合外掛的方式撰寫配合外掛的設定頁面,變數的儲存機制則使用wp本身提供的方式,不需要再額外建立資料表

首先先附上程式碼:
只要把框架那篇提供的同名程式碼換掉即可

https://drive.google.com/file/d/1hKarpGikxe3EdYH8pEFqN9Xwh5JChqTa/view?usp=sharing

接下來進入正題:

<?php
add_action('admin_menu', 'add_setting_menu');

function add_setting_menu() {
	add_submenu_page('my-plugin_main', __('設定'), __('設定'), __('manage_options'), 'pm-extend_setting','add_settings_page');
	add_action( 'admin_init', 'register_plugin_settings' );
}
//先加上設定的頁面

function register_plugin_settings() {
	register_setting( 'myplugin-group', 'plugin_date' );
	register_setting( 'myplugin-group', 'plugin_flag' );
}
//記得表格中有新的設定時要在這邊註冊變數名稱,否則變數不會記錄進options.php

function add_settings_page() {
?>
<!--以下是頁面的範例內容,可依據設定頁面需求自己做更改 -->
<div class="wrap">
	<h2>範例系統設定</h2>
	<br><br>
	<!-- option.php是固定的,wordpress會自動記錄所有設定值 -->
	<form method="post" action="options.php">
		<?php settings_fields('myplugin-group'); ?>
		<!-- 要先宣告這句下面才有辦法使用上面註冊的變數 -->
		<input type="checkbox" name="plugin_flag" value="1"
			   <?php if (get_option('plugin_flag')==1) echo "checked" ; ?> />
		測試勾選框<br/>
		<br>
		測試input框  :
		<input type="text" id="plugin_date" name="plugin_date" value="<?php echo get_option('plugin_date'); ?>"/>
		<p class="submit">
			<input type="submit" class="button-primary" value="儲存" />
			<!-- 這邊就submit表單所有欄位的值就會做紀錄了,不需要另外自己寫js處理,如果要debug就去wp後台首頁,去掉index.php改成options.php-->
			<!--  網址會變成類似 worpress根目錄網址/wp-admin/options.php 可在這個頁面查詢變數是否有被記錄-->
		</p>
	</form>
</div>
<?php
}
?>

設定頁面寫好之後,如果之後要在本外掛任意地方的程式碼or甚至別支外掛的程式碼(比較不建議),使用設定值都輕鬆容易,只要在php代碼的地方寫上get_option(‘註冊的變數名稱’)就抓的到值囉!

原文連結展躍 WordPress 網頁設計

CC BY-NC-ND 2.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!