WordPress 常用模板标签

判断是否为首页

  1. <title><?php
  2. if (is_home()||is_search()) { bloginfo('name'); }
  3. else{wp_title(''); echo ' - '; bloginfo('name');}
  4. ?></title>

标题

<?php bloginfo('name'); ?>

日志/页面标题

<?php wp_title(); ?>

风格地址

<?php echo get_template_directory_uri(); ?>

<!-- 用法比如 -->
<script src="<?php echo get_template_directory_uri(); ?>/js/responsiveslides.min.js"></script>

ANYWHERE

首页地址

<?php echo home_url(); ?>

<?php echo home_url();//输出:http://www.example.com ?>
<?php echo home_url( '/' );//输出:http://www.example.com/ ?>
<?php echo home_url( '/', 'https' );//输出:https://www.example.com/ ?>
<?php echo home_url( 'example', 'relative' );//输出:/example ?>

页面必备共享元素

<?php get_header(); ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
<?php get_template_part( 'content', 'loop' );// 调用 content-loop.php,没有则调用 content.php ?>

导航栏

① functions.php 中加入:

if(function_exists('register_nav_menus')){
    register_nav_menus(array('header-menu' => __( '导航自定义菜单' ),
    'footer-menu' => __( '页角自定义菜单' ),
    'sider-menu' => __('侧边栏菜单')));
}

② 主题中调用:

<?php wp_nav_menu( array('container_class' => 'container_class',’menu_class'=>’menu’));?>

文章列表

列表循环

<!-- 显示所有文章,将showposts设为-1 -->
<!-- 去掉第一行则显示当前分类的列表循环 -->
<?php query_posts('cat=6&showposts=6'); ?>
<?php while (have_posts()) : the_post(); ?>

<!-- 添加内容 -->

<?php endwhile; ?>

文章列表常用元素

<?php the_title(); ?>
<?php the_content(); ?>
<?php the_author(); ?> <!-- 作者 -->
<?php the_permalink() ?> <!-- 永久地址 -->
<?php the_post_thumbnail();?> <!-- 包括 img 标签 -->
<?php $full_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full'); echo $full_image_url[0]; ?> <!-- 只调用连接URL -->
<?php the_excerpt(); ?> <!-- 摘要包括 p 标签 -->
<?php the_category(', ') ?> <!-- 所属分类,带连接 -->
<?php single_cat_title(); ?> <!-- 所属分类,仅名称 -->
<?php get_archives(‘postbypost’, 10); ?> <!-- 全站更新 -->

日期的调用

<?php the_time('Y-m-d'); ?>

引号里的内容替换:

  • a 代表小写的英语的上下午,如am、pm
  • A 代表大写的英语的上下午,如AM、PM
  • d 代表英语的日期(小于10仍为两位数写法),如05、12
  • D 代表中文的星期,如五、七
  • F 代表中文的月份(包括“月”这个字),如五月、十二月
  • g 代表英语的小时(小于10为一位数写法),如5、12
  • G 代表英语的小时(小于10仍为两位数写法),如05、12
  • h 代表英语的分钟(小于10为一位数写法),如5、12
  • H 代表英语的分钟(小于10仍为两位数写法),如05、12
  • j 代表英语的日期(小于10为一位数写法),如05、12
  • l 代表中文的星期(包括“星期”这两个字),如星期五、星期七
  • m 代表英语的月份(小于10仍为两位数写法),如05、12
  • M 代表英语的月份(以单词的形式显示),如Jun
  • n 代表英语的月份(小于10为一位数写法),如5、12
  • O 代表英语的时区,如+0800
  • r 代表完整的日期时间,如Tue, 06 Jun 2006 18:37:11 +0800
  • S 代表日期的序数后缀,如st、th
  • T 代表英语的时区(以单词的形式显示),如CST
  • w 代表英语的星期,如5、7
  • W 代表周数,如23
  • y 代表两位数年份,如07、08
  • Y 代表四位数年份,如2007、2008
  • z 代表天数,如156

文章页

内容循环

<?php
    while ( have_posts() ) : the_post();
    the_content();
    endwhile;
?>

<?php while ( have_posts() ) : the_post(); ?>
......
<?php endwhile; ?>

上下篇

<!-- 全站范围上下篇 -->
<?php previous_post_link('上一篇: %link') ?>
<?php next_post_link('下一篇: %link') ?>

<!-- 全站范围同时调用上下篇 -->
<?php posts_nav_link(); ?>

<!-- 同一分类上下篇 -->
<?php
    $categories = get_the_category();
    $categoryIDS = array();
    foreach ($categories as $category) {
        array_push($categoryIDS, $category->term_id);
    }
    $categoryIDS = implode(",", $categoryIDS);
    if (get_previous_post($categoryIDS)) {
        previous_post_link('<p>上一篇: %link</p>','%title',true);
    } else {
        echo '已是最新文章';
    }
    if (get_next_post($categoryIDS)) {
        next_post_link('<p>下一篇: %link</p>','%title',true);
    } else {
        echo '已是最后文章';
    }

?>

调用页码

<?php   
global $wp_query;   

$big = 999999999; // need an unlikely integer   

echo paginate_links( array(   
    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),   
    'format' => '?paged=%#%',   
    'current' => max( 1, get_query_var('paged') ),   
    'total' => $wp_query->max_num_pages   
) );   
?>

其他内容

<?php get_calendar(); ?> <!-- 日历 -->
<?php wp_get_archives() ?> <!-- 日期存档列表 -->
<?php echo get_post_meta($post->ID, "mood", $single = true); ?> <!-- 自定义字段mood -->