有很多朋友可能希望學(xué)習(xí)WordPress主題開發(fā)和仿站主題,實際上如果我們即便不會編程,就會簡單的HTML和簡單能看懂PHP代碼應(yīng)該是也可以的,基本上我們能仿站W(wǎng)ordPress主題和基本的主題開發(fā)是沒有問題的。在這篇文章中,麥子就梳理WordPress一款主題入門學(xué)習(xí)開發(fā)的記錄,直接篩選出重點邏輯和需要的標簽。
我們只需要按照這個過程就可以開發(fā)出一款沒有后端的WordPress博客主題。
創(chuàng)建主題
我們需要創(chuàng)建一個主題文件夾,舉個例子 cnwper_blog ,將文件夾放到 wp-content/themes 目錄中。我們需要將準備好的HTML靜態(tài)頁面,放到這個目錄中。然后在根目錄放一個 style.css 樣式文件。
在 style.css 文件頂部加上標識識別主題的代碼。
/* Theme Name: Bloger Theme URI: http://bjj.org.cn/ Author: 麥子 Author URI: http://bjj.org.cn/ Description: WordPress Blog License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: blog Text Domain: zhujipingjia This theme, like WordPress, is licensed under the GPL. Use it to make something cool, have fun, and share what you've learned with others. */
這個我們就可以在WordPress主題識別到當前這個主題。具體標簽內(nèi)容我們自己修改,包括名稱、官方網(wǎng)站等信息。
然后我們就可以修改HTML頁面,可以將頁面更換成 index.php 在樣式的位置調(diào)整WP的路徑。
<?php echo get_stylesheet_directory_uri() ?>/style.css
然后我們在 title 中間調(diào)出標題的部分更換成:
<?php wp_title( '--', true, 'right' ); ?><?php bloginfo( 'name' ); ?>
同時,我們需要在 </head>前面添加:
<?php wp_head();?>
且在</body>前面添加:
<?php wp_footer(); ?>
拆分頁面
這里,我們需要進行頁面拆分,拆分出來 index.php、header.php、footer.php、sidebar.php
這里,我們直接拆分代碼將代碼丟到對應(yīng)的PHP頁面,然后在index.php拿掉的代碼位置用代碼調(diào)用補充。分別補充:
<?php get_header();?> <?php get_footer();?> <?php get_sidebar();?>
這樣,我們就可以將準備好的INDEX.HTML,拆分成四個頁面。頭部、中間、底部、側(cè)邊。是不是就是一個簡單的主題模板?
然后我們可以將中間的核心部分進行代碼循環(huán),就是博客列表。
<?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> 循環(huán)部分 <?php endwhile; ?> <?php endif; ?>
循環(huán)部分一般包括:標題、摘要、時間日期、作者等信息。
標題 替換為 <?php the_title();?>;
摘要 替換為 <?php the_excerpt();?>;
作者 替換為 <?php the_author();?>;
作者標簽的 href 的值替換為 <?php the_author_link();?>;
日期 替換為 <?php the_date();?>。
具體的調(diào)用信息可以參考搜索其他的調(diào)用參數(shù)。
上一頁下一頁分頁可以用簡單的調(diào)用:
<?php next_posts_link( 'Older posts' ); ?> <?php previous_posts_link( 'Newer posts' ); ?>
如果有需要分頁的可以再找合適的調(diào)用函數(shù)。需要定義的?;蛘呶覀冞€可以用無限翻頁。
完畢之后,我們可以再進行內(nèi)容頁面single.php,可以復(fù)制index.php,然后對摘要的部分進行修改調(diào)用:
the_content()
摘要替換成這個即可。同時 page.php 頁面也是和index.php和single.php差不多的。
調(diào)用代碼
基本的框架我們搞定后,就開始做一些調(diào)用,比如網(wǎng)站標題、描述、側(cè)邊的時間歸檔、最新文章等都可以找到對應(yīng)調(diào)用的。
比如日期歸檔:
<?php wp_get_archives( 'type=monthly' ); ?>
評論信息:
<?php if ( comments_open() || get_comments_number() ) : comments_template(); endif; ?>
在single.php中合適的位置添加評論調(diào)用。且需要再創(chuàng)建一個處理評論的頁面:comments.php
<?php // part 1 if ( post_password_required() ) { return; } ?> <div id="comments" class="comments-area"> <?php // part 2 if ( have_comments() ) : ?> <h3 class="comments-title"> <?php // part 3 printf( _n( '“%2$s” 有一條評論', '“%2$s” 有 %1$s 條評論', get_comments_number(), 'comments title'), get_comments_number() , get_the_title() ); ?> </h3> <ul class="comment-list"> <?php // part 4 wp_list_comments( array( 'short_ping' => true, 'avatar_size' => 50, ) ); ?> </ul> <?php endif; ?> <?php // part 5 if ( ! comments_open() && get_comments_number() && post_type_supports( get_post_type(), 'comments' ) ) : ?> <p class="no-comments"> <?php _e( '評論已關(guān)閉.' ); ?> </p> <?php endif; ?> <?php comment_form(); ?> </div>
對于樣式部分我們自己單獨調(diào)整,我們這里只是整理主題開發(fā)的基本邏輯。
主題功能
我們還可以單獨給主題設(shè)置功能,我們主題目錄創(chuàng)建一個 functions.php 然后可以加入一些定義的功能。
這樣,這個WordPress主題開發(fā)邏輯已經(jīng)整理出來,我們只需要對應(yīng)的修改調(diào)用標簽和樣式就可以做一個簡單的博客主題。如果我們要復(fù)雜的主題也是在基礎(chǔ)上進行完善的。比如有優(yōu)先級的頁面模板、后端管理框架。
評論