WordPress 中文文档
The Loop in Action
From WordPress Chinese
sitget
目录 |
ä»ç»
"The Loop" æ¯ä¸ä¸ªå WordPress 主è¿ç¨(main process)ç¸å ³çä¸è¥¿ãä½ å¨template filesä¸ä½¿ç¨Loopæ¥æ¾ç¤ºå¸åãä½ ä¹å¯ä»¥æå»ºæ²¡æLoopçæ¨¡æ¿ï¼é£æ ·çè¯ä½ å°±åªè½æ¾ç¤ºä¸ä¸ªå¸åã
WordPress é¦å æ£æ¥ææéè¦æ¾ç¤ºçæä»¶ãæ¥ä¸æ¥å®ä»æ°æ®åºä¸æ¶éä½ å¨blog administratorä¸ç缺ç设置信æ¯ãæ¯å¦è¯´æ¯é¡µæ¾ç¤ºçå¸åæ°éï¼æ¯å¦å¼æ¾è¯è®ºåè½ççã䏿¦è¿äºä¿¡æ¯æç¡®äºï¼WordPressæ¥ä¸æ¥ååºç¨æ·ç请æ±ãä»èå³å®ä»æ°æ®åºä¸æååªä¸ªå¸åã
å¦æç¨æ·æ²¡æè¯·æ±ä»»ä½ç¹å®çå¸åï¼åç±»ï¼é¡µé¢ï¼ææ°æ®ï¼WordPress使ç¨ä¹åæ¶éå°ç缺ç弿¥å³å®ä¸ºç¨æ·åå¤é£ä¸ªå¸åãæ¯æ¹è¯´ï¼å¦æblog管çåéæ©display 5 posts per pageï¼WordPresså°ä»æ°æ®åºä¸æåäºä¸ªæè¿åå¸çå¸åãå¦æç¨æ·æç¡®æå®äºæä¸ªå¸åï¼åç±»ï¼é¡µé¢ææ°æ®ï¼WordPresså°æ®æ¤ä»æ°æ®åºä¸æåå¸åã
ä¸å就绪åï¼WordPressè¿æ¥æ°æ®åºï¼æåä¿¡æ¯åå°åéä¸ãLoopå°ä½¿ç¨è¿ä¸ªåéï¼ç¶åå¨ä½ çæ¨¡æ¿ä¸æ¾ç¤ºåºæ¥ã
å¦æè®¿é®è 没æéå®æä¸ªç¹å®çå¸åï¼é¡µé¢ï¼åç±»ï¼ææ°æ®ï¼WordPress缺ç使ç¨index.phpæ¥æ¾ç¤ºææä¸è¥¿ãä½ä¸ºLoop讨论ç第ä¸é¨åï¼æä»¬é¦å å ³æ³¨index.phpï¼ç¼ºççblogæ¾ç¤ºé¡µãç¨åï¼ä¸æ¦ä½ çè§£äºè¿ä½åçï¼æä»¬å°æ¢è®¨å¨å ¶ä»æ¨¡æ¿æä»¶ä¸çåºç¨ã
ä¸ç第ä¸è¶ 级ç®å Index 页é¢
ä¸é¢æ¯ä¸ä¸ªå ¨åè½ç index 页ï¼ä»ä¼ä¾æ®Loopçè®¾å®æ¡ä»¶æ¾ç¤ºæ¯ä¸ªå¸åçå 容ï¼åªæ¾ç¤ºå 容ãè¿ä¸ªä»£ç å°±æ¯åä½ æ¾ç¤º Loop å®ç°èµ·æ¥æå¤ç®åãå ¶å®index.phpä¸çç»å¤§å¤æ°ä»£ç 齿¯ç¨æ¥ç¾å页é¢çCSS, HTML, PHP ã
<?php
get_header();
if (have_posts()) :
while (have_posts()) :
the_post();
the_content();
endwhile;
endif;
get_sidebar();
get_footer();
?>
ç°å¨ï¼å°±è®©æä»¬ççç»å¤§å¤æ°ç¨æ¥ç¾åLoopçä¸ä¸ã
缺ç Loop
ä¸é¢æä»¬ä¸æ¥æ¥æ¥å¦ä¹ Wordress v1.5 æ åå®è£ ä¸çdefaultåclassicç缺ççLoopç¨æ³ã
å¼å§ Loop
å¨ç¼ºçæ¨¡æ¿æä»¶ä¸ç index.php é¡¶é¨å°±æ¯å¼å§The Loopç代ç ã
<?php if (have_posts()) : ?><br /> <?php while (have_posts()) : the_post(); ?>
- é¦å å®éè¿have_posts()彿°æ¥æ£æ¥æ¯å¦æå¸åã
- 妿æå¸åï¼å¼å§ä¸ä¸ªPHPçwhile循ç¯ãä¸ä¸ªwhile loop å°æ£ç´¢åºææç¬¦å()ä¸ä¼ å ¥æ¡ä»¶çè®°å½ãåªè¦have_posts()è¿å为trueï¼loopå°ä¸æå¾ªç¯ã
- 彿°have_posts()åªæ¯ç®åçæ£ç´¢ä¸ä¸ä¸ªå¸åï¼å¦æåå¨ï¼è¿åtrueï¼å¦åï¼è¿åfalse.
çæ Post
the_post() 彿°å¨Loopä¸è·åå½åçå¸åå¹¶ä½¿å ¶ææãå¦ææ²¡æthe_post(),ï¼ä½ çthemeä¸çå¾å¤Template Tagså°æ æ³å·¥ä½ã 䏿¦æä¸ªå¸å被置为ææï¼æ¨¡æ¿å°±ä¼å访é®è æ¾ç¤ºè¯¥å¸åä¸çæ°æ®ã
æ é¢ï¼æ¥æåä½è
ä¸é¢çtemplate tagsè·åå½åå¸åçæ é¢ï¼å¼ è´´æ¥æååå¸äººã
<h2 id="post-<?php the_ID(); ?>">
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>">
<?php the_title(); ?></a></h2>
<small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>
hh订ç«è½¦ç¥¨ å京ç«è½¦ç¥¨é¢å® å京ç«è½¦ç¥¨æ¥è¯¢ ç«è½¦ç¥¨ å京ç«è½¦ç¥¨é¢è®¢ å京ç«è½¦ç¥¨ ç«è½¦ç¥¨æ¥è¯¢ ç«è½¦ç¥¨é¢å® ç«è½¦ç¥¨é¢è®¢
å¸åæ£æï¼contentï¼å 容
the_content() template tag 伿¾ç¤ºå¸åæ£æå 容ãè¿æ¯ä¸ä¸ªLoop循ç¯è¦ä½çåºæ¬å·¥ä½ã
<div class="entry">
<?php the_content('Read the rest of this entry »'); ?>
</div>
å¦æä½ å å«ä¸ä¸ªç§°ä¹ä¸ºmoreçQuicktagæé®ï¼ä½ çå¸åä¼å¨æ£æä¸æ¾ç¤ºä¸ä¸ª<!--more-->ï¼å®ä¼éèæ è®°åçæ£æå å®¹ãæ¯å¦ä½ åªæ¯æ³æ¾ç¤ºæ¯ä¸ªå¸åå 容ç头ä¸ä¸¤å¥ï¼ç®åçå°<!--more--> æ è®°æå ¥å°ä½ çæ¯ä¸ªå¸åç头ä¸è¡åé¢ã 彿µè§ä¸ä¸ªå¸åçæ¶å<!-- more -->ä¹åçå 容ä¼éèãå¦æä½ æ³å¼ºå¶æµè§è éè¿ç¹å»è¿å ¥æ¥é è¯»å ¨æï¼é£ä¹å°±å¨ä½ çå¸åä¸é½å ä¸è¿ä¸ªæ è®°å§ã
å ¶å®ç»èé®é¢
å¨index.phpæ¨¡æ¿æä»¶ä¸å¸åæ£æä¹ä¸ï¼æ¯ç¨æ¥æ¾ç¤ºå¸åä¿¡æ¯çå°æ¹ï¼æ¯å¦åç±»ï¼æ¥æï¼ä»¥åè¯è®ºãæ£å¦post meta data sectionæè¿°ï¼å¦æä½ æç»å½è¿å»åæè¶³å¤æéæè æ¬èº«ä¸ºå¸åçä½è ï¼ä½ è¿ä¼çå°ä¸ä¸ª"Edit This" çè¿æ¥ï¼è¿è¦å½åäºedit_post_link() æ¨¡æ¿æ è®°å½æ°(template tag function)ã
<p class="postmetadata">
Posted in <?php the_category(', ') ?>
<strong>|</strong>
<?php edit_post_link('Edit','','<strong>|</strong>'); ?>
<?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>
妿è¯è®ºåè½è¢«æå¼ï¼æè å¸åå·²ç»æäºè¯è®ºï¼comments_popup_link() æ¨¡æ¿æ è®°(template tag)伿¾ç¤ºä¸ä¸ªè¯è®ºé¾æ¥ãå¦æä½ ä½¿ç¨comments popup windowï¼ç¹å»è¿ä¸ªé¾æ¥ä¼æå¼ä¸ä¸ªè¯è®ºçªå£ï¼å¦åå®ä¼è·³è½¬å°è¿ä¸ªå¸åçè¯è®ºå 容ã
å¦æè®¿é®è æ£å¨æµè§å¸åçç´¢å¼(注æï¼æLoop循ç¯ä¸æå¤ä¸ªå¸åçæ åµ)ï¼ comments_popup_link()龿¥ä¼æè¯»è æå¼å°è¿ä¸ªå¸åçåç¬ç页é¢ã
Trackback èªå¨æç´¢
trackback_rdf æ¨¡æ¿æ è®°å½æ°ï¼template tag's functionï¼ç¨æ¥è¾åºæºå¨å¯ä»¥è¯å«ç代ç ï¼è¿ä¸ªä»£ç å¯ä»¥ç¨æ¥å®ç°trackbackçèªå¨æç´¢ã
<!-- <?php trackback_rdf(); ?> -->
夿³¨ï¼trackback_rdf() æ è®°ï¼tagï¼é¢å®ä¸ºè¢«commentså°è£ ãè¿ä¸ªåè½æ æ³ "å ³é"ã
ç»æ Loop
ä¸é¢ç代ç ç»æLoopãè¿äºå·¥ä½å®æåï¼åç§ä¸å¸åç¸å ³çæ¨¡æ¿æ è®°è¿ä¸ä¼åæ¥é¢æçä½ç¨ï¼(or if they do, they will use the last post from The Loop)ãè¿ä¹å°±æ¯è¯´ï¼å¦æä½ 叿å¨å¾ªç¯å é¨è®©æ¨¡æ¿æ è®°ï¼template tagï¼çæï¼you need to put it in before this point.ï¼æç¹æ¿ä¸åï¼ä¸é¢ä¿çåæï¼
The following ends The Loop. After this, the various post-related template tags will not work as expected (or if they do, they will use the last post from The Loop). This means, that if you need to use a template tag that works within The Loop, you need to put it in before this point.
<?php endwhile; ?>
è¿ä¸å°èï¼å¨ç»æå¾ªç¯åï¼éè¦é©¬ä¸å®ç°æ¯ä¸ªç½é¡µé½æçå¯¼èªæ¡åå翻页çåè½ã
<div class="navigation">
<div class="alignleft"><?php posts_nav_link('','','« Previous Entries') ?></div>
<div class="alignright"><?php posts_nav_link('','Next Entries »','') ?></div>
</div>
å设æ¯é¡µæ¾ç¤º10个å¸åï¼Loopæ¥è¯¢åº25个å¸åï¼é£å¯¼èªæ¡ä¼æ3个页é¢ï¼å ¶ä¸ä¸¤ä¸ªæ10个å¸åï¼ä¸ä¸ªæ5个å¸åã访é®è å¯ä»¥éè¿å¯¼èªæ¡é¾æ¥ååç¿»é ææè¿äºå¸åã
å¯¼èªæ¡æ§å¶è¢«å å«å¨Loop以å¤ï¼ä½æ¯æ¡ä»¶å¤æå¨Loop以å ï¼ï¼åå¡å£³äºï¼ä¸é¢ä¿çåæï¼
The navigation controls are included outside The Loop, but inside the if condition, so that they only show up if there are any posts. The navigation functions themselves also check whether or not there is anything to which they will link, based on the current Loop, and only display links if there's something to link.
<?php else : ?>
<h2 class="center">Not Found</h2>
<p class="center">
<?php _e("Sorry, but you are looking for something that isn't here."); ?></p>
else :åå¥ç¨æ¥å¤çæä¸é¢çhave_posts()è¿å为falseçæ åµãå°±æ¯è¯´elseåç代ç ä» ä» ç¨æ¥å¤ç没æå¸åæ¶çæ åµãåªæå½è®¿é®è è¯å¾è®¿é®çæä¸å¤©æ²¡æå¸åï¼æè æç´¢æ¶æ²¡æç¬¦åæ¡ä»¶çå¸åæ¶ï¼è¿ç§æ 嵿ä¼åçã
<?php endif; ?>
è¿éç»æè¿ä¸ªæ¡ä»¶å¤æï¼â妿æå¸åï¼do thisï¼å¦å没æï¼do thatâãæ¡ä»¶å¤æç»æåï¼ç¼ºçç index.php æ¨¡æ¿æ¥ä¸æ¥ä¼å å«sidebarï¼ä»¥åæåç footerã
å ¶å®æ¨¡æ¿æä»¶ä¸ç Loop
WordPresså 许使ç¨ä¸åçæ¨¡æ¿æä»¶éè¿åç§ä¸åçæ¹æ³æ¥æ¾ç¤º blogãå¨WordPress缺ç主é¢ä¸ï¼æä¸åçæ¨¡æ¿æä»¶æ¥åå«å¯¹åº ç´¢å¼æµè§ï¼åç±»æµè§ï¼å½æ¡£æµè§ï¼å°±åæµè§åç¬çå¸å䏿 ·ãè¿æ¯ä¸ä¸ªæä»¶é½ä¼ç¨å°The Loopï¼ä½æ ¼å¼ç¨å¾®ä¸åï¼å°±è¡template tagsçç¨æ³ä¹ææä¸å䏿 ·.
å¯¹äºæ²¡æåç¬çæ¨¡æ¿æä»¶çï¼WordPressä¼ç¼ºç使ç¨index.phpã妿ä¸ä¸ªè®¿é®è æµè§åç¬ä¸ä¸ªå¸åï¼WordPressä¼é¦å 寻æ¾single.phpæä»¶ãæä»¶å¦æåå¨ï¼å°±éè¿å®æ¥å±ç¤ºå¸åã妿ä¸åå¨ï¼å°±ä½¿ç¨index.phpæ¥å±ç¤ºãè¿è¢«ç§°ä¸ºTemplate Hierarchyãï¼æ¨¡æ¿ç»§æ¿ï¼è¿ä¸ªè¯C++é常è§ï¼è®°ä¸æ¸ æ¯éè½½è¿æ¯ç»§æ¿äºãï¼
å¦æä½ å¨è®¾è®¡èªå·±çTheme, å¦ä¹ ä¸ä¸ç¼ºç主é¢çæ¨¡æ¿æä»¶ä¼æ¯ä¸ªå¾å¥½çèµ·ç¹ã使ç¨ä½ èªå·±ä¸»é¢çindex.phpä½ä¸ºå ¶å®æ¨¡æ¿çæ ·æ¬ä¹æ¯ä¸ªä¸éç主æãè³å°è¿æ ·ä¼ç»ä½ ä¸ä¸ªå·²ç¥å¯ä»¥æ£å¸¸è¿è½¬ç页é¢ï¼å¨æ¤åºç¡ä¸ä½ å¯ä»¥ä¸æä¿®ä¿®è¡¥è¡¥ã
ä¸åç彿¡£ï¼archiveï¼æ ¼å¼
彿¡£å°±æ¯ä¸ä¸ªææåå²å¸åç大æç©ãç¼ºçæ åµä¸ï¼æ¯æç §æ¶é´ææè¿çå¸åæ¾ç¤ºå¨é¦é¡µä¸ãå½è®¿é®è ç¹å»'彿¡£'龿¥æ¶ï¼æè æå·¥éå®äºä¸ä¸ªç¹å®æ¥æ(http://www.example.com/blog/index.php?m=200504 æ http://www.example.com/blog/2005/04 ç¨äºéå®2005å¹´4æä»½çææå¸å), WordPress 伿¾ç¤ºä¸ä¸ª 彿¡£ è§å¾ãç¼ºçæ åµä¸ï¼å½æ¡£ä½¿ç¨index.phpï¼ä»¥æ¤å®çèµ·æ¥è·ä½ ç页é¢ä¸æ ·ï¼åªæ¯æ¾ç¤ºçæ¯2005å¹´4æçå¸åã
WordPresså±ç¤ºå½æ¡£ è§å¾æ¶ï¼ä»ä¼å¯»æ¾ä½ ç主é¢ç®å½ä¸çarchive.phpæ¨¡æ¿æä»¶ãå¦æä½ å¸æä½ ç彿¡£çèµ·æ¥å主页é¢é£æ ¼ä¸è´ï¼åªéç®åçæindex.php copyæarchive.phpï¼ç¶å对 archive.php åäºå¿ è¦ä¿®æ¹å°±è¡äºï¼
举个ä¾åï¼å¦æä½ å¸æä½ ç彿¡£åè¡¨åªæ¯æ¾ç¤ºå¸åæ é¢ï¼ä¸æ¾ç¤ºå 容ï¼é£å°±åä¸é¢è¿æ ·åï¼
<?php get_header(); ?>
<div id="content" class="narrowcolumn">
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class="post">
<h2 id="post-<?php the_ID(); ?>">
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
<small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>
</div>
<?php endwhile; ?>
<div class="navigation">
<div class="alignleft">
<?php posts_nav_link('','','« Previous Entries') ?>
</div>
<div class="alignright">
<?php posts_nav_link('','Next Entries »','') ?>
</div>
</div>
<?php else : ?>
<h2 class="center">Not Found</h2>
<p class="center"><?php _e("Sorry, but you are looking for something that isn't here."); ?></p>
<?php endif; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
ä¸åçåç±»ï¼categoryï¼æ ¼å¼
å°±å彿¡£è§å¾ä¸æ ·ï¼WordPressä¹ä¼å¯»æ¾åç¬çåç±»è§å¾æ¨¡æ¿æä»¶ãå¦æè®¿é®è ç¹å»æä¸ªåç±»é¾æ¥ï¼ä»å°±ä¼çå°åç±»è§å¾ãWordPress伿 ¹æ®blogæ¯é¡µæ¾ç¤ºå¸åæ°éç缺ç设置ï¼ä¸ºè¿ä¸ªåç±»ä¸çææå¸åæå»ºä¸ä¸ªLoopã
è¦ä½¿ä½ çåç±»è§å¾åindexè§å¾ææä¸åï¼æ·è´index.phpæcategory.phpã对äºä¸ä¸ªåç±»è§å¾ï¼æ²¡æå¿ è¦å¨æ¯ä¸ªåç±»æ¡ç®ä¸æææå¸åä¹ååºæ¥ï¼æä»¥æä»¬è¦ç§»é¤è¯¥é¨åãä½ä¸ºæ¿æ¢ï¼æä»¬ä¼å¨å¨é¡µé¢é¡¶ç«¯å£°æåç±»ã
<?php get_header(); ?>
<div id="content" class="narrowcolumn">
<p>
<strong>
<?php single_cat_title('Currently browsing '); ?>
</strong><br />
<?php echo category_description(); ?>
</p>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class="post">
<h2 id="post-<?php the_ID(); ?>">
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>">
<?php the_title(); ?></a></h2>
<small>
<?php the_time('F jS, Y') ?>
<!-- by <?php the_author() ?> -->
</small>
</div>
<?php endwhile; ?>
<div class="navigation">
<div class="alignleft">
<?php posts_nav_link('','','« Previous Entries') ?>
</div>
<div class="alignright">
<?php posts_nav_link('','Next Entries »','') ?>
</div>
</div>
<?php else : ?>
<h2 class="center">Not Found</h2>
<p class="center"><?php _e("Sorry, but you are looking for something that isn't here."); ?></p>
<?php endif; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
为ä¸åå类设置ä¸åæ ¼å¼
æ£å¦åé¢å¯¹Template Hierarchy 模æ¿ç»§æ¿çæè¿°ï¼ä¸ºæ¯ä¸ªåç±»å建åç¬çæ¨¡æ¿æä»¶æ¯å®å ¨å¯è½çãæææä½æ 鿝å½åä¸ä¸ªcategory-X.phpæä»¶ï¼å ¶ä¸X表示å类项ç®çIDå·ã请ä»ç»èèä½ æ¯å¦éè¦ä¸ºä¸ä¸ªæå®åç±»å建ä¸ä¸ªå ¨æ°ç模æ¿ã
让æä»¬åè®¾è¿æ ·ä¸¤ä¸ªåç±»"Plants" å"Flowers"ï¼IDå·åå«ä¸º3å4ãä½ å¨ç¹å»æµè§ä¸ä¸ä¸ªå¸åæ¶ï¼å¯è½å¸æå¨plantæfloweråç±»ä¸çæ¯ä¸ªå¸åæ é¢ä¸é½ä¼å¸¦ä¸ä¸å¹ å¾çãä½ å¯ä»¥è¿æ ·ä½ï¼
- 使ç¨ä¸¤ä¸ªä¸åæä»¶ï¼category-3.php å category-4.phpï¼æ¯ä¸ªåç±»ä¸çå¸åæ é¢éè¦åèªçimg æ è®°ã
- å¨ category.php æä»¶ä¸æå»ºä¸ä¸ªæ¡ä»¶æµè¯ï¼å¤æå¦æå½åå类为"Plants" æ "Flowers" æ¶ï¼æ¾ç¤ºå¯¹åºçå¾çï¼
<?php if (in_category('3') ):
// we're in the Plants category, so show a plant ?>
<img src='/images/plant.png' alt='a plant' />
<?php } elseif (in_category('4') ):
// we're in the Flowers category, so show a flower ?>
<img src='/images/flower.png' alt='a pretty flower' />
<?php endif; // end the if, no images for other other categories ?>
å¦æä½ åæ·»å äºä¸ä¸ªåç±»ï¼"Cars"ï¼æè®¸ä½ å¸æç¨ä¸ç§é常å¼äººæ³¨ç®çæ¹å¼æ¾ç¤ºï¼é£ä¹ä¸ä¸ªåç¬çcategory-X.phpæä»¶æ¾ç¶æ´ä¸ºåéã
为ä¸åçå类设置ä¸åç CSS
许å¤ç¨æ·å¸æä¸ºç¹å®çåç±»å建ç¹å®çä¸ä¸ªCSSæä»¶ãè¿åæ ·æ¯å¾å®¹æå®ç°çãéè¦çä¸ç¹æ¯è¦è®°ä½æ ·å¼è¡¨ï¼stylesheetsï¼æ¯å¨ä¸ä¸ªHTMLææ¡£ç<head>é¨åå®ä¹åè¢«è½½å ¥çãWordPress使ç¨header.phpæ¥å®æè¿ä¸ªå¨ä½ãå¨ç¼ºççheader.phpæä»¶ä¸ï¼æ¥æ¾ä»¥ä¸è¡ï¼
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
And change it to something like this:
<?php if ( in_category('5') ) { // Load special CSS for "Cars" category ?>
<link rel="stylesheet" href="<?php get_template_directory(); ?>/category-5.css" type="text/css" media="screen" />
<?php } else { ?>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<?php } ?>
æç¤ºï¼ Cars åç±»çæ¨¡æ¿ä½¿ç¨ category-5.css æä»¶æ¥éè½½ï¼overrideï¼é¡µé¢å¸å±ãå¨è¿ä¸ªä¾åä¸ï¼CSS æä»¶ååç±»æ¨¡æ¿æä»¶çå ³èå·²ç»ç¡®å®ï¼å æ¤è¢«æç¡®å½åï¼ä½ çå®é åç±»å½åç¼å·å¯è½ä¸åãä¸ç®¡ææ ·ï¼ä½ åªè¦ç¥é category-5.css å category-5.phpå¹é å°±è¡äºã
åä¸å¸åï¼single postï¼çä¸åæ ¼å¼
彿µåä¸å¸åï¼single postï¼(æpermalink)æ¶ï¼WordPress ä¼ä½¿ç¨single.php模æ¿ï¼å¦æåå¨çè¯ã è¿ä¸é¨åï¼æ¥èªWordPressç缺ç single.php模æ¿ï¼é对å½åå±ç°å¸åæä¾post meta data informationï¼
<p class="postmetadata alt">
<small>
This entry was posted on <?php the_time('l, F jS, Y') ?> at <?php the_time() ?>
and is filed under <?php the_category(', ') ?>.
You can follow any responses to this entry through
the <?php comments_rss_link('RSS 2.0'); ?> feed.
<?php
if (('open' == $post->comment_status) && ('open' == $post->ping_status)) {
// Both Comments and Pings are open
?>
You can <a href="#respond">leave a response</a>, or
<a href="<?php trackback_url(display); ?>">trackback</a>
from your own site.
<?php
} elseif (!('open' == $post->comment_status) && ('open' == $post->ping_status)) {
// Only Pings are Open
?>
Responses are currently closed, but you can
<a href="<?php trackback_url(display); ?> ">trackback</a>
from your own site.
<?php
} elseif (('open' == $post->comment_status) && !('open' == $post->ping_status)) {
// Comments are open, Pings are not
?>
You can skip to the end and leave a response. Pinging is currently not allowed.
<?php
} elseif (!('open' == $post->comment_status) && !('open' == $post->ping_status)) {
// Neither Comments, nor Pings are open
?>
Both comments and pings are currently closed.
<?php
}
edit_post_link('Edit this entry.','',''); ?>
</small>
</p>
è¿ä¸ä¸²ä¿¡æ¯ï¼æ¯å¦ --æå¼æå ³éè¯è®º-- å¹¶ä¸éåç¨å¨ ç´¢å¼ï¼å½æ¡£ï¼ååç±»è§å¾ä¸ï¼è¿ä¹å°±æ¯ä¸ºä»ä¹å®åªè¢«å å«å¨single.phpæ¨¡æ¿æä»¶ä¸ã
å ¶ä» Loop å°æå·§
ç°å¨å¯¹äº WordPress Loop ä½ å·²ç»åºæ¬å ¥é¨äºï¼è®©æä»¬åä¸ºä½ ä»ç»æ´å¤çLoopæå·§ååè½ã
éæé¡µé¢ï¼Front Pageï¼
ä½ æä¹å±ç¤ºä½ çblogä¸åªæ³æ¾å° front pageä¸çä¸è¥¿ï¼é®å¾å¥½ï¼å¯¹äºåªæ³æ¾å° front page æ home page ä¸ï¼ä»¥åç«ç¹ä¸ä»»ä½å ¶ä»å°æ¹ä¸éåå±ç¤ºçä¸è¥¿ï¼æä»¬ç§°ä¹ä¸ºéæé¡µé¢ãä½ çç«ç¹ä¸çfront page æè 说é¦é¡µå¹¶æªæ¯éæçãå®åªæ¯ Loop æé åºæ¥ï¼çèµ·æ¥åæ¯éæçç½¢äºã
è¦åå°è¿ç¹ï¼æ¨¡æ¿æ è®°å½æ°is_home()å°±æä¸ç¨åºäºã
å¨ä½ ç index.php æä»¶ä¸ï¼ä½¿ç¨ if () æ¡ä»¶æµè¯ï¼æ¥æ§å¶è¾åºéå æ£æå 容ï¼
<?php get_header(); ?>
<?php if (is_home()) {
// we're on the home page, so let's show a picture of our new kitten!
echo "<img src='/images/new_kitty.jpg' alt='Our new cat, Rufus!' />";
// and now back to our regularly scheduled home page
} ?>
å½è®¿é®è 访é®çå¹¶éå¸åï¼é¡µé¢ï¼åç±»ï¼ä»¥åæ°æ®çå 容æ¶ï¼is_home()彿°å°±ä¼è¿åtrueï¼å®ç¨æ¥æ§å¶æ¾ç¤ºå¨"home"页é¢ä¸çä¸è¥¿ã
è¦äºè§£æ´å¤ä¿¡æ¯ï¼åèåå»ºéæ Front Page.
åªæ¾ç¤ºæå½ä¿¡æ¯
妿䏿³æ¾ç¤ºå¸åå ¨æï¼èåªæ¯æ¾ç¤ºæå½ä¿¡æ¯ï¼é£æä¸ä¸ªæ´ç®åçæ¹æ³ï¼ç¨the_excerpt()æ¿æ¢ææthe_content()å®ä¾ãå¦æä½ æ²¡æä¸ºå¸åå建æè¦ä¿¡æ¯ï¼è¿ä¸ªå½æ°ä¼èªå¨éåæ¾ç¤ºå¸åç头120个åè¯ã
<div class="entry"> <?php the_excerpt(); ?> </div>
æ ¹æ®å¸åæ°éå³å®æ¾ç¤ºå ¨æè¿æ¯æè¦
In some curcumstances, 䏾便¥è¯´å¨å½æ¡£ï¼archiveï¼é¡µé¢ä¸, å½åªæä¸ä¸ªå¸åæ¶ï¼ä½ ä¼èèæ¾ç¤ºå ¨æï¼èæå¤ä¸ªå¸åæ¶ï¼ä½ ä¼èèæ¾ç¤ºæè¦ãä½ å¯ä»¥å®å¶Loopæ¥å®æè¿ä¸ªåè½ã
<?php if (have_posts()) : ?>
<?php if (($wp_query->post_count) > 1) : ?>
<?php while (have_posts()) : the_post(); ?>
<!-- Do your post header stuff here for excerpts-->
<?php the_excerpt() ?>
<!-- Do your post footer stuff here for excerpts-->
<?php endwhile; ?>
<?php else : ?>
<?php while (have_posts()) : the_post(); ?>
<!-- Do your post header stuff here for single post-->
<?php the_content() ?>
<!-- Do your post footer stuff here for single post-->
<?php endwhile; ?>
<?php endif; ?>
<?php else : ?>
<!-- Stuff to do if there are no posts-->
<?php endif; ?>
å®ä¹ä¸åç Headers/Sidebars/Footers
WordPressæä¾äº<tt>get_header(), get_sidebar(), and get_footer() å æ¬ Tagsä¾ä½ çæ¨¡æ¿æä»¶è°ç¨ãè¿äºå½æ°å¯ä»¥ç®åæ åç header/sidebar/footer çå®ä¹åç¼åãä»»ä½å¯¹è¿äºæ¨¡æ¿æä»¶çä¿®æ¹ä¼ç«å³å½±åå°è®¿é®è çå°ç页é¢å¤è§ï¼å æ¤ä½ 并䏿¯å¨æç®±æä½ã
ä½æçæ¶åä½ å¹¶ä¸éè¦ä¸ä¸ªsidebarãè¿æ¶åªéè¦ç®åçå° get_sidebar() 彿°ä»ä½ çæ¨¡æ¿æä»¶ä¸å»é¤å°±å¯ä»¥ãæ¯å¦ç¼ºç主é¢ä¸ç single.php æ¨¡æ¿æä»¶å°±æ²¡æå å« sidebarã
è¦å®å¶ä¸ªæ§åç sidebarï¼æä¸¤ç§åæ³ã
- å°sidebarçææå å®¹ç´æ¥åå ¥ä½ å¸æå®æ¾ç¤ºçå°æ¹æç¸å ³çæ¨¡æ¿æä»¶ãå¦æä½ æ³è®© category-3æä¸ä¸ªä¸åç sidebarï¼ç¼è¾category-3.phpæä»¶ï¼å å ¥ä¸äºå¿ è¦çHTMLåPHPæ¥å®å¶ä½ çsidebarã
- 使ç¨PHP include 彿°å°å ¶ä»æä»¶å æ¬è¿æ¥ãWordPress çget_sidebar() 彿°åªæ¯ è½½å ¥sidebar.phpæä»¶ãå¦æä½ èªå·±åäºä¸ªæä»¶sideleft.phpï¼ä½ å¯ä»¥è¿æ ·æå®å æ¬è¿æ¥ï¼
<?php include(TEMPLATEPATH . '/sideleft.php'); ?>
åºäºWordPressçæ¨¡æ¿ç»§æ¿Template Hierarchyï¼å¦æä½ æ³å¨å¤ä¸ªæè ä¸åçæ¨¡æ¿ä¸ä½¿ç¨ç¸åç页é¢å ç´ ï¼å¨åä¸ªæ¨¡æ¿æä»¶ä¸ä½¿ç¨ PHPçinclude()彿°å°å°ä»ä»¬å æ¬è¿æ¥ï¼è¿æ¯æä½³çå¤çåæ³ãå¦ææ·»å çå ç´ åªæ¯é对个æä¸ªæ¨¡æ¿æä»¶çï¼é£ä¹ç´æ¥å°ä»æ·»å å°é£ä¸ªæä»¶ä¸ã
æ»ç»
æ¤æåªæ¯ç®åçæ¦è¿°äºä¸ä¸Loopåå ¶åè½ãæç¤ºä¸ä¸ï¼è¦æ³æå»ºä½ èªå·±çWordPress Loopï¼ä¸åèµæºä¼ååæç¨ã
