首先,這個(gè)問題是我在知乎上提的,再次看到真是倍感親切啊~
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括南通網(wǎng)站建設(shè)、南通網(wǎng)站制作、南通網(wǎng)頁制作以及南通網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,南通網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到南通省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
現(xiàn)在回看,跟以前還是有不同的見解的,其中,我認(rèn)為有大神的回答非常好“精通php勝過精通一個(gè)cms”,也就是說,如果你的php足夠好,那就不要糾結(jié)用wordpress還是用phpcms了。因?yàn)闊o論用哪一個(gè),都可以解決問題,而且是很好的解決!
說說我為什么會這樣提問,我本人屬于php入門階段,只會寫非常簡單的代碼,但是能夠比較熟練使用phpcmsv9,大概用了1年時(shí)間了,其實(shí)是非常喜歡這個(gè)產(chǎn)品的。但非常遺憾的是,v9基本上沒有任何更新了,屬于放養(yǎng)狀態(tài)了,想找一個(gè)代替品,所以選擇了wordpress。
也用過wordpress做過幾個(gè)網(wǎng)站(準(zhǔn)確來說是做過幾個(gè)主題),但從開發(fā)的角度來看,顯然wordpress的學(xué)習(xí)成本要高很多。具體表現(xiàn)在以下方面:
1結(jié)構(gòu)比較西方化,基本靠
function.PHP
控制,大量的方法堆積到這個(gè)文件,眼花繚亂,有的還不寫注釋,找起來非常不方便
2方法有不下幾萬種,多是多了,但找起來也是非常麻煩,而且很多發(fā)放有一大批參數(shù)需要配置,當(dāng)然了從一個(gè)側(cè)面表示這個(gè)方法足夠強(qiáng)大,但大部分時(shí)間用不上,由于漢化問題,查找起來費(fèi)勁。
3鉤子讓我困擾。。。如果不是非常有經(jīng)驗(yàn)的開發(fā)者,小白你就別想搞明白這個(gè)東西了,具體表現(xiàn)是我一直就沒明白到底有多少hook,什么時(shí)候該掛hook,掛哪個(gè)hook。。
4菜單配置非常繁瑣,菜單輸入函數(shù)非常不方便,這個(gè)很抓狂,相比phpcms可以直接輸出菜單數(shù)據(jù),wordpress輸出了除了數(shù)據(jù)以外的樣式,而且非常固定,改起來要重寫菜單函數(shù),極其不方便。。。。這個(gè)也是被很多人吐槽過的
5插件繁多,但兼容性很差,我這問題也問題很多人,他們回答是那是因?yàn)槟悴欢?,這個(gè)我真是沒法反駁啊,無論多么麻煩的系統(tǒng)和工具,只要你懂了,那就不難。。這不廢話嗎?我想用過wordpress的人沒有幾個(gè)不被插件坑過,想徹底懂?那就一個(gè)一個(gè)坑填吧。
6耗內(nèi)存,對主機(jī)配置要求高。。。這個(gè)現(xiàn)在還好一些,以前有g(shù)oogle組件時(shí)候更要命。
說了這么多不好,但我還是選擇用它了,沒別的,就是因?yàn)樗且粋€(gè)既沒有版權(quán)限制,又更新及時(shí)的CMS..這一點(diǎn)國內(nèi)cms真是沒法比。總之就是坑很深,但值得入~
另外,phpcms也很不錯(cuò),但顯然過時(shí)了。。。
二更一下,修改了一些錯(cuò)字。
這里闡述一下啊,寫了這么多,并不是抨擊wp多不好,我最后也說了,最終我還是選擇了用wp,我想表達(dá)的觀點(diǎn)就是,wp想學(xué)到精髓,是要比國內(nèi)的phpcms這些難一些的,當(dāng)初我用phpcmsv9時(shí)候,真心用了3天基本就可以應(yīng)付一般網(wǎng)站了,但wp玩了半個(gè)月,還是不太懂。。。尤其是各種插件還有一些鉤子函數(shù),可能也是學(xué)習(xí)方法沒有掌握吧~
但有的大神確實(shí)可以用wp做各種網(wǎng)站,真的是各種網(wǎng)站~佩服啊
1、創(chuàng)建所需的文件
在進(jìn)行主題定制前,應(yīng)該首先創(chuàng)建一個(gè)可供自定義的“設(shè)置選項(xiàng)頁面”。創(chuàng)建設(shè)置選項(xiàng)頁的代碼需要放置在主題目錄下的functions.php文件中。如果我們的模板名為“OptionPage”,那么functions文件的路徑為:wp-contentthemesOptionPagefunctions.php。
我們不需要讓wordpress手動(dòng)加載它,在執(zhí)行時(shí)wordpress會自動(dòng)加載。
2、建立設(shè)置選項(xiàng)頁
首先第一步需要在后臺建立一個(gè)空白頁面供我們使用。我們通過add_aaction來實(shí)現(xiàn)這一步。Actions可以在wordpress執(zhí)行時(shí)的特定時(shí)間被響應(yīng),例如,當(dāng)在控制面板創(chuàng)建菜單時(shí),admin_menu就會被響應(yīng)執(zhí)行。因此,可以利用這些來實(shí)現(xiàn)我們所需的功能。這是我們創(chuàng)建選項(xiàng)頁的最基本的功能。
?php
// 設(shè)置選項(xiàng)頁
function themeoptions_admin_menu()
{
// 在控制面板的側(cè)邊欄添加設(shè)置選項(xiàng)頁鏈接
add_theme_page(“主題設(shè)置”, “主題選項(xiàng)”, ‘edit_themes’, basename(__FILE__), ‘themeoptions_page’);
}
function themeoptions_page()
{
// 設(shè)置選項(xiàng)頁面的主要功能
}
add_action(‘a(chǎn)dmin_menu’, ‘themeoptions_admin_menu’);
?
themeoptions_admin_menu()是在控制面板的側(cè)邊欄中添加一個(gè)鏈接,指向我們創(chuàng)建的選項(xiàng)頁:themeoptions_page。
add_theme_page() 的參數(shù)為:
頁面標(biāo)題:主題設(shè)置
菜單標(biāo)題:主題選項(xiàng)(p.s.為了區(qū)分顯示,頁面與菜單標(biāo)題我做了不同我命名)
作用功能:edit_themes;
Handle(句柄):當(dāng)前文件;
執(zhí)行的函數(shù):themeoptions_page;
現(xiàn)在后臺控制面板側(cè)邊欄的處就多了一個(gè)“主題設(shè)置”的菜單,但是現(xiàn)在還是空白的,我們后面要實(shí)現(xiàn)的定制內(nèi)容就在這個(gè)空白頁面上創(chuàng)建。
3、添加選項(xiàng)和字段
現(xiàn)在我們就可以在剛創(chuàng)建的空白頁面上添加我們的選項(xiàng)和字段。這個(gè)頁面你可以根據(jù)自己的需要進(jìn)行樣式風(fēng)格化,但在本教程中我們將使用wordpress默認(rèn)的類,這樣可以節(jié)省我們的時(shí)間并且看起來更加原生。
頁面內(nèi)容的代碼需包含在 themeoptions_page()函數(shù)內(nèi)。首先,我們先添加一個(gè)class=”wrap”的div容器;然后,在頭部添加一個(gè)默認(rèn)圖標(biāo)作為作為頁面標(biāo)題;最后是設(shè)計(jì)表單。
div class=“wrap”
div id=“icon-themes” class=“icon32″br //div
h2主題設(shè)置/h2
form method=“POST” action=“”
input type=“hidden” name=“update_themeoptions” value=“true” /
pinput type=“submit” name=“submit” id=“submit” class=“button button-primary” value=“保存更改”/p
/form
/div
在表單中,首先我們需要添加一個(gè)隱藏的值,通過它來檢查更新是否已經(jīng)提交。然后添加一個(gè)提交按鈕,這里我也使用wordpress默認(rèn)的按鈕樣式?,F(xiàn)在的效果為:
現(xiàn)在我們已經(jīng)創(chuàng)建了設(shè)置選項(xiàng)頁的基本結(jié)構(gòu),下面我們開始根據(jù)之前制定的內(nèi)容進(jìn)行完善:
首先,我們要允許主題使用者可以更改顏色方案。對于這一點(diǎn),我們需要一個(gè)下拉列表提供可用的配色方案。
其次,增加兩個(gè)廣告位的內(nèi)容,我們需要增加兩個(gè)文本框來輸入圖片的URL及廣告鏈接URL。
最后,用戶可選擇是否顯示搜索框。這一點(diǎn),我們通過添加復(fù)選框來實(shí)現(xiàn)。
代碼如下:
function themeoptions_page()
{
// 這是產(chǎn)生主題選項(xiàng)頁面的主要功能
?
div
div id=“icon-themes”br //div
h2主題設(shè)置/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’; } ?淺藍(lán)/option
option value=“pink” ?php if ($colour==’pink’) { echo ‘selected’; } ?粉紅/option
/select
h4圖片廣告位(1)/h4
pinput type=“text” name=“ad1image” id=“ad1image” size=“32” value=“?php echo get_option(‘mytheme_ad1image’); ?”/ 廣告圖片/p
pinput type=“text” name=“ad1url” id=“ad1url” size=“32” value=“?php echo get_option(‘mytheme_ad1url’); ?”/ 廣告鏈接/p
h4圖片廣告位(2)/h4
pinput type=“text” name=“ad2image” id=“ad2image” size=“32” value=“?php echo get_option(‘mytheme_ad2image’); ?”/ 廣告圖片/p
pinput type=“text” name=“ad2url” id=“ad2url” size=“32” value=“?php echo get_option(‘mytheme_ad2url’); ?”/ 廣告鏈接/p
h4input type=“checkbox” name=“display_search” id=“display_search” ?php echo get_option(‘mytheme_display_search’); ? / 顯示搜索框/h4pinput type=“submit” name=“bcn_admin_options” value=“更新數(shù)據(jù)”//p
/form
/div
?php
}
到這里選項(xiàng)頁面的內(nèi)容就已經(jīng)基本構(gòu)建完畢了。
4、數(shù)據(jù)庫更新
到目前為止,我們已經(jīng)創(chuàng)建了一個(gè)主題選項(xiàng)頁面,下一步要做的就是如何將數(shù)據(jù)透過POST提交的wordpress數(shù)據(jù)庫。要做到這一點(diǎn),需要?jiǎng)?chuàng)建一個(gè)新的功能函數(shù)themeoptions_update(),這個(gè)函數(shù)將會被themeoptions_page()調(diào)用,所以將下面的代碼添加到themeoptions_page()函數(shù)的最上面。
if ( $_POST[‘update_themeoptions’] == ’true’ ) { themeoptions_update(); }
下一步是增加一個(gè)更新函數(shù)。
function themeoptions_update()
{
// 數(shù)據(jù)更新驗(yàn)證
update_option(‘mytheme_colour’, $_POST[‘colour’]);
update_option(‘mytheme_ad1image’, $_POST[‘a(chǎn)d1image’]);
update_option(‘mytheme_ad1url’, $_POST[‘a(chǎn)d1url’]);
update_option(‘mytheme_ad2image’, $_POST[‘a(chǎn)d2image’]);
update_option(‘mytheme_ad2url’, $_POST[‘a(chǎn)d2url’]);
if ($_POST[‘display_search’]==’on’) { $display = ‘checked’; } else { $display = ”; }
update_option(‘mytheme_display_search’, $display);
}
5、調(diào)用選項(xiàng)定制主題
我們主題的默認(rèn)樣式文件為style.css,如果使用其他的配色方案,我們需要建立相應(yīng)的樣式文件,例如本例中的blue.css、pink.css,style.css為默認(rèn)的灰色。
為了切換配色方案樣式表,需要在主題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
是否顯示搜索框—在需要放置搜索框的地方添加以下代碼,當(dāng)用戶選擇顯示搜索框時(shí)會顯示,否則則不顯示:
?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 } ?
這可能是Wordpress主題的事兒,如果是前臺的提示的話,你看一下所用主題的header.php文件,里面有沒有一句:
!--[if?IE
這里是輸出函數(shù)或者直接就是HTML內(nèi)容
![endif]--
一般情況下是有的,你將上面的IE改為lt IE 9即可,意思是如果訪客使用的是低于IE9的IE瀏覽器的時(shí)候才出現(xiàn)此提示。
如果你沒有找到,可以再問!