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

建站经验
网站运营分析:网站跳出率高该如何降低
网络编辑突破职业发展瓶颈的几点准备
CN域名新政导致域名抢注率逐减
个人建议:个人网站可申请经营性ICPP许可证
新手知识:虚拟主机全接触
淘宝在破自己的局,淘宝在和自己下棋
网民网络购物都买些什么产品
万网表示停止域名解析和网站的类型无关
博客没有获得评论的8种可能原因和应对方法
经验总结:初学者投放AdWords的26个错误
大型网站建站要考虑数据库压力和服务器负载
认识Alexa,提高Alexa排名的20种方法
专注做站理性看待网络事件和网络炒作
Google研究主管PageRank被大家看的太重
AIDAS提升电子商务网站B2C转化率
新浪博客屏蔽淘宝客地址 淘宝客站长收入降低
电子商务网站团购:Groupon的模式
域名注册信息不真实注册商有权注销域名
CNNIC全面清查不良域名应用:暂停1.2万域名解析
如何去关注电子商务网站分析

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 24 ::
收藏到网摘: 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/