前言:代码参考 ,如无特别说明,下面所说的文件,都在 主题目录下。

 WordPress 主题教程 #3:开始 Index.php - WordPress 果酱

https://github.com/laughing2/wp-theme-tutorial

主题制作步骤

1. 制作好 前端页面

2.  在你本地安装的 WordPress 主题文件夹下 (应该在 wordpress/wp-content/themes),创建一个新的文件夹,命名为你的主题名 比如 ( mystyle)

3. 上传 index.php (前端首页, 包括所引入的文件,如css、js的文件,都原来的相对路径,放在主题目录下,这里是 mystyle )

     修改原来的相对路径 ( 将原来的相对路径 添加前缀代码 <?php bloginfo('template_url');?>/ )

4. 上传 style.css ( wordpress 主题样式)

5. 把index.php 页头部份,制作成 header.php ,并上传。

6. index.php  文件, 用  <?php get_header(); ?>     ,将 页头部份引入。

7. 把index.php 页脚部份,制作成 footer.php ,并上传。

8.  index.php  文件, 用  <?php get_footer(); ?>    ,将 页脚部份引入。

9.首页常用函数 

9.1 显示某个分类的名称   注: $my_index_a1_cat   为 分类的 ID

<?php $my_index_a1_cat = 6;?>
<?php  echo get_cat_name($my_index_a1_cat); ?>

9.2 某个分类列表链接 

<?php echo get_category_link($my_index_a1_cat);?>

9.3 显示某个分类前5篇文章  如:分类ID为6,的前5篇文章

<?php $posts = get_posts( "category=6&numberposts=5" ); ?>
<?php if( $posts ) : ?>
<ul><?php foreach( $posts as $post ) : setup_postdata( $post ); ?>
<li class="my-index-arlist-paddingtop">
<a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php the_title(); ?>”><?php ODD_title(31); ?></a>
</li>
<div class="my-xuxian"></div>
<?php endforeach; ?>
</ul>
<?php endif; ?>

9.4 自定义显示标题的字数 。  注:在主题的 functions.php 文件中添加,方便其他地方调用。

//自定义显示文章标题的字数长度
//然后在需要调用文章标题的地方使用下面的代码即可:
//<!--?php ODD_title(20); ?-->
function ODD_title($char) {
         $title = get_the_title($post->ID);
         //$title = substr($title,0,$char);
         //$title = mb_substr($title,0,$char,'utf-8');
         $content_str = $title;
		 $title = mb_substr($title,0,$char,'utf-8');
		 if (mb_strlen($content_str,'utf-8') > $char ) {
			$title = mb_substr($title,0,$char,'utf-8').'…';
		 }
         echo $title;
}

9.5 更多链接。 注:这里更多,指向某个分类的文章列表

<div class="my-index-more"><a href="<?php echo get_category_link($my_index_a1_cat);?>" >[更多]</a> </div>

9.6 显示某一篇文章的标题和链接

<h2><a href="<?php echo get_permalink(152); ?>"><?php echo get_post($index_id)->post_title; ?></a></h2>

9.7 显示某一篇文章的内容 。注:这里没有用到 functions.php

<p>
  <?php query_posts( 'showposts=5&p=152'); ?>
    <?php while (have_posts()) : the_post(); ?>
      <?php 
        //the_content(); 
        the_excerpt(); 
        //echo mb_strimwidth(strip_tags(apply_filters( 'the_content', the_content()), 0, 20, "...")); 
        ?>
        <?php endwhile;wp_reset_query();?>
</p>

9.8 显示当前文章作者

<?php echo get_the_author();?>

 9.9  显示当前文章发布时间

<?php echo the_time(get_option('date_format'));?>

9.10 当前文章所属分类名称和所属分类链接.(这里要用到 functions.php 里的函数)

<a href="<?php echo get_category_link(get_current_category_id());?>"><?php echo get_current_category_name();?></a>

9.11 用WordPress的原生功能实现 ,获取WordPress网站当前URL链接地址

$current_url = home_url(add_query_arg(array()));

9.12  获取首页网站链接

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

10. functions.php 常用功能

<?php
//让WordPress首页自动显示文章第一张图片 spricamacuk
function catch_that_image() {
      global $post, $posts;
      $first_img = '';
      ob_start();
      ob_end_clean();
      $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
      $first_img = $matches [1] [0];
      if(empty($first_img)){ //Defines a default image
        $first_img = "images/default.jpg";
      }
      return $first_img;
 }

//自定义显示文章标题的字数长度
//然后在需要调用文章标题的地方使用下面的代码即可:
//<!--?php ODD_title(20); ?-->
function ODD_title($char) {
         $title = get_the_title($post->ID);
         //$title = substr($title,0,$char);
         //$title = mb_substr($title,0,$char,'utf-8');
         $content_str = $title;
		 $title = mb_substr($title,0,$char,'utf-8');
		 if (mb_strlen($content_str,'utf-8') > $char ) {
			$title = mb_substr($title,0,$char,'utf-8').'…';
		 }
         echo $title;
}


//控制wordpress博客首页博文显示内容字数
function Excerpt_Content($max_length,$content_id) {
// $title_str = get_the_title();
// $content_str = get_post( $content_id )->post_content;
$content_str =	get_post( $content_id )->post_excerpt;
if (mb_strlen($content_str,'utf-8') > $max_length ) {
$content_str = mb_substr($content_str,0,$max_length,'utf-8').'…';
}
return $content_str;
}

//获得当前分类目录 ID
function get_current_category_id() {
	$category = get_the_category();//默认获取当前所属分类
    return $category[0]->cat_ID; //输出分类 id
}

//获得当前分类目录 名称
function get_current_category_name() {
	$category = get_the_category();//默认获取当前所属分类
    return $category[0]->cat_name ; //输出分类 名称
}
?>

11. 404页

<?php get_header(); ?>
  <div class="campl-row campl-content campl-recessed-content">
    <div class="campl-wrap clearfix">
      <div class="campl-column9 campl-main-content">
        <h1 class="page-title" style="text-align: center">
          <?php _e( '404!页面找不到. ', 'spricamacuk' ); ?></h1>
        <!--<p><?php _e( '页面找不到. 重新搜索?', 'spricamacuk' ); ?></p>
        <?php get_search_form(); ?>
        -->
        <p>
          <br />
          <br />
          <br />
          <br />
          <br />
          <br />
          <br />
          <br /></p>
      </div>
    </div>
  </div>
  <!-- footer -->
  <?php get_footer(); ?>

12. 文章归档 (archive.php)

<?php get_header(); ?>
  <div class="campl-row campl-content campl-recessed-content">
    <div class="campl-wrap clearfix">
      <div class="campl-column9 campl-main-content">
        <!-- 输入主循环代码 -->
        <?php query_posts( 'showposts=10&cat=6'); ?>
          <?php if(have_posts()) : ?>
            <h1>
              <?php echo single_cat_title( '', false ); ?></h1>
            <?php while(have_posts()) : the_post(); ?>
              <div class="post" id="post-<?php the_ID();?>">
                <li style="padding-top:3px;font-size:18px;line-height: 50px;">
                  <a href="<?php the_permalink(); ?>" target="_blank">
                    <?php the_title();?>
                      <?php the_time( 'Y-m-d'); ?></a>
                </li>
              </div>
              <?php endwhile; ?>
                <?php else : ?>
                  <div class="post">
                    <h2>
                      <?php _e( 'Not Found'); ?></h2>
                  </div>
                  <?php endif; ?></div>
      <style>.homepage .campl-recessed-secondary-content { margin-top: -5%; }</style>
      <div class="campl-column3 campl-secondary-content campl-recessed-secondary-content">
        <!-- sidebar -->
        <?php get_sidebar(); ?></div>
    </div>
  </div>
  <!-- 底部 -->
  <?php get_footer(); ?></div>
    </body>
    
    </html>

13. 分类目录模板 (category.php)

<?php get_header(); ?>
  <div class="campl-row campl-content campl-recessed-content">
    <div class="campl-wrap clearfix">
      <div class="campl-column9 campl-main-content">
        <!-- 输入主循环代码 -->
        <?php if(have_posts()) : ?>
          <?php $category=g et_the_category(); ?>
            <h1>
              <?php echo $category[0]->cat_name; ?></h1>
            <?php while(have_posts()) : the_post(); ?>
              <div class="post" id="post-<?php the_ID();?>">
                <h2>
                  <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                    <?php the_title(); ?></a>
                </h2>
                <div class="entry">
                  <?php the_excerpt(); ?></div>
              </div>
              <?php endwhile; ?>
                <?php else : ?>
                  <div class="post">
                    <h2>
                      <?php _e( 'Not Found'); ?></h2>
                  </div>
                  <?php endif; ?></div>
      <style>.homepage .campl-recessed-secondary-content { margin-top: -5%; }</style>
      <div class="campl-column3 campl-secondary-content campl-recessed-secondary-content">
        <!-- sidebar -->
        <?php get_sidebar(); ?></div>
    </div>
  </div>
  <!-- 底部 -->
  <?php get_footer(); ?>

14.  单独页面 (page.php)

<?php get_header(); ?>
  <div id="container">
    <!-- 输入主循环代码 -->
    <?php if(have_posts()) : ?>
      <?php while(have_posts()) : the_post(); ?>
        <div class="post" id="post-<?php the_ID();?>">
          <h2>
            <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
              <?php the_title(); ?></a>
          </h2>
          <div class="entry">
            <?php the_content(); ?>
              <!-- 定制 page.php -->
              <?php link_pages( '<strong>Pages:</strong>', '', 'number'); ?>
                <?php edit_post_link( 'Edit', '', ''); ?></div>
        </div>
        <?php endwhile; ?>
          <?php else : ?>
            <div class="post">
              <h2>
                <?php _e( 'Not Found'); ?></h2>
            </div>
            <?php endif; ?></div>
  <?php get_sidebar(); ?>
    <!-- 底部 -->
    <?php get_footer(); ?></div>
      </body>
      
      </html>

15. 搜索结果 (search.php)

<?php get_header(); ?>
  <div class="campl-row campl-content campl-recessed-content">
    <div class="campl-wrap clearfix">
      <div class="campl-column9 campl-main-content">
        <!-- 输入主循环代码 -->
        <?php if(have_posts()) : ?>
          <?php while(have_posts()) : the_post(); ?>
            <div class="post" id="post-<?php the_ID();?>">
              <h2>
                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                  <?php the_title(); ?></a>
              </h2>
              <div class="entry">
                <?php the_excerpt(); ?></div>
            </div>
            <?php endwhile; ?>
              <?php else : ?>
                <div class="post">
                  <h2>
                    <?php _e( 'Not Found'); ?></h2>
                </div>
                <?php endif; ?></div>
      <style>.homepage .campl-recessed-secondary-content { margin-top: -5%; }</style>
      <div class="campl-column3 campl-secondary-content campl-recessed-secondary-content">
        <!-- sidebar -->
        <?php get_sidebar(); ?></div>
    </div>
  </div>
  <!-- 底部 -->
  <?php get_footer(); ?></div>
    </body>
    
    </html>

16. 搜索框 (searchform.php)

<form method="get" id="searchform" action="<?php bloginfo('home'); ?>/">
  <div>
    <input type="text" value="<?php echo wp_specialchars($s, 1); ?>" name="s" id="s" size="15" />
    <br />
    <input type="submit" id="searchsubmit" value="Search" /></div>
</form>

17. 文章页面 (single.php)

<?php get_header(); ?>
  <div class="campl-row campl-content campl-recessed-content">
    <div class="campl-wrap clearfix">
      <div class="campl-column9 campl-main-content">
        <?php if(have_posts()) : ?>
          <?php while(have_posts()) : the_post(); ?>
            <div class="campl-content-container campl-sub-column-right-border">
              <h2>
                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                  <?php the_title(); ?></a>
              </h2>
              <p>
                <?php the_content(); ?>
                  <?php link_pages( '<strong>Pages:</strong>', '', 'number'); ?></p>
            </div>
            <?php endwhile; ?>
              <?php else : ?>
                <div class="post">
                  <h2>
                    <?php _e( 'Not Found'); ?></h2>
                </div>
                <?php endif; ?></div>
      <style>.homepage .campl-recessed-secondary-content { margin-top: -5%; }</style>
      <div class="campl-column3 campl-secondary-content campl-recessed-secondary-content">
        <!-- sidebar -->
        <?php get_sidebar(); ?></div>
    </div>
  </div>
  <!-- footer -->
  <?php get_footer(); ?>

X. 更新目录权限 chmod -R 777 wordpress

   参考: 本地搭建wp,更新升级时需要ftp的解决办法-百度经验