WordPress 栏目

全球最流行的blog程序,本栏分享我的wordpress使用心得

WordPress模板设计常用判断函数

2009/09/04 | 作者:小V | 评论 (1)| 分类: WordPress

这几天直接拿wp做了个企业站,用了一些平时弄blog比较不常用到的函数,

下面是一些比较常用的条件判断函数:

1.get_the_category(),取分类信息,例:

<?php
foreach((get_the_category()) as $category) {
echo $category->cat_name . ' ';
}
?>

2.读取文章所在分类,in_category,例:

<?php
if ( in_category( 'pachoderms' )) {
echo "这是在pachoderms目录下"
}
?>

3. 固定文章、固定分类、页面位置的判断,例:

is_single('17');//判断id=17的文章
is_single('ddd');//判断名字叫ddd的文章
is_page();//单页 、is_category();//分类 、is_tag() ;//标签,以上面的的single用法一样.

4. 读取固定分类的文章WP_Query,例:读取分类名为news的文章,数量5篇

<?php
query_posts('category_name=news&posts_per_page=5');
if (have_posts()) :
while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>" ><?php the_title(); ?></a></li>
<?php endwhile; ?>
<?php else : ?><?php endif; ?>

<转>wp_list_bookmarks友情链接调用标签的使用

2009/07/19 | 作者:小V | 评论 (0)| 分类: WordPress

wp_list_bookmarks 这个函数也是为Blogroll服务的,比以前的函数get_links_list() 和 get_links() 更加强大,它有很多参数,参数和参数之前用"&"分隔。

wp_list_bookmarks 函数的默认参数是:

'orderby' => 'name'
'order' => 'ASC'
'limit' => -1
'category' => ''
'category_name' => ''
'hide_invisible' => 1
'show_updated' => 0
'echo' => 1
'categorize' => 1
'title_li' => __('Bookmarks')
'title_before' => '<h2>'
'title_after' => '</h2>'
'category_orderby' => 'name'
'category_order' => 'ASC'
'class' => 'linkcat'
'category_before' => '<li id="%id">'
'category_after' => '</li>'

下面我来一一介绍每个参数的用途:

categorize

布尔型,用于设置连接是否按照各自的分类显示:
1 (默认,根据链接的分类显示)
0 (不按照分类,显示全部)

category

字符串型,后面就直接 "=链接分类ID号",那么就显示这个分类下的链接。如果没有指定的话就显示所有的链接。

category_name

字符串型,如果后面 "=某个链接分类的名称" 那么就会在该链接分类前显示分类的名称,如果这里留空的话则会显示所有链接分类的分类名称(即默认的形式)。

category_before

字符串型,位于链接分类之前的文字或代码。默认的设置是:<li id="[category id]">

category_after

字符串型,位于链接分类之后的文字或代码。默认的设置是:</li>

class

字符串型,每一个链接的分类都会有一个 "class" 属性(从上面的代码就能看出),默认是:linkcat

category_orderby

字符串型,链接分类的排序方式,按照名词或者ID。
'name' (默认)
'id'

category_order

字符串型,链接分类的升降序排列方式:
ASC (默认)
DESC

title_li

字符串型,链接标题的头文字或代码,默认是:Bookmarks,并且它控制连接是否按照列表的方式排列。

title_before 和 title_after

顾名思义,它们就是连接标题头前后的文字或代码,默认是 h2 标签

show_private

布尔型,是否显示私有链接。
1 (是)
0 (不是 - 默认)
include

字符串型,输出指定 ID 的 Blogroll 的分类链接,各个 ID 之间用半角的 "," 分开。默认显示所有的 Blogroll 分类。

exclude

字符串型,将指定 ID 的 Blogroll 分类链接从整个链接列表中排除,各个 ID 之间用半角的 "," 分开。默认是什么都不排除。

orderby

字符串型,Blogroll 的排列方式(默认是根据名称排序,除非将这个值留空),即根据我们在 WP 后台链接设置界面下的那些参数来进行排序:
1.'id’
2. 'url’
3. 'name’
4. 'target’
5. 'description’
6. 'owner’
7. 'rating’
8. 'updated’
9. 'rel’ - 按设定的关系排列
10. 'notes’
11. 'rss’
12. 'length’ - 连接名称的长度设定
13. 'rand’ - 随机排列显示

order

字符串型,设置升降序的排列方式
ASC (默认)
DESC

limit

整型,设置输出链接条数的最大值。默认值是"-1",输出全部。

between

字符串型,每个连接、图片和描述之间的文字或代码,默认是 "\n" 换行。

show_images

布尔型,是否允许显示 Blogroll 下链接的对应图片。
1 (允许 - 默认)
0 (不允许)

show_description

布尔型,是否允许显示每个链接的描述。
1 (允许)
0 (不允许 - 默认)

show_rating

布尔型,是否允许显示链接的等级。
1 (允许)
0 (不允许 - 默认)

show_updated

布尔型,是否允许显示最近更新后的时间戳。
1 (允许)
0 (不允许 - 默认)

hide_invisible

布尔型,是否显示所有的链接,甚至是被管理员设为不可见的链接,默认允许显示。
1 (允许 - 默认)
0 (不允许)

例如:

随机显示10条链接:

<?php wp_list_bookmarks('orderby=rand&limit=10'); ?>

随机显示分类ID为1的链接:

<?php wp_list_bookmarks('orderby=rand&category=1'); ?>

<转>wp_list_pages()页面调用标签的使用

2009/07/19 | 作者:小V | 评论 (0)| 分类: WordPress

模板标签wp_list_pages( )将WordPress页面作为链接显示出来。

该模板标签常用于自定义侧边栏或标题,也常用于其他模板中。

该模板标签在WordPress 1.5及更新版本中可用。
用法

<?php wp_list_pages('arguments'); ?>

示例
默认用法

$defaults = array(
'depth'       => 0,
'show_date'   => '',
'date_format' => get_option('date_format'),
'child_of'    => 0,
'exclude'     => '',
'title_li'    => __('Pages'),
'echo'        => 1,
'authors'     => '',
'sort_column' => 'menu_order, post_title',
'link_before' => '',
'link_after'  => '',
'exclude_tree'=> '' );

默认情况下,以上用法表明:

* 显示所有页面和子页面(无深度限制)
* 不显示创建日期
* 不局限于child_of页面
* 不删除任何页面
* 页面列表的标题为“Pages(页面)”
* 回显(显示)结果
* 不局限于特定作者
* 先按页面顺序再按页面标题排序
* 按升序排列(不按上文中的默认状态显示)
* 以继承缩进格式显示页面(不按上文中的默认状态显示)
* 包含所有页面(不按上文中的默认状态显示)
* 不局限于特定元关键字/元值的页面(不按上文中的默认状态显示)
* 不删除父级/子级树

wp_list_pages();

隐藏或改变列表标题

给title_li参数传递一个零值或空值,可以隐藏由wp_list_pages生成的页面列表默认标题。下面的代码可显示所述效果:

<ul>
<?php wp_list_pages('title_li='); ?>
</ul>

在下面这个例子中,列表中只包含编号为9,5,23的页面,标题内容被改为“Poetry”,格式为<h2>:

<ul>
<?php wp_list_pages('include=5,9,23&title_li=<h2>' . __('Poetry') . '</h2>' ); ?>
</ul>

将页面按页面顺序排列

下面的例子将页面按管理栏中 Write > Page 定义的页面顺序进行排列。

<ul>
<?php wp_list_pages('sort_column=menu_order'); ?>
</ul>

如果希望将列表按页面顺序进行排列并将“Prose”作为列表标题(以h2格式)显示在侧边栏中,可将以下代码添加到sidebar.php文件中:

<ul>
<?php wp_list_pages('sort_column=menu_order&title_li=<h2>' . __('Prose') . '</h2>' ); ?>
</ul>

使用下列代码段,可显示出无标题并以页面顺序排列的页面:

<ul>
<?php wp_list_pages('sort_column=menu_order&title_li='); ?>
</ul>

将页面按发表日期排列

下列代码显示出的页面将按发表日期进行排列,在页面列表项旁显示日期。

<ul>
<?php wp_list_pages('sort_column=post_date&show_date=created'); ?>
</ul>

从列表中删除页面

用exclude参数可隐藏列表中由wp_list_pages生成的若干页面。

<ul>
<?php wp_list_pages('exclude=17,38' ); ?>
</ul>

显示列表中特定页面

若仅希望在列表中显示特定页面,例如编号为35,7,26和13的页面,可使用include参数。

<ul>
<?php wp_list_pages('include=7,13,26,35&title_li=<h2>' . __('Pages') . '</h2>' ); ?>
</ul>

显示子页面

2.0.1之前版本:

将以下代码存入WordPress主题page.php模板中the_content( )之后的the_post版块中,或存入page.php模板的副本中,供含有子页面的页面使用:

<ul>
<?php
global $id;
wp_list_pages("title_li=&child_of=$id&show_date=modified
&date_format=$date_format"); ?>
</ul>

由于未设置全局变量$id,本代码无法在WordPress2.0.1及之后版本的页面模板中运行。2.0.1及之后版本中可使用下面介绍的代码。

WordPress 2.0.1及之后版本:

注意:即使没有子页面,HTML标签也是必要的(<ul>或<ol>)。用css设置列表时需要将这一点谨记在心。

<ul>
<?php
wp_list_pages('title_li=&child_of='.$post->ID.'&show_date=modified
&date_format=$date_format'); ?>
</ul>

以下代码仅在目前页面有子页面(将目前页面设为父级页面的页面)的情况下生成列表:

<?php
$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
if ($children) { ?>
<ul>
<?php echo $children; ?>
</ul>
<?php } ?>

在子页面上列出子页面

上述示例都是在父级页面上展示子页面,却没有说明如何在子页面上进行展示。可用下列代码在某一父页面或其中一个子页面上展示子页面。

将本代码放在侧边栏的widget区块后,代码将无法运行。

<?php
if($post->post_parent)
$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
else
$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
if ($children) { ?>
<ul>
<?php echo $children; ?>
</ul>
<?php } ?>

本代码也可用在sidebar.php中,仅显示顶级页面。但浏览到包含子页面的页面时,仅显示其子页面。

* 浏览主页时在侧边栏显示所有顶级页面
* 浏览没有子页面的顶级页面时,显示所有顶级页面
* 浏览有子页面的顶级页面时,显示所有子页面及孙页面
* 浏览子页面时,显示其父级页面下的所有子页面和孙页面

<?php
$output = wp_list_pages('echo=0&depth=1&title_li=<h2>Top Level Pages </h2>' );
if (is_page( )) {
$page = $post->ID;
if ($post->post_parent) {
$page = $post->post_parent;
}
$children=wp_list_pages( 'echo=0&child_of=' . $page . '&title_li=' );
if ($children) {
$output = wp_list_pages ('echo=0&child_of=' . $page . '&title_li=<h2>Child Pages</h2>');
}
}
echo $output;
?>

页面选项标记与格式

默认情况下,wp_list_pages( )生成一个嵌套的、由管理栏 Write > Page 生成的无序WordPress页面列表。将title_li参数设为任意空字符后可除去最外围选项(li.pagenav)和列表(ul)。

所有wp_list_pages( )生成的列表项(li)都被标上page_item类。显示页面时将调用wp_list_pages( ),这时该页面的列表项被赋予附加类current_page_item。

<li>
Pages [title_li]
<ul>
<!-- Output starts here if 'title_li' parameter is empty -->
<li>
[parent of the current Page]
<ul>
<li>
[the current Page]
</li>
</ul>
</li>
<li>
[another Page]
</li>
</ul>
</li>

可以用CSS选择器为这些列表项进行样式设计:

.pagenav { … } /* the outermost list item; contains whole list */
.page-item-2 { … } /* item for Page ID 2 */
.page_item { … } /* any Page item */
.current_page_item { … } /* the current Page */
.current_page_parent { … } /* parent of the current Page */
.current_page_ancestor { … } /* any ancestor of the current Page */

参数

sort_column (字符)

按不同方式对页面列表进行排序。默认设置成按页面标题的字母顺序排序。

* 'post_title' —— 按页面标题的字母顺序排序——默认
* 'menu_order' —— 按页面顺序(Page Order)进行排序。注意页面顺序和页面编号的区别。页面编号是由WordPress为每篇文章或页面设定的独有的数字,而页面顺序则由用户在管理栏的Write>Pages中设置。
* 'post_date' —— 按页面创建日期排序。
* 'post_modified' —— 按最后修改时间进行排序。
* 'ID' —— 按页面序列编号排序。
* 'post_author' —— 按页面创建者的序列编号排序。
* 'post_name' —— 按页面缩略名的字母顺序排序。

注意:sort_column参数可按WordPress数据库 wp_post table中任意字段的描述符来对页面列表进行排序。下面给出一些实用示例。

sort_order (字符)

更改页面列表的排列顺序(升序或降序)。默认为升序。可能的值为:

* 'asc' ——按从低到高顺序排列(默认)
* 'desc' —— 按从高到低顺序排列

exclude (字符)

定义一列页面编号并用逗号隔开,将其从已有列表中删除(例如:'exclude=3,7,1')。无默认值。

exclude_tree (整数)

与'child_of'相反,'exclude_tree'从结果中移除已知编号的所有子页面。也可用于隐藏已知页面的所有子页面。该参数还可联合'child_of' 的值以隐藏孙页面。在2.7版本中该参数可用。

include (字符)

仅包含get_pages生成的特定页面列表。include参数与exclude同样用逗号将页面编号隔开。无默认值。

depth(整数)

该参数决定wp_list_pages生成的列表中包含的页面层次级数。默认值为0(显示子页面内的所有页面)。

* 0 — 以层级方式(缩进)显示所有页面和子页面(默认)
* -1 — 以平级方式(不缩进)显示子页面中的页面
* 1 — 仅显示最上层页面
* 2 — 该值(或更大值)表示需要显示页面内部的层级数

child_of (整数)

仅显示单个页面的子页面;值为默认编号。默认值为0(显示所有页面)。注意child_of参数不仅获取直系子页面,也会从已知编号中获取“孙页面”。默认值为0(显示所有页面)。

show_data(字符)

在每篇页面旁显示创建日期或最新修改日期。默认值为空值(不显示日期)。可用的值包括:

* ' ' — 不显示日期(默认)
* 'modified' — 显示最新修改日期
* 'xxx' — 任何非'modified'值都将显示页面最初创建的日期(post_date)。参看上文中的示例。

date_format(字符)

该参数对show_date参数生成的页面日期格式("l, F j, Y")进行设置。默认格式为WordPress选项设定的日期格式。参见日期和时间设置以及php网站上的页面日期格式。

title_li (字符)

设置页面列表标题的内容与样式。默认值为“_('页面')”,显示结果为“页面”(_('')用于本地定位)。若传递值为零或为空(''),则不显示标题,列表也不会被<ul>,<ul>标签围绕。参见标题示例。

echo (布尔型)

触发显示所生成的链接列表,或将列表按HTML文本格式返回供PHP使用。默认值为1(显示生成的列表项)。可能的值包括:

* 1 (true) — 默认
* 0(false)

hierarchical

(布尔型)在上级页面列表下以缩进方式显示下级页面。默认值为true(在父级列表项下显示其子页面)。可能的值有:

* 1(true)——默认
* 0(false)

meta_key

(字符)仅包含含有该自定义字段关键字的页面(与meta_value字段联合使用)。

meta_value

(字符)仅包含含有该自定义字段值的页面(与meta_key字段联合使用)。

link_before(字符)

设置标签<a>中文字链接前的文本或html代码。(适用于2.7.0或更新版本)

link_after(字符)

设置标签<a>中文字链接后的文本或html代码。(适用于2.7.0或更新版本)

<转>wp标签wp_get_archives存档标签的调用方法

2009/07/18 | 作者:小V | 评论 (0)| 分类: WordPress

函数wp_get_archives是用来调用存档的,可以放在模板中的sidebar.php或者放在专门的存档页面archives.php。

具体写法如下:

wp_get_archives
(’type=monthly&limit=12&format=
html&before=…&after=…
&show_post_count=true’);

下面说明一下里面的每个函数的意思:

type:归档方式

type=monthly:按月显示
type=daily:按天显示
type=weekly:按周显示
type=postbypost:显示文章标题

limit:显示篇数

limit=10:显示最近10篇文章

format:格式

format=html:默认方式
format=link:输出格式:

<?php
<link rel=’archives’ title=’$title_text’ href=’$url’ />
format=option:输出格式:

<?php
<option value=’$url’>$before $text $after</option>
before:archives前

before=…:要在前面加的文字

after:archives后

after=…:要在后面加的文字

show_post_count:是否显示文章数量

show_post_count=true:要在后面显示文章的数量

<转>WP标签wp_list_categories分类调用标签

2009/07/18 | 作者:小V | 评论 (0)| 分类: WordPress

分类标签 wp_list_categories

wp_list_categories标签负责的是分类的调用,在模板archive.php文件中添加wp_list_categories标签可以调用wp程序的存档。

用法如下:
wp_list_categories标签的所有数值:
show_option_all
值:任意填。
如果你写<?php wp_list_categories(’show_option_all=*’); ?>,那么在列表第一个分类就显示“*”两字,不过连接是连接到blog首页的,正好可以利用此参数加个“首页”。

orderby
值:ID、name(默认值)、count。
作用是按这3个值来排序。
order
值:ASC(默认值)、DESC。
ASC为升序,DESC为降序。

show_last_updated
值:0(默认值)、1。
0无作用,1为最近更新的分类显示在前面。

style
值:list(默认值)、none。
例6中已经举例了。none无作用。

show_count
值:0、1(默认值)
1在每个分类后面显示日志数量,0不显示。

hide_empty
值:0、1(默认值)
1是隐藏没有发表日志的分类,0是显示所有。

use_desc_for_title
值:0、1(默认值)
0为关闭说明,1为显示说明。上面有例子。

child_of
值:数字
显示指定ID(也就是所填的这个数字)下的子分类。

feed
值:任意
假如你填“啊!”,那么在你每个分类后面都会出现“(啊!)”,连接地址是RSS地址。

feed_image
值:任意。虽然任意,但是是个图片的地址才对。
用来在分类后面显示个RSS Feed图标,上面有例子。

exclude
值:任意。但是要填分类名称或者分类ID才有效。
用来过滤(或者说隐藏)某个分类在列表中的出现。

include
值:任意。但是要填分类名称或者分类ID才有效。
作用是只显示所填的这个分类名或ID。

hierarchical
值:0、1(默认值)
说是按分类文章数目排列的,但测试无效果。

title_li
值:任意
用来改变列表标题的。

number
值:整数
设置一个显示上限。

数值应用举例:

1.包含或排除某分类:
意思就是把分类ID为3,5,9,16的分类按名称顺序来排序:

<?php wp_list_categories(’orderby=name&include=3,5,9,16′); ?>

按名称排列,并显示每个分类的日志总数,并不显示ID为10的分类:

<?php wp_list_categories(’orderby=name&show_count=1&exclude=10′); ?>

2.显示或隐藏列表标题:
过滤ID为4和7的分类,并且列表标题设置为“哈哈”:

<?php wp_list_categories(’exclude=4,7&title_li=哈哈’); ?>

列表中只显示ID为5、9、23的分类,并把列表标题改为Poetry(下面的格式是为了把“要显示的数据”和“标签参数区分开来”)

<?php wp_list_categories(’include=5,9,23&title_li=<h2>’ . __(’Poetry’) . ‘</h2>’ ); ?>

3.这个参数的意思是:按ID排序,关闭分类说明(就是鼠标移动到连接上就不显示你在后台填的分类说明了,只显示“察看XX分类下的所有文章”),并且只显示ID为8的分类下的子分类,如果没有,则参数无效,会按默认来显示。

<?php wp_list_categories(’orderby=id&show_count=1&use_desc_for_title=0&child_of=8′); ?>

4.外观是分类后面显示个(RSS),作用就不用我说了吧?

<?php wp_list_categories(’orderby=name&show_count=1&feed=RSS’); ?>

5.这个比较酷,相信大家都喜欢:
分类名称后面显示一个自己制定的小图标,作用是RSS。

<?php wp_list_categories(’orderby=name&show_count=1&feed_image=/images/rss.gif’); ?>

6.花式列表:
改变当前正在浏览的分类名字的样式。’style=list’的作用是给输出的html代码

中加一个class=”current-cat”, 然后你在CSS里添一个.current-cat {color:red;}那么我浏览分类AAA时,列表中的“AAA”3个字就是红色的,浏览BBB,“BBB”就是红色的。

<?php wp_list_categories(’style=list’ ); ?>

Page 3 of 41234
Page 3 of 41234