当前位置: 首页 > 图文教程 > 网站运营 > 建站经验 > WordPress 主循环和全局变量

建站经验
评价网站推广的效果的方法
中国流量巨大的10种类型的商业网站
轻松快速打造PR5的网站
新手需要了解的网站建设的过程和步骤
推广个人博客最好办法 免费书签收藏代码
能坚持下来的站长让痛苦来的更猛烈些吧
博客首页该如何布局才能吸引与留住人
用户需求网站目标涉及行业盈利模式决定你做什么
建站流程应该是边修改边上线 推荐
建站经验谈 豆瓣网怎么推广的
GOOGLE在中国市场落后的5点原因分析
地方分类信息网站的有效推广方法小结
跟Alexa类似的网站流量跟踪的5个国外网站
网站建设与SEO的流程图
关于解决网站内容复制几点建议 强烈推荐
开心网转帖功能 网站推广经验
Site 网站首页不在第一页的原因及解决方法
解决首页不在第一页的问题的方法参考
网站推广 如何招兼职网络推广员
网站用户体验与公交车的用户体验

建站经验 中的 WordPress 主循环和全局变量


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 53 ::
收藏到网摘: n/a

当我们制作 WordPress 插件的时候,首先必须要了解 WordPress 主循环和全局变量。这样,我们在制作插件的时候,就可以知道可以访问哪个变量,不能访问哪个变量。

对于特定的 WordPress Action 和 Filters,你可以很容易知道它们在主循环中哪里执行了。然而有时你在主循环中不想使用 action 或者 filter 而只想调用模板函数(template tag )。这时候,你需要非常了解你想访问的全局变量和可能得到的结果。

下面我将讲解 WordPress 主循环,以便你能更好理解哪些全局变量可以被主循环中的模板函数调用。

WordPress 主循环 — The WordPress Loop

The WordPress Loop

WordPress 主循环是用来在一些页面上显示日志列表和在单篇日志页面页显示留言列表的。

在默认主题的 index.php 中,主循环是以下面这些代码开始的:

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

have_posts()和 the_post()这两个函数都是属性函数,它们可以访问到类 WP_Query 中的方法

have_posts 这个函数去查看当前显示的日志数是否达到了在 WordPress 后台设置的要显示的日志数,这个主循环将会继续直到达到为止。

如果你研究过 the_post 函数,你会发现它会搜索 $post 这个全局变量。 the_post 函数获取第一篇日志(随后的日志通过每次循环迭代获取),并设置日志的数据(如作者,多重-页面,等等),这些数据是 WordPress 全局的赋给 $post 这个变量,所以可以访问它。

在 the_post()函数被调用之后,你就可以使用许多模板函数和全局变量。

下面就是现在可用的模板函数的一些例子:

the_author:获取作者的名字。

the_title:显示当前日志的标题。

the_content:显示日志的内容。

the_permalink:显示日志的永久链接的 URL。

the_ID:显示日志的 ID。

下面是现在可用的全局变量:

全局变量 authordata,你可以使用以下代码调用它:

global $authordata;
echo $authordata->display_name;

通过 authordata 这个全局变量还可以让你获取:last_name,first_name,ID,user_email,user_url,user_login,description 和其他。

全局变量 post,你可以使用以下代码调用它:

global $post;
echo $post->post_title;

通过post这个全局变量还可以让你获取:ID,post_author,post_date,post_excerpt,comment_count 和其他。

全局变量 post ,你可以通过在一个函数中使用以下代码调用它:

global $post;
echo $post->post_content;

通过这种方法获取的日志内容是没有经过过虑的。如果你想按照你自己喜好去操纵日志的内容,比如自己设置日志内容的显示方式,通过这种方式获取的日志内容非常有用。

虽然没有快速的全局访问,但是 the_permalink 这个函数作的就是输出函数 get_permalink 在 $id 这个变量已经被设定情况下的结果。

全局变量 id ,你可以使用以下代码调用它:

global $id;
echo $id;

一个模板函数的例子

假设你写了一个叫做 get_my_trackback 自定义的模板函数,它能够在留言循环中每次侦测到 trackback 的时候做出反应。我们将把这个函数放入 comment.php 模板文件的 foreach 留言循环中。

<?php foreach ($comments as $comment) : ?>
<?php get_my_trackback();?>
<?php endforeach; /* end for each comment */ ?>

get_my_trackback 函数代码如下:

<?php function get_my_trackback() {
    
global $comment;
    
if (empty($comment))
        
return;
    
if ($comment->comment_type != 'comment') {
        
//do trackback stuff
    
}
}
?>

Comments Loop

comments 这个全局变量能够让你访问到当前留言的详细数据,所以可以让你对留言做任何事情。

结论

在这篇文章中,详细解析了 WordPress 主循环已和全局变量,所以在以后制作插件或者修改主题的时候可以非常灵活的使用它们。

原文:http://fairyfish.net/2007/07/07/global-variables-and-the-wordpress-loop/