Php 生成Wordpress页面的标题和缩略图列表';孩子们
我想有一个PHP脚本,自动生成一个儿童网页的标题,永久链接和特色图片列表。现在,我已经完成了大部分脚本,但当我运行它时,它会打印出当前页面标题、缩略图和永久链接的三倍(子页面的数量)。请参见下面的脚本和示例: 主脚本Php 生成Wordpress页面的标题和缩略图列表';孩子们,php,jquery,html,mysql,wordpress,Php,Jquery,Html,Mysql,Wordpress,我想有一个PHP脚本,自动生成一个儿童网页的标题,永久链接和特色图片列表。现在,我已经完成了大部分脚本,但当我运行它时,它会打印出当前页面标题、缩略图和永久链接的三倍(子页面的数量)。请参见下面的脚本和示例: 主脚本 $type = 'page'; // CHILD OR SUB-PAGE $args = array( 'parent' => $post->ID, 'child_of' => $post->ID, 'post_type' => $typ
$type = 'page'; // CHILD OR SUB-PAGE
$args = array(
'parent' => $post->ID,
'child_of' => $post->ID,
'post_type' => $type,
'post_status' => 'publish',
'sort_order' => 'DESC',
'sort_column' => 'menu_order'
);
$count = 1;
$pages = get_pages($args);
foreach ($pages as $page) { setup_postdata( $page );
?>
<?php if ($count % 2 == 0) { ?>
<?php get_template_part( 'partials/templates/element', 'infopic' ); ?>
<?php get_template_part( 'partials/templates/element', 'infolink' ); ?>
<?php } else { ?>
<?php get_template_part( 'partials/templates/element', 'infolink' ); ?>
<?php get_template_part( 'partials/templates/element', 'infopic' ); ?>
<?php } //END ELSE ?>
<div class="col-sm-12">
<div class="clear"> </div>
</div>
元素-信息图片
$type = 'page'; // CHILD OR SUB-PAGE
$args = array(
'parent' => $post->ID,
'child_of' => $post->ID,
'post_type' => $type,
'post_status' => 'publish',
'sort_order' => 'DESC',
'sort_column' => 'menu_order'
);
$count = 1;
$pages = get_pages($args);
foreach ($pages as $page) { setup_postdata( $page );
?>
<?php if ($count % 2 == 0) { ?>
<?php get_template_part( 'partials/templates/element', 'infopic' ); ?>
<?php get_template_part( 'partials/templates/element', 'infolink' ); ?>
<?php } else { ?>
<?php get_template_part( 'partials/templates/element', 'infolink' ); ?>
<?php get_template_part( 'partials/templates/element', 'infopic' ); ?>
<?php } //END ELSE ?>
<div class="col-sm-12">
<div class="clear"> </div>
</div>
<?php global $page; ?>
<div class="col-sm-6 dim-pad">
<div class="info-image">
<?php echo get_the_post_thumbnail($page->ID); ?>
</div>
</div>
但它不是打印出三个子页面更多信息,更多信息二,更多信息三,它只是打印出信息,信息,信息,这是父页面
有人知道我哪里出错了吗?您使用的
setup\u postdata()
不正确
要使setup\u postdata()
正常工作,必须使用变量$post
更改此项:
foreach ($pages as $page) { setup_postdata( $page );
致:
然后在模板内部删除global$page
并且不要将$page->ID
传递给这些函数中的任何一个
最后,在foreach循环之后添加:
wp_reset_postdata();
这会将全局
$post
值恢复到父页面。我觉得这可能是问题所在:
“请注意,“Hierarchy”参数必须设置为0(false)——这不是默认值——否则,除了没有父级(ID=0)和默认“all pages”(ID=-1)的顶级页面之外,任何页面都不会返回任何结果。”
…指定“父级”时,必须设置“分层”=>“0”
希望我能帮忙。
A.L.完美答案谢谢你,伙计。当然,因为
$pages
已经传递了足够的参数,所以$pages
变量是不相关的。
wp_reset_postdata();