wordpress文章类型,主题开发基础
分类:多线程

使用wordpress禁止输出指定类别的文章可以给get_posts()函数传个数组参数,如下:

简单来讲函数wp_tag_cloud()就是用来调标签云的,标签云tag关联了相关的文章,我们可以根据标签云的tag来查看相关文章,这个是非常方便用户查看相关文章的,那么标签云的展示方式就可以通过设置函数wp_tag_cloud()的相关参数来控制,比如展示多少个标签云,标签云的大小,标签云的排序,排序某个标签tag等等,更加具体如下:
图片 1
最简单的调用标签云的方法:

一、循环的基本结构:

对于所有独立的单页面内容,例如wordpress的文章、页面。它们都属于wordpress的一种类型的文章。
wordpress“注册”一种新的文章类型使用的函数是:register_post_type(),打开你的wordpress的include文件夹下面的post.php文件。看第一个函数create_initial_post_types,里面调用了几次register_post_type函数,例如:

复制代码代码如下:

  1. <?php wp_tag_cloud(”); ?>

<?php if( have_post() ) : ?>

  1. register_post_type( 'post', array(   
  2.         'labels' => array(   
  3.             'name_admin_bar' => _x( 'Post', 'add new on admin bar' ),   
  4.         ),   
  5.         'public'  => true,   
  6.         '_builtin' => true, /* internal use only. don't use this when registering your own post type. */  
  7.         '_edit_link' => 'post.php?post=%d', /* internal use only. don't use this when registering your own post type. */  
  8.         'capability_type' => 'post',   
  9.         'map_meta_cap' => true,   
  10.         'hierarchical' => false,   
  11.         'rewrite' => false,   
  12.         'query_var' => false,   
  13.         'delete_with_user' => true,   
  14.         'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ),   
  15.     ) );  

随机呈现

<>

其中:

复制代码代码如下:
$args=array(
'numberposts'=>16,
'category'=>'-9,-12',
'orderby'=>'rand'
);

键名numberposts表示取出的文章数,category表示要显示的文章的类别ID,负数代表不显示,以字符串的形式用逗号隔开,orderby这里表示随机取出文章。
效果如小谈博客首页右侧“随机呈现”效果,去掉了php类别的文章显示,因为下面有了一个“php专栏”,避免重复。
get_posts()函数完整的参数列表:

复制代码代码如下:

'posts_per_page' => 5,
'numberposts' => 5,
'offset' => 0,
'category' => '',
'orderby' => 'post_date',
'order' => 'DESC',
'include' => '',
'exclude' => '',
'meta_key' => '',
'meta_value' => '',
'post_type' => 'post',
'post_mime_type' => '',
'post_parent' => '',
'post_status' => 'publish',
'suppress_filters' => true );
?>

可以自由设置参数的方法:

     <?php while( have_post() ) : the_post(); ?>

这是注册wordpress的文章、也就是post,下面注册的文章类型分别有:postpageattachmentrevisionnav_menu_item,分别为:文章、页面、附件、修订版、菜单项。它们在数据表中也都存储在post表中,用一个post_type属性哎区分。
我们也可以使用这个函数注册一个新的表现形式的文章类型。
在CMS系统中,有了文章,还得有将文章归档、分类。
wordpress系统自带的分类法为:分类目录、标签。
注意,在wordpress中标签也是一种独立的分类法,跟分类目录可以等同。
与文章类型一样,wordpress使用函数register_taxonomy来注册分类方法。打开你的wp-includes文件夹下面的taxonomy.php文件,也在第一个函数中,

  1. <?php wp_tag_cloud(‘number=40&orderby=count&order=DESC&smallest=8&largest=15&unit=px’); ?>

          <?php the_title(); ?>

  1. register_taxonomy( 'category', 'post', array(   
  2.         'hierarchical' => true,   
  3.         'query_var' => 'category_name',   
  4.         'rewrite' => $rewrite['category'],   
  5.         'public' => true,   
  6.         'show_ui' => true,   
  7.         '_builtin' => true,   
  8.     ) );  

各参数解释:
number表示显示多少个标签,比如40个
orderby表示调用标签的排序,默认为“name”按名称排序,“count”则按关联的文章数量排列;
order表示排序的方式DESC表示倒序,即数量越多的在前面,通常采用倒序,因为tag文章量越多,说明tag也重要,用户浏览的几率就越大,ASC表示正序,RAND表示随机
smallest表示标签文字字号的大小,比如最小是8
largest表示标签文字字号的大小,比如最大是15
unit表示标签文字字号的单位,可以为px、em、pt、百分比等,通常是用PX
还有两个可以设置的参数
exclude表示排除某些标签
include表示只包含某些标签

      <?php endwhile; ?>

上面代码是注册wordpress默认的分类方法:分类-category。后面还依次添加了分类法:标签-post_tag、菜单-nav_menu、链接分类-link_category、文章形式-post_format。

wp_tag_cloud()标签云函数默认参数如下:

<?php endif; ?>

我想在cms中,主要内容就是“文章”-“分类”。

  1. function wp_tag_cloud( $args = '' ) {
  2. $defaults = array(
  3. 'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
  4. 'format' => 'flat', 'separator' => "n", 'orderby' => 'name', 'order' => 'ASC',
  5. 'exclude' => '', 'include' => '', 'link' => 'view', 'taxonomy' => 'post_tag', 'post_type' => '', 'echo' => true
  6. )

说明:1.have_post()函数:判断当前页面是否还有要显示的文章

我们在以后的文章中再详细介绍上面注册文章类型和分类法函数的详细用法。敬请关注。

wp_tag_cloud()标签云函数位置在 wp-includes/category-template.php

2.the_post()函数:准备好要显示的文章内容

相信通过这篇文章的解释,大家对标签云函数wp_tag_cloud()的使用方法已经有比较深入的了解了,从此wordpress主题开发更加熟悉了,一步步积累,量变达到质变。

3.the_title()函数:显示文章的标题,还有类似的函数,也叫模版标签  

注:你可以在循环里添加任何你想显示的东西,文章的正文,特色图像,发布日期,作者等等。找到合适的模版标签,放在循环里,再加上点自己的设计。

相关资源:

http://codex.wordpress.org/Template_Tags

http://codex.wordpress.org/Function_Reference/have_posts

http://codex.wordpress.org/Function_Reference/the_post

http://codex.wordpress.org/The_Loop

二、条件判断

if...else    <?php if() : ?> ... <?php else: ?> ... <?php endif; ?>

in_category(id)  以文章分类作为判断条件

三、自定义查询

      前面我们在循环里使用了 WordPress 默认的查询来显示相关的内容,默认的查询会使用当前页面的路径作为查询的参数,然后到数据库里帮我们找到相应的内容。也就是在首页上会显示所有首页上的东西,在分类页面会显示属于这个分类的文章,在文章页面只会显示当前这个文章的内容。

WP_Query()  http://codex.wordpress.org/Class_Reference/WP_Query

<?php if ( have_posts() ): ?>

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

<p><?php the_title(); ?></p>

<?php endwhile; ?>

<?php endif; ?>

<?php

$myqueryargs = array(

'post_type' => 'post',

'posts_per_page' => 10,

'orderby' => 'date',

'order' => 'ASC',

'category__in' => array( 8,15 ),

);

?>

<?php $myquery = new WP_Query( $myqueryargs ); ?>

<?php if ( $myquery -> have_posts() ): ?>

<ol>

<?php while ( $myquery -> have_posts() ) : $myquery -> the_post(); ?>

<li>

<?php the_title(); ?>

</li>

<?php endwhile; ?>

</ol>

<?php endif; ?>

说明:$myquery -> 表示我们自己新建的这个查询里还有要显示的内容吗,在have_post(),the_post()前面加上$myquery ->,意思是去准备好在我们的查询里的内容,最后使用wp_reset_postdata(),恢复一下查询。

自定义查询的参数设置:

'post_type' => 设置查询的内容类型(post/page...)

'posts_per_page' =>设置显示内容数量

'orderby' =>设置内容的排序方法,比如按照文章修改的日期,按照文章评论的数量等等,默认查询会按照文章的发布日期,降序排列。

'order' =>升序或降序

'category_in' =>id ,只显示某个分类的内容,若指定多个分类,需将id放在一个数组里,array(8, 15)

本文由10bet手机官网发布于多线程,转载请注明出处:wordpress文章类型,主题开发基础

上一篇:终于体会到了,异常的解决办法 下一篇:WordPress文章底部去除与添加版权信息的方法,文章内容被复制后自动添加文章链接代码
猜你喜欢
热门排行
精彩图文