Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 生成Wordpress页面的标题和缩略图列表';孩子们_Php_Jquery_Html_Mysql_Wordpress - Fatal编程技术网

Php 生成Wordpress页面的标题和缩略图列表';孩子们

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

我想有一个PHP脚本,自动生成一个儿童网页的标题,永久链接和特色图片列表。现在,我已经完成了大部分脚本,但当我运行它时,它会打印出当前页面标题、缩略图和永久链接的三倍(子页面的数量)。请参见下面的脚本和示例:

主脚本
$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();