如题所述
1ãå建æéçæ件
å¨è¿è¡ä¸»é¢å®å¶åï¼åºè¯¥é¦å å建ä¸ä¸ªå¯ä¾èªå®ä¹çâ设置é项页é¢âãå建设置é项页ç代ç éè¦æ¾ç½®å¨ä¸»é¢ç®å½ä¸çfunctions.phpæ件ä¸ãå¦ææ们ç模æ¿å为âOptionPageâï¼é£ä¹functionsæ件çè·¯å¾ä¸ºï¼wp-contentthemesOptionPagefunctions.phpã
æ们ä¸éè¦è®©wordpressæå¨å è½½å®ï¼å¨æ§è¡æ¶wordpressä¼èªå¨å è½½ã
2ã建ç«è®¾ç½®é项页
é¦å 第ä¸æ¥éè¦å¨åå°å»ºç«ä¸ä¸ªç©ºç½é¡µé¢ä¾æ们使ç¨ãæ们éè¿add_aactionæ¥å®ç°è¿ä¸æ¥ãActionså¯ä»¥å¨wordpressæ§è¡æ¶çç¹å®æ¶é´è¢«ååºï¼ä¾å¦ï¼å½å¨æ§å¶é¢æ¿å建èåæ¶ï¼admin_menuå°±ä¼è¢«ååºæ§è¡ãå æ¤ï¼å¯ä»¥å©ç¨è¿äºæ¥å®ç°æ们æéçåè½ãè¿æ¯æ们å建é项页çæåºæ¬çåè½ã
<?php
// 设置é项页
function themeoptions_admin_menu()
{
// å¨æ§å¶é¢æ¿ç侧边æ æ·»å 设置é项页é¾æ¥
add_theme_page(â主é¢è®¾ç½®â, â主é¢é项â, âedit_themesâ, basename(__FILE__), âthemeoptions_pageâ);
}
function themeoptions_page()
{
// 设置é项页é¢ç主è¦åè½
}
add_action(âadmin_menuâ, âthemeoptions_admin_menuâ);
?>
themeoptions_admin_menu()æ¯å¨æ§å¶é¢æ¿ç侧边æ ä¸æ·»å ä¸ä¸ªé¾æ¥ï¼æåæ们å建çé项页ï¼themeoptions_pageã
add_theme_page() çåæ°ä¸ºï¼
页é¢æ é¢ï¼ä¸»é¢è®¾ç½®
èåæ é¢ï¼ä¸»é¢é项ï¼p.s.为äºåºåæ¾ç¤ºï¼é¡µé¢ä¸èåæ é¢æåäºä¸åæå½åï¼
ä½ç¨åè½ï¼edit_themesï¼
Handleï¼å¥æï¼ï¼å½åæ件ï¼
æ§è¡çå½æ°ï¼themeoptions_pageï¼
ç°å¨åå°æ§å¶é¢æ¿ä¾§è¾¹æ çå¤å°±å¤äºä¸ä¸ªâ主é¢è®¾ç½®âçèåï¼ä½æ¯ç°å¨è¿æ¯ç©ºç½çï¼æ们åé¢è¦å®ç°çå®å¶å 容就å¨è¿ä¸ªç©ºç½é¡µé¢ä¸å建ã
3ãæ·»å é项åå段
ç°å¨æ们就å¯ä»¥å¨åå建ç空ç½é¡µé¢ä¸æ·»å æ们çé项åå段ãè¿ä¸ªé¡µé¢ä½ å¯ä»¥æ ¹æ®èªå·±çéè¦è¿è¡æ ·å¼é£æ ¼åï¼ä½å¨æ¬æç¨ä¸æ们å°ä½¿ç¨wordpressé»è®¤çç±»ï¼è¿æ ·å¯ä»¥èçæ们çæ¶é´å¹¶ä¸çèµ·æ¥æ´å åçã
页é¢å 容ç代ç éå å«å¨ themeoptions_page()å½æ°å ãé¦å ï¼æ们å æ·»å ä¸ä¸ªclass=âwrapâçdiv容å¨ï¼ç¶åï¼å¨å¤´é¨æ·»å ä¸ä¸ªé»è®¤å¾æ ä½ä¸ºä½ä¸ºé¡µé¢æ é¢ï¼æåæ¯è®¾è®¡è¡¨åã
<div class=âwrapâ>
<div id=âicon-themesâ class=âicon32â³><br /></div>
<h2>主é¢è®¾ç½®</h2>
<form method=âPOSTâ action=ââ>
<input type=âhiddenâ name=âupdate_themeoptionsâ value=âtrueâ />
<p><input type=âsubmitâ name=âsubmitâ id=âsubmitâ class=âbutton button-primaryâ value=âä¿åæ´æ¹â></p>
</form>
</div>
å¨è¡¨åä¸ï¼é¦å æ们éè¦æ·»å ä¸ä¸ªéèçå¼ï¼éè¿å®æ¥æ£æ¥æ´æ°æ¯å¦å·²ç»æ交ãç¶åæ·»å ä¸ä¸ªæ交æé®ï¼è¿éæä¹ä½¿ç¨wordpressé»è®¤çæé®æ ·å¼ãç°å¨çææ为ï¼
ç°å¨æ们已ç»å建äºè®¾ç½®é项页çåºæ¬ç»æï¼ä¸é¢æ们å¼å§æ ¹æ®ä¹åå¶å®çå 容è¿è¡å®åï¼
é¦å ï¼æ们è¦å 许主é¢ä½¿ç¨è å¯ä»¥æ´æ¹é¢è²æ¹æ¡ã对äºè¿ä¸ç¹ï¼æ们éè¦ä¸ä¸ªä¸æå表æä¾å¯ç¨çé è²æ¹æ¡ã
å ¶æ¬¡ï¼å¢å 两个广åä½çå 容ï¼æ们éè¦å¢å 两个ææ¬æ¡æ¥è¾å ¥å¾ççURLå广åé¾æ¥URLã
æåï¼ç¨æ·å¯éæ©æ¯å¦æ¾ç¤ºæç´¢æ¡ãè¿ä¸ç¹ï¼æ们éè¿æ·»å å¤éæ¡æ¥å®ç°ã
代ç å¦ä¸ï¼
function themeoptions_page()
{
// è¿æ¯äº§ç主é¢é项页é¢ç主è¦åè½
?>
<div>
<div id=âicon-themesâ><br /></div>
<h2>主é¢è®¾ç½®</h2>
<form method=âPOSTâ action=ââ>
<input type=âhiddenâ name=âupdate_themeoptionsâ value=âtrueâ />
<h4>主é¢é è²æ¹æ¡</h4>
<select name =âcolourâ>
<?php $colour = get_option(âmytheme_colourâ); ?>
<option value=âgrayâ <?php if ($colour==âgrayâ) { echo âselectedâ; } ?> >ç°è²</option>
<option value=âblueâ <?php if ($colour==âblueâ) { echo âselectedâ; } ?>>æµ è</option>
<option value=âpinkâ <?php if ($colour==âpinkâ) { echo âselectedâ; } ?>>ç²çº¢</option>
</select>
<h4>å¾ç广åä½ï¼1ï¼</h4>
<p><input type=âtextâ name=âad1imageâ id=âad1imageâ size=â32â value=â<?php echo get_option(âmytheme_ad1imageâ); ?>â/> 广åå¾ç</p>
<p><input type=âtextâ name=âad1urlâ id=âad1urlâ size=â32â value=â<?php echo get_option(âmytheme_ad1urlâ); ?>â/> 广åé¾æ¥</p>
<h4>å¾ç广åä½ï¼2ï¼</h4>
<p><input type=âtextâ name=âad2imageâ id=âad2imageâ size=â32â value=â<?php echo get_option(âmytheme_ad2imageâ); ?>â/> 广åå¾ç</p>
<p><input type=âtextâ name=âad2urlâ id=âad2urlâ size=â32â value=â<?php echo get_option(âmytheme_ad2urlâ); ?>â/> 广åé¾æ¥</p>
<h4><input type=âcheckboxâ name=âdisplay_searchâ id=âdisplay_searchâ <?php echo get_option(âmytheme_display_searchâ); ?> /> æ¾ç¤ºæç´¢æ¡</h4><p><input type=âsubmitâ name=âbcn_admin_optionsâ value=âæ´æ°æ°æ®â/></p>
</form>
</div>
<?php
}
å°è¿éé项页é¢çå 容就已ç»åºæ¬æ建å®æ¯äºã
4ãæ°æ®åºæ´æ°
å°ç®å为æ¢ï¼æ们已ç»å建äºä¸ä¸ªä¸»é¢é项页é¢ï¼ä¸ä¸æ¥è¦åçå°±æ¯å¦ä½å°æ°æ®éè¿POSTæ交çwordpressæ°æ®åºãè¦åå°è¿ä¸ç¹ï¼éè¦å建ä¸ä¸ªæ°çåè½å½æ°themeoptions_update()ï¼è¿ä¸ªå½æ°å°ä¼è¢«themeoptions_page()è°ç¨ï¼æ以å°ä¸é¢ç代ç æ·»å å°themeoptions_page()å½æ°çæä¸é¢ã
if ( $_POST[âupdate_themeoptionsâ] == âtrueâ ) { themeoptions_update(); }
ä¸ä¸æ¥æ¯å¢å ä¸ä¸ªæ´æ°å½æ°ã
function themeoptions_update()
{
// æ°æ®æ´æ°éªè¯
update_option(âmytheme_colourâ, $_POST[âcolourâ]);
update_option(âmytheme_ad1imageâ, $_POST[âad1imageâ]);
update_option(âmytheme_ad1urlâ, $_POST[âad1urlâ]);
update_option(âmytheme_ad2imageâ, $_POST[âad2imageâ]);
update_option(âmytheme_ad2urlâ, $_POST[âad2urlâ]);
if ($_POST[âdisplay_searchâ]==âonâ) { $display = âcheckedâ; } else { $display = â; }
update_option(âmytheme_display_searchâ, $display);
}
5ãè°ç¨é项å®å¶ä¸»é¢
æ们主é¢çé»è®¤æ ·å¼æ件为style.cssï¼å¦æ使ç¨å ¶ä»çé è²æ¹æ¡ï¼æ们éè¦å»ºç«ç¸åºçæ ·å¼æ件ï¼ä¾å¦æ¬ä¾ä¸çblue.cssãpink.cssï¼style.css为é»è®¤çç°è²ã
为äºåæ¢é è²æ¹æ¡æ ·å¼è¡¨ï¼éè¦å¨ä¸»é¢headerä¸å å ¥ä»¥ä¸ä»£ç ï¼
<link rel=âstylesheetâ href=â<?php bloginfo(âstylesheet_directoryâ); ?>/default.cssâ type=âtext/cssâ>
<link rel=âstylesheetâ href=â<?php bloginfo(âstylesheet_directoryâ); ?>/<?php echo get_option(âmytheme_colourâ); ?>.cssâ type=âtext/cssâ>
å¢å 广åä½å¾çâå¨ä½ æ³è¦æ¾ç½®å¹¿åçå°æ¹æ·»å 以ä¸ä»£ç ï¼
<a href=â<?php echo get_option(âmytheme_ad1urlâ); ?>â><img src=â<?php echo get_option(âmytheme_ad1imageâ); ?>â height=â125â width=â125â /></a>
<a href=â<?php echo get_option(âmytheme_ad2urlâ); ?>â><img src=â<?php echo get_option(âmytheme_ad2imageâ); ?>â height=â125â width=â125â /></a>
æ¯å¦æ¾ç¤ºæç´¢æ¡âå¨éè¦æ¾ç½®æç´¢æ¡çå°æ¹æ·»å 以ä¸ä»£ç ï¼å½ç¨æ·éæ©æ¾ç¤ºæç´¢æ¡æ¶ä¼æ¾ç¤ºï¼å¦ååä¸æ¾ç¤ºï¼
<?php if ( get_option(âmytheme_display_searchâ) == âcheckedâ) { ?>
<h3>æç´¢æ¡</h3>
<form method=âgetâ id=âsearchformâ action=â<?php echo esc_url( home_url( â/â ) ); ?>â>
<input type=âtextâ name=âsâ id=âsâ placeholder=â<?php esc_attr_e( âSearchâ, â85Ryanâ ); ?>â />
<input type=âsubmitâ name=âsubmitâ id=âsearchsubmitâ value=âæç´¢â />
</form>
<?php } ?>
å¨è¿è¡ä¸»é¢å®å¶åï¼åºè¯¥é¦å å建ä¸ä¸ªå¯ä¾èªå®ä¹çâ设置é项页é¢âãå建设置é项页ç代ç éè¦æ¾ç½®å¨ä¸»é¢ç®å½ä¸çfunctions.phpæ件ä¸ãå¦ææ们ç模æ¿å为âOptionPageâï¼é£ä¹functionsæ件çè·¯å¾ä¸ºï¼wp-contentthemesOptionPagefunctions.phpã
æ们ä¸éè¦è®©wordpressæå¨å è½½å®ï¼å¨æ§è¡æ¶wordpressä¼èªå¨å è½½ã
2ã建ç«è®¾ç½®é项页
é¦å 第ä¸æ¥éè¦å¨åå°å»ºç«ä¸ä¸ªç©ºç½é¡µé¢ä¾æ们使ç¨ãæ们éè¿add_aactionæ¥å®ç°è¿ä¸æ¥ãActionså¯ä»¥å¨wordpressæ§è¡æ¶çç¹å®æ¶é´è¢«ååºï¼ä¾å¦ï¼å½å¨æ§å¶é¢æ¿å建èåæ¶ï¼admin_menuå°±ä¼è¢«ååºæ§è¡ãå æ¤ï¼å¯ä»¥å©ç¨è¿äºæ¥å®ç°æ们æéçåè½ãè¿æ¯æ们å建é项页çæåºæ¬çåè½ã
<?php
// 设置é项页
function themeoptions_admin_menu()
{
// å¨æ§å¶é¢æ¿ç侧边æ æ·»å 设置é项页é¾æ¥
add_theme_page(â主é¢è®¾ç½®â, â主é¢é项â, âedit_themesâ, basename(__FILE__), âthemeoptions_pageâ);
}
function themeoptions_page()
{
// 设置é项页é¢ç主è¦åè½
}
add_action(âadmin_menuâ, âthemeoptions_admin_menuâ);
?>
themeoptions_admin_menu()æ¯å¨æ§å¶é¢æ¿ç侧边æ ä¸æ·»å ä¸ä¸ªé¾æ¥ï¼æåæ们å建çé项页ï¼themeoptions_pageã
add_theme_page() çåæ°ä¸ºï¼
页é¢æ é¢ï¼ä¸»é¢è®¾ç½®
èåæ é¢ï¼ä¸»é¢é项ï¼p.s.为äºåºåæ¾ç¤ºï¼é¡µé¢ä¸èåæ é¢æåäºä¸åæå½åï¼
ä½ç¨åè½ï¼edit_themesï¼
Handleï¼å¥æï¼ï¼å½åæ件ï¼
æ§è¡çå½æ°ï¼themeoptions_pageï¼
ç°å¨åå°æ§å¶é¢æ¿ä¾§è¾¹æ çå¤å°±å¤äºä¸ä¸ªâ主é¢è®¾ç½®âçèåï¼ä½æ¯ç°å¨è¿æ¯ç©ºç½çï¼æ们åé¢è¦å®ç°çå®å¶å 容就å¨è¿ä¸ªç©ºç½é¡µé¢ä¸å建ã
3ãæ·»å é项åå段
ç°å¨æ们就å¯ä»¥å¨åå建ç空ç½é¡µé¢ä¸æ·»å æ们çé项åå段ãè¿ä¸ªé¡µé¢ä½ å¯ä»¥æ ¹æ®èªå·±çéè¦è¿è¡æ ·å¼é£æ ¼åï¼ä½å¨æ¬æç¨ä¸æ们å°ä½¿ç¨wordpressé»è®¤çç±»ï¼è¿æ ·å¯ä»¥èçæ们çæ¶é´å¹¶ä¸çèµ·æ¥æ´å åçã
页é¢å 容ç代ç éå å«å¨ themeoptions_page()å½æ°å ãé¦å ï¼æ们å æ·»å ä¸ä¸ªclass=âwrapâçdiv容å¨ï¼ç¶åï¼å¨å¤´é¨æ·»å ä¸ä¸ªé»è®¤å¾æ ä½ä¸ºä½ä¸ºé¡µé¢æ é¢ï¼æåæ¯è®¾è®¡è¡¨åã
<div class=âwrapâ>
<div id=âicon-themesâ class=âicon32â³><br /></div>
<h2>主é¢è®¾ç½®</h2>
<form method=âPOSTâ action=ââ>
<input type=âhiddenâ name=âupdate_themeoptionsâ value=âtrueâ />
<p><input type=âsubmitâ name=âsubmitâ id=âsubmitâ class=âbutton button-primaryâ value=âä¿åæ´æ¹â></p>
</form>
</div>
å¨è¡¨åä¸ï¼é¦å æ们éè¦æ·»å ä¸ä¸ªéèçå¼ï¼éè¿å®æ¥æ£æ¥æ´æ°æ¯å¦å·²ç»æ交ãç¶åæ·»å ä¸ä¸ªæ交æé®ï¼è¿éæä¹ä½¿ç¨wordpressé»è®¤çæé®æ ·å¼ãç°å¨çææ为ï¼
ç°å¨æ们已ç»å建äºè®¾ç½®é项页çåºæ¬ç»æï¼ä¸é¢æ们å¼å§æ ¹æ®ä¹åå¶å®çå 容è¿è¡å®åï¼
é¦å ï¼æ们è¦å 许主é¢ä½¿ç¨è å¯ä»¥æ´æ¹é¢è²æ¹æ¡ã对äºè¿ä¸ç¹ï¼æ们éè¦ä¸ä¸ªä¸æå表æä¾å¯ç¨çé è²æ¹æ¡ã
å ¶æ¬¡ï¼å¢å 两个广åä½çå 容ï¼æ们éè¦å¢å 两个ææ¬æ¡æ¥è¾å ¥å¾ççURLå广åé¾æ¥URLã
æåï¼ç¨æ·å¯éæ©æ¯å¦æ¾ç¤ºæç´¢æ¡ãè¿ä¸ç¹ï¼æ们éè¿æ·»å å¤éæ¡æ¥å®ç°ã
代ç å¦ä¸ï¼
function themeoptions_page()
{
// è¿æ¯äº§ç主é¢é项页é¢ç主è¦åè½
?>
<div>
<div id=âicon-themesâ><br /></div>
<h2>主é¢è®¾ç½®</h2>
<form method=âPOSTâ action=ââ>
<input type=âhiddenâ name=âupdate_themeoptionsâ value=âtrueâ />
<h4>主é¢é è²æ¹æ¡</h4>
<select name =âcolourâ>
<?php $colour = get_option(âmytheme_colourâ); ?>
<option value=âgrayâ <?php if ($colour==âgrayâ) { echo âselectedâ; } ?> >ç°è²</option>
<option value=âblueâ <?php if ($colour==âblueâ) { echo âselectedâ; } ?>>æµ è</option>
<option value=âpinkâ <?php if ($colour==âpinkâ) { echo âselectedâ; } ?>>ç²çº¢</option>
</select>
<h4>å¾ç广åä½ï¼1ï¼</h4>
<p><input type=âtextâ name=âad1imageâ id=âad1imageâ size=â32â value=â<?php echo get_option(âmytheme_ad1imageâ); ?>â/> 广åå¾ç</p>
<p><input type=âtextâ name=âad1urlâ id=âad1urlâ size=â32â value=â<?php echo get_option(âmytheme_ad1urlâ); ?>â/> 广åé¾æ¥</p>
<h4>å¾ç广åä½ï¼2ï¼</h4>
<p><input type=âtextâ name=âad2imageâ id=âad2imageâ size=â32â value=â<?php echo get_option(âmytheme_ad2imageâ); ?>â/> 广åå¾ç</p>
<p><input type=âtextâ name=âad2urlâ id=âad2urlâ size=â32â value=â<?php echo get_option(âmytheme_ad2urlâ); ?>â/> 广åé¾æ¥</p>
<h4><input type=âcheckboxâ name=âdisplay_searchâ id=âdisplay_searchâ <?php echo get_option(âmytheme_display_searchâ); ?> /> æ¾ç¤ºæç´¢æ¡</h4><p><input type=âsubmitâ name=âbcn_admin_optionsâ value=âæ´æ°æ°æ®â/></p>
</form>
</div>
<?php
}
å°è¿éé项页é¢çå 容就已ç»åºæ¬æ建å®æ¯äºã
4ãæ°æ®åºæ´æ°
å°ç®å为æ¢ï¼æ们已ç»å建äºä¸ä¸ªä¸»é¢é项页é¢ï¼ä¸ä¸æ¥è¦åçå°±æ¯å¦ä½å°æ°æ®éè¿POSTæ交çwordpressæ°æ®åºãè¦åå°è¿ä¸ç¹ï¼éè¦å建ä¸ä¸ªæ°çåè½å½æ°themeoptions_update()ï¼è¿ä¸ªå½æ°å°ä¼è¢«themeoptions_page()è°ç¨ï¼æ以å°ä¸é¢ç代ç æ·»å å°themeoptions_page()å½æ°çæä¸é¢ã
if ( $_POST[âupdate_themeoptionsâ] == âtrueâ ) { themeoptions_update(); }
ä¸ä¸æ¥æ¯å¢å ä¸ä¸ªæ´æ°å½æ°ã
function themeoptions_update()
{
// æ°æ®æ´æ°éªè¯
update_option(âmytheme_colourâ, $_POST[âcolourâ]);
update_option(âmytheme_ad1imageâ, $_POST[âad1imageâ]);
update_option(âmytheme_ad1urlâ, $_POST[âad1urlâ]);
update_option(âmytheme_ad2imageâ, $_POST[âad2imageâ]);
update_option(âmytheme_ad2urlâ, $_POST[âad2urlâ]);
if ($_POST[âdisplay_searchâ]==âonâ) { $display = âcheckedâ; } else { $display = â; }
update_option(âmytheme_display_searchâ, $display);
}
5ãè°ç¨é项å®å¶ä¸»é¢
æ们主é¢çé»è®¤æ ·å¼æ件为style.cssï¼å¦æ使ç¨å ¶ä»çé è²æ¹æ¡ï¼æ们éè¦å»ºç«ç¸åºçæ ·å¼æ件ï¼ä¾å¦æ¬ä¾ä¸çblue.cssãpink.cssï¼style.css为é»è®¤çç°è²ã
为äºåæ¢é è²æ¹æ¡æ ·å¼è¡¨ï¼éè¦å¨ä¸»é¢headerä¸å å ¥ä»¥ä¸ä»£ç ï¼
<link rel=âstylesheetâ href=â<?php bloginfo(âstylesheet_directoryâ); ?>/default.cssâ type=âtext/cssâ>
<link rel=âstylesheetâ href=â<?php bloginfo(âstylesheet_directoryâ); ?>/<?php echo get_option(âmytheme_colourâ); ?>.cssâ type=âtext/cssâ>
å¢å 广åä½å¾çâå¨ä½ æ³è¦æ¾ç½®å¹¿åçå°æ¹æ·»å 以ä¸ä»£ç ï¼
<a href=â<?php echo get_option(âmytheme_ad1urlâ); ?>â><img src=â<?php echo get_option(âmytheme_ad1imageâ); ?>â height=â125â width=â125â /></a>
<a href=â<?php echo get_option(âmytheme_ad2urlâ); ?>â><img src=â<?php echo get_option(âmytheme_ad2imageâ); ?>â height=â125â width=â125â /></a>
æ¯å¦æ¾ç¤ºæç´¢æ¡âå¨éè¦æ¾ç½®æç´¢æ¡çå°æ¹æ·»å 以ä¸ä»£ç ï¼å½ç¨æ·éæ©æ¾ç¤ºæç´¢æ¡æ¶ä¼æ¾ç¤ºï¼å¦ååä¸æ¾ç¤ºï¼
<?php if ( get_option(âmytheme_display_searchâ) == âcheckedâ) { ?>
<h3>æç´¢æ¡</h3>
<form method=âgetâ id=âsearchformâ action=â<?php echo esc_url( home_url( â/â ) ); ?>â>
<input type=âtextâ name=âsâ id=âsâ placeholder=â<?php esc_attr_e( âSearchâ, â85Ryanâ ); ?>â />
<input type=âsubmitâ name=âsubmitâ id=âsearchsubmitâ value=âæç´¢â />
</form>
<?php } ?>
温馨提示:答案为网友推荐,仅供参考