WordPress常用代码调用大全

后端 2019-10-31T11:06:08 浏览:117

1.基本模板文件

style.css 主题样式文件
index.php 首页模板文件
header.php 头部模板文件
single.php 单篇文章模板文件
archive.php 存档/分类模板文件
searchform.php 搜索表单模板文件
search.php 搜索模板文件
404.php 404模板文件
comments.php 留言模板文件
footer.php 底部模板文件
sidebar.php 侧边栏模板文件
page.php 静态页面模板文件
front-page.php 静态首页模板文件
tag.php 标签存档模板文件
category.php 分类存档模板文件

PS:调用部分:

// 如在index.php调用header.php则使用
<?php get_header() ?>

// 如调用header-v1.php则使用
<?php get_header('v1') ?>

// 当然也可以使用
<?php get_template_part('header-v1') ?>

如果需要对特定的分类使用特定的模板,在模板目录下新建
category-{id}.php,ID模板(如分类目录的ID是 7,那么与之对应的模板文件名就是 category-7.php )
category-{mla}.php,别名模板(如分类目录的别名是 mla,那么与之对应的模板文件名就是 category-mla.php )
如果别名模板和ID模板都找不到,就会使用category.php默认分类模板,如果连这个category.php默认分类模板都没有找到,那么就会使用archive.php 通用归档模板作为分类目录的模板;如果以上模板都没有找到,就会直接使用index.php首页模板作为分类目录的模板。

如果需要对特定的页面使用特定的模板,在模板目录下新建
page-{id}.php,ID模板(如分类目录的ID是 7,那么与之对应的模板文件名就是 page-7.php )
page-{mla}.php,别名模板(如分类目录的别名是 mla,那么与之对应的模板文件名就是 page-mla.php )
如果别名模板和ID模板都找不到,就会使用page.php默认分类模板,如果连这个page.php默认分类模板都没有找到,那么就会使用index.php

2.头部主要函数

// 站点根链接
<?php site_url(); ?> 

// 文章或者静态页面标题
<?php wp_title(); ?> 

// 站点名称
<?php bloginfo('name'); ?> 

// 站点描述
<?php bloginfo('description'); ?> 

// 样式文件所在目录
<?php get_stylesheet_directory(); ?> 

// 样式文件链接
<?php bloginfo('stylesheet_url'); ?> 

// 模板文件所在目录链接
<?php bloginfo('template_url'); ?> 

// WordPress 版本
<?php bloginfo('version'); ?> 

// 网站根链接
<?php bloginfo('url'); ?> 

// html 版本
<?php bloginfo('html_type'); ?> 

// 字符集
<?php bloginfo('charset'); ?> 

3.导航相关

// 默认导航菜单
<?php wp_nav_menu(); ?>

// 指定的导航菜单
<?php wp_nav_menu( array('menu' => 'Project Nav' )); ?>

// 基于分类的导航
<ul id="menu">
<li <?php if(is_home()) { ?> class="current-cat" <?php } ?>>
<a href="<?php bloginfo('home'); ?>">Home</a></li>
<?php wp_list_categories('title_li=&orderby=id');?>
</ul>

// 基于页面的导航
<ul id="menu">
<li <?php if(is_home()) { ?> class="current-page-item" <?php } ?>>
<a href="<?php bloginfo('home'); ?>">Home</a></li>
<?php wp_list_pages('sort_column=menu_order&depth=1&title_li=');?>
</ul>

4.模板函数

// 文章内容
<?php the_content(); ?> 

// 检查是否有文章
<?php if(have_posts()): ?> 

// 显示文章
<?php while(have_posts()): the_post(); ?> 

// 结束循环
<?php endwhile; ?> 

// 结束判断
<?php endif; ?> 

// 头部模板内容
<?php get_header(); ?> 

// 侧边栏模板内容
<?php get_sidebar(); ?> 

// 底部模板内容
<?php get_footer(); ?> 

// 显示时间,格式为:'2020-08-18′
<?php the_time('Y-m-d'); ?> 

// 显示到文章留言的链接
<?php comments_popup_link(); ?> 

// 文章标题
<?php the_title(); ?> 

// 文章链接
<?php the_permalink(); ?> 

// 文章分类
<?php the_category(); ?> 

// 文章作者
<?php the_author(); ?> 

// 文章 ID
<?php the_ID(); ?> 

// 文章编辑链接
<?php edit_post_link(); ?> 

// 友情链接列表
<?php wp_list_bookmarks(); ?>

// 留言模板内容 
<?php comments_template(); ?> 

// 所有页面列表
<?php wp_list_pages(); ?> 

// 所有分类列表
<?php wp_list_categories(); ?> 

// 下一篇文章链接
<?php next_post_link('%link'); ?> 

// 上一篇文章链接
<?php previous_post_list('%link'); ?> 

// 显示文章日历
<?php get_calendar(); ?> 

// 存档链接列表
<?php wp_get_archives(); ?> 

// 上一篇和下一篇文章链接
<?php posts_nav_link(); ?> 

5.category.php 和 page.php 模板的调用

// category.php
<?php if ( have_posts() ) : ?>
	<?php
	while ( have_posts() ) :
		the_post();
		// 获取content-excerpt.php
		get_template_part( 'content', 'excerpt' );
	endwhile;
	// 分页
	the_posts_navigation();
	else :
	get_template_part( 'content', 'none' );
endif;
?>

// content-excerpt.php
<?php if(has_post_thumbnail()):?>
<div class="posts-gallery-img">
    <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank"> 
    <img class="lazyload" data-src="<?php the_post_thumbnail_url(); ?>" width="231" height="173" alt="<?php the_title(); ?>" /> </a>
</div>
<?php else : ?>
<div class="posts-gallery-img">
    <a href="<?php the_permalink(); ?>" title="1<?php the_title();?>" target="_blank"><img class="lazyload" data-src="/skin/img/noimg.jpg" width="231" height="144" alt="<?php the_title();?>" /></a>
</div>
<?php endif; ?>      
<div class="posts-gallery-content">
    <h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
    <div class="posts-gallery-text"><?php the_excerpt(); ?></div>
    <div class="posts-default-info posts-gallery-info">
        <ul>
            <li class="postoriginal hidden-xs"><span><i class="glyphicon glyphicon-user"></i> 原创</span></li>
            <li><i class="glyphicon glyphicon-flag"></i>
            <?php
            $category = get_the_category();
            if($category[0]){
                echo '<a href="'.get_category_link($category[0]->term_id ).'">'.$category[0]->cat_name.'</a>';
            }
            ?>
            </a></li>
            <li><i class="glyphicon glyphicon-time"></i> <?php the_time('Y-m-d'); ?></li>
        </ul>
    </div>
</div>
// page.php
<?php
while ( have_posts() ) :
	the_post();
	get_template_part( 'content', 'page' );
	if ( comments_open() || get_comments_number() ) {
		comments_template();
	}
endwhile; 
?>

// content-page.php
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
	<div class="entry-content">
		<?php
		the_content();

		wp_link_pages(
			array(
				'before' => '<div class="page-links">' . __( 'Pages:', 'twentynineteen' ),
				'after'  => '</div>',
			)
		);
		?>
	</div>
</article>

6.主循环

<?php 
	$args = array(
        'post_type' => 'post',
        'posts_per_page' => '15',
        'offset' => 1,
        'cat' => '2',  
		'orderby' => 'modified',
    ); 
    $query = new WP_Query($args);
    $list = 0;
?>
<?php 
    if ($query->have_posts()) :  while ($query->have_posts()) : $query->the_post();$list++; 
?>
	<?php if($list==1) : ?>
	<div class="class1"></div>
	<?php else : ?>
	<div class="class2"></div>
	<?php endif; ?>
	<div class="url"><?php the_permalink() ?></div>
	<div class="img"><?php the_post_thumbnail(); ?></div>
	<div class="tit"><?php the_title(); ?></div>
	<?php endwhile;else: ?>
	<div class="no">404</div>
<?php 
	endif;
	wp_reset_postdata(); 
?>

备注$args之参数

<?php 
	$args = array(
		// 作者参数
        'author' => '1,2,3', 
        'author_name' => 'mla', 
        
        // 类别参数
        'cat' => 5,	// 参数分类id,如果多个分类 '5,7'
        'category_name' => 'case,news',     
        'category_name' => 'case+news',    
        'category__and' => array( 2, 6 ),  
        'category__in' => array( 2, 6 ),  
        'category__not_in' => array( 2, 6 ),
        
        // 标签参数
        'tag' => 'cooking',                       
        'tag_id' => 5,                            
        'tag__and' => array( 2, 6),       
        'tag__in' => array( 2, 6),          
        'tag__not_in' => array( 2, 6),          
        'tag_slug__and' => array( 'red', 'blue'),
        'tag_slug__in' => array( 'red', 'blue'), 

        //文章和页面参数
        'p' => 1,                              
        'name' => 'hello-world',                
        'page_id' => 1,                         
        'pagename' => 'sample-page',            
        'pagename' => 'contact_us/canada',     
        'post_parent' => 1,                     
        'post_parent__in' => array(1,2,3)       
        'post_parent__not_in' => array(1,2,3),  
        'post__in' => array(1,2,3),            
        'post__not_in' => array(1,2,3),

        //分页参数
        'posts_per_page' => 10,
        'posts_per_archive_page' => 10,
        'nopaging' => false,
        'offset' => 1,

        //排序参数
		'orderby' => 'DESC',
		'orderby' => 'date', 
		/* 
			none、ID、author、title、name、date、modified、parent、rand、comment_count、menu_order、meta_value、meta_value_num、title menu_order(同时排序)、post__in
		*/
	
		//日期参数
		'year' => 2020,
		'monthnum' => 4, 
		'w' =>  25, 
		'day' => 17, 
		'hour' => 13,  
		'minute' => 19, 
		'second' => 30,
		'm' => 201404, 
		'date_query' => array(
			array(
				'year' => 2014,                     
				'month' => 4                       
				'week' => 31                       
				'day' => 5                         
				'hour' => 2                        
				'minute' => 3                      
				'second' => 36                      
				'after'     => 'January 1st, 2013',
				'before'    => array(               
				  'year'  => 2013,                  
				  'month' => 2,                    
				  'day'   => 28,
				),
				'inclusive' => true,  
				'compare' =>  '=',                  
				/*
					'=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN'
				 */
				'column' => 'post_date',
				'relation' => 'AND',
			),
		),
		//自定义字段参数
		'meta_key' => 'key', 
		'meta_value' => 'value',
		'meta_value_num' => 10,
		'meta_compare' => '=',
		'meta_query' => array(
		   'relation' => 'AND',  
		   array(
		     'key' => 'color',          
		     'value' => 'blue'              
		     'type' => 'CHAR',    
		     'compare' => '=' 
		   ),
		   array(
		     'key' => 'price',
		     'value' => array( 1,200 ),
		     'compare' => 'NOT LIKE'
		   )
		),

		//ACF自定义字段
		'meta_query'    => [
	        [
	            'key'     => 'type_id', // ACF field id
	            'value'   => '"News"',  // ACF field value
	            'compare' => 'LIKE'
	        ] 
	    ],
    ); 
    $query = new WP_Query($args);
    $list = 0;
?>