mania-ku

何か作りたいプログラマ未満。

[WordPress]データを保存し、管理画面で使ってみる

自作のこのテーマはスクロールすると右下にページトップ・google+・authorのリンクがあるんですが、
今回はここのソーシャル部分をカスタマイズ。
ソーシャルアカウントを保存して、保存したものを反映させるようにします。

管理画面にソーシャルアカウントのメニューを追加:functions.php

add_action ('親メニュー','追加するメニューのタイトル');
親メニュー:admin_menu
追加するメニューのタイトル:Ma_adminsocial_add
としました。

サブメニューを追加:functions.php

function Ma_adminsocial_add () {
	add_submenu_page ('親メニューのPHP','追加するページの名前','追加するメニューの名前',追加するメニューを使えるユーザの権限レベル,追加するメニューのファンクションを書くファイル名,'追加するメニューのファンクション名');
}
親メニューのPHP:profile.php
追加するページの名前:ソーシャル設定
追加するメニューの名前:ソーシャル設定
追加するメニューを使えるユーザの権限レベル:8 
追加するメニューのファンクションを書くファイル名:__FILE__
※この場合は自分自身(functions.php)を指す
追加するメニューのファンクション名:Ma_adminsocial_show

サブメニューの表示:functions.php

function Ma_adminsocial_show() {
// 内容の保存
	if ($_POST['data_save'] == 'y') {
		update_option('Ma_social_url_twitter', stripslashes($_POST['social_url_tiwtter']));
		update_option('Ma_social_url_googleplus', stripslashes($_POST['social_url_googleplus']));
		update_option('Ma_social_url_facebook', stripslashes($_POST['social_url_facebook']));
?>
		<div class="updated"><p><strong>設定を保存しました。</strong></p></div>
<?php
	}
	if ($_POST['data_delete'] == 'y') {
		delete_option('Ma_social_url_twitter');
		delete_option('Ma_social_url_googleplus');
		delete_option('Ma_social_url_facebook');
?>
		<div class="updated"><p><strong>設定を削除しました。</strong></p></div>
<?php
	}
?>
<div class="wrap">
<h2>ソーシャル設定</h2>
<!--保存-->
<form method="post" action="<?php echo str_replace ('%7E','~',$_SERVER['REQUEST_URI']); ?>">
<input type="text" name="social_url_tiwtter" placeholder="Twitter URL" value="<?php echo get_option('Ma_social_url_twitter'); ?>"><br>
<input type="text" name="social_url_googleplus" placeholder="Google+ URL" value="<?php echo get_option('Ma_social_url_googleplus'); ?>"><br>
<input type="text" name="social_url_facebook" placeholder="Facebook URL" value="<?php echo get_option('Ma_social_url_facebook'); ?>"><br>
<input type="hidden" name="data_save" value="y">
<input type="submit" name="Submit" class="button-primary" value="保存">
</form>
<!--削除-->
<form method="post" action="<?php echo str_replace ('%7E','~',$_SERVER['REQUEST_URI']); ?>">
<input type="hidden" name="data_delete" value="y"><input type="submit" name="Submit" class="button-secondary" value="データ全削除">
</form>
</div>
<?php	
}
?>

保存した内容をテーマに反映させる:footer.php

    		<?php if ( get_option('Ma_social_url_twitter')):?>
    		<li><a href="<?php echo get_option('Ma_social_url_twitter'); ?>">t<span class="font-small">Twitter</span></a></li>   
    	<?php endif; ?>
    	<?php if ( get_option('Ma_social_url_googleplus')):?>
    		<li><a href="<?php echo get_option('Ma_social_url_googleplus'); ?>">g<span class="font-small">gooogle+</span></a></li>   
    	<?php endif; ?>
    	<?php if ( get_option('Ma_social_url_facebook')):?>
    		<li><a href="<?php echo get_option('Ma_social_url_facebook'); ?>">f<span class="font-small">Facebook</span></a></li>   
    	<?php endif; ?>
Pocket
LINEで送る