这段代码很有效,我想知道为什么。
所以我从WP_Query
类,并使用have_posts()
和the_post()
while循环中的函数。
问题是:既然$post->ID
是基于类的数组中的数据WP_Post
这是否意味着从WP_Post
类位于从WP_Query
班
一个物体能在另一个里面吗?还是我遗漏了什么?
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) : ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<?php echo \'<p>\' .$post->ID .\'</p>\';?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else : ?>
<p>No-data!</p>
<?php endif; ?>
SO网友:ClemC
是的,包含其他对象的对象是“自然的”。A.House
对象包含的数组Furniture
its中的对象$furnitures
所有物比如我们的情况。。。WP_Query
包含的数组WP_Post
its中的对象$posts
所有物A.one-to-many relationship. 这是一个Aggregation.
OOP 都是关于编程建模的。这些是:
从系统上下文来看,data 和process. 从现实世界的背景来看,entity 和logic.这两个上下文是相互关联的。这个data 由其定义entity 以及process 由其定义logic. 然后,这两种上下文可以转换为一种常见的编程模式-OOP。。。
这个WP_Post
对象是entity 持有和定义人-itsdata. 这就是我们所说的Domain Model Object. 但是,因为它不包括任何Domain Logic, 设计纯粹主义者可以称之为Anemic Domain Model Object 相反
这个WP_Query
对象是process (服务)。实际上,它是由域定义的logic 我们的WP_Post
对象,例如:
$the_query->have_posts();
$the_query->the_post();
The WP Loop 自身通过
WP_Query::$posts
并负责切换上下文(
global $post
对象)。
从循环内:
WP_Query::the_post()
初始化global $post
. 然后,您可以访问$post
数据通过,例如,get_the_ID()
或$post->ID
.WP_Query::have_posts()
检查是否有其他WP_Query::$posts
迭代通过。