我想查找页面id并确定它是页面还是帖子。然后查询id并显示标题、特色图片等内容。
这适用于以下页面:
query_posts(\'page=\' . $featured_tab);
本工程或岗位:
query_posts(\'p=\' . $featured_tab);
这将告诉我$featured\\u标记是否是帖子或页面:
get_post_type( $featured_tab )
但这不起作用
foreach ( $featarr as $featured_tab ) {
if (get_post_type( $featured_tab ) == \'page\') {
$featured_tab_type = \'page=\';
} elseif (get_post_type( $featured_tab ) == \'post\') {
$featured_tab_type = \'p=\';
}
query_posts($featured_tab_type . $featured_tab);
while (have_posts()) : the_post();
Echo \'stuff here\';
我的问题是。。。$featured\\u标记变量表示页面上显示的指定页面/帖子id。
所以我输入了一串id,即345432432355。。。etc然后将每个id作为$featured\\u选项卡,查询标题、特色页面和摘录。
然后,我在一个三列表中显示所有页面/帖子id。
这项工作非常完美,但只有当我查询其中一项或另一项,而不是像我在if语句中所做的那样,如果post-use p=或如果page-use-page=。
当我在这里使用if条件是get crazy results时,如果有9个ID,我会得到50多个结果。。。重复项和仅显示无发布页面。
SO网友:Milo
您不必确定查询它的类型,只需设置适当的参数来覆盖默认值。首先,我们将使用WP_Query
执行其他查询而不是query_posts
.
如果我们只设置p
论点post_type
默认为post
, 所以我们不会得到任何页面:
$query = new WP_Query(
array(
\'p\' => 13
)
);
如果我们加上
post_type
并将其设置为
any
, 我们将获得任何帖子ID 13,无论是帖子、页面、附件等。。
$query = new WP_Query(
array(
\'post_type\' => \'any\',
\'p\' => 13
)
);
如果您有一些帖子ID并且需要查询所有帖子ID,那么可以去掉foreach循环,只需使用
post__in
参数:
$query = new WP_Query(
array(
\'post_type\' => \'any\',
\'post__in\' => array( 1, 2, 13, 42 )
)
);