建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

WordPress 主循环和全局变量(wordpress自定义调用指定id页面的方法)

GG网络技术分享 2025-03-18 16:12 0


WordPress 主循环和全局变量

当我们进行 WordPress 开发的时候,首先我们必须要了解主循环和全局变量,这样才知道在主循环中可以访问哪个全局变量。

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

WordPress 主循环

WordPress 主循环(The Loop)是用来显示文章列表,和在单篇文章页面页显示留言列表的。

在主题的 index.php 中,主循环的代码如下:

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

  • have_posts 这个函数去查看当前循环是否还有文章。
  • the_post 函数获取第一篇文章,并设置文章的数据(如作者,是否多个分页等等),赋给 $post 这个全局变量,所以我们可以访问它。
  • 随着循环的过程,循环查询到的文章都会被赋值到 $post 这个全局变量。

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

下面就是现在可用的部分模板函数:

  • the_author:获取作者的名字。
  • the_title:显示当前文章的标题。
  • the_content:显示文章的内容。
  • the_permalink:显示文章的链接。
  • 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_content;

通过 $post 这个全局变量,我们可以获取文章的这些信息:ID,post_title, post_author,post_date,post_excerpt,comment_count 和其他。

注意通过这种方法获取的文章内容是没有经过 WordPress 过滤器接口的,不过你想自己去操纵文章的内容,比如自己设置文章内容的显示方式,通过这种方式获取的文章内容是非常有用。

$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 */ ?>

然后在当前主题的 function 文件中添加 get_my_trackback 函数代码:

function get_my_trackback() {

global $comment;

if(empty($comment)){

return;

}

if($comment->comment_type != 'comment'){

//do trackback stuff}}

$comment 这个全局变量能够让我们访问到当前留言的所有数据,所以可以让我们对留言做任何事情。

wordpress自定义调用指定id页面的方法

前面我们介绍了wordpress自定义调用页面的方法,有时候网站中页面里面会创建不同类型的页面,用之前的方法无法把

它们分开调用出来,所以我们需要对之前的代码进行简单的修改,以方便我们自定义调用不同类别的页面。

首先我们可以把相同类型的页面都设置成指定页面id的子页面。

page-ht.png

然后只需要把当前页面id的子页面调用出来就可以实现自定义调用该类别的页面了。

在页面中调用一下代码:

<?php

$pages=get_pages("child_of=24");

foreach($pagesas$pagg){

echo'<divclass="pp"><aclass="nava"href="'.get_page_link($pagg->ID).'"'.'>'.$pagg->post_title.'</a></div>';

}

?>

数字24就是指定父级页面的id。

这个代码跟调用wordpress指定分类子分类的方法是一致的。调用出来的效果如下图:

page-dy.png

标签:

提交需求或反馈

Demand feedback