获取子项的POST_META并与当前页面ID进行比较

时间:2013-12-17 作者:Alexnl

我在模板中遇到了一些php代码。

我有一个名为“services”的自定义字段,其值为“2402、2366、78”,这些是页面ID。

在我的模板中,我想执行以下操作:获取页面ID 2526的所有子级。然后为每个子级获取该自定义字段的值。然后获取模板正在用于的当前页面的ID(get_the_ID())。然后创建一个IF语句。如果值中的数字与页面ID的数字匹配,则回显某个内容,并使用指向ID 2526的子页面的链接包装回显文本,该子页面的自定义字段的值与当前页面ID匹配。

如果没有逗号比较容易,我也可以输入值2402 2366 78。

这就是我目前所处的位置:

<?php
$currentPageID = get_the_ID();
$child_pages = $wpdb->get_results("SELECT *    FROM $wpdb->posts WHERE post_parent = 2526 AND post_type = \'page\' ORDER BY menu_order", \'OBJECT\');
if ( $child_pages ) : foreach ( $child_pages as $pageChild ) : setup_postdata( $pageChild );
$services = get_post_meta( $pageChild->ID, \'services\', true );
if (preg_match(\'/(^|,)\'.$currentPageID.\'($|,)/\', $services)){
    echo "matches";
} 
else {
    echo "does not match";
}
endforeach; endif;
?>
我没有收到任何错误,但也没有显示任何内容。我也不知道如何添加相关子页面的链接。

提前感谢您的帮助!

1 个回复
最合适的回答,由SO网友:Alexnl 整理而成

以下是最终对我起作用的代码:

<?php
  $mypages = get_pages( array( \'child_of\' => $post->ID, \'sort_column\' => \'menu_order\', \'sort_order\' => \'asc\' ) );
  foreach( $mypages as $page ) {         
  $content = $page->post_content;
  $content = apply_filters( \'the_content\', $content );
  $price = get_post_meta( $page->ID, \'price\', true );
?>
<div class="service">
<h4><a href="<?php echo get_page_link( $page->ID ); ?>"><?php echo $page->post_title; ?></a></h4>
<div class="price"><?php echo $price; ?></div>
<p><?php echo $content; ?></p>
<p><?php
      $currentPageID = $page->ID;
  $child_pages = $wpdb->get_results("SELECT *    FROM $wpdb->posts WHERE post_parent =2526 AND post_type = \'page\' ORDER BY menu_order", \'OBJECT\');
  if ( $child_pages ) : foreach ( $child_pages as $pageChild ) : setup_postdata( $pageChild );
  $services = get_post_meta( $pageChild->ID, \'services\', true );
      if (preg_match(\'/(^|,| )\'.$currentPageID.\'($|,| )/\', $services, $matches)){
  echo "<a class=\'promotion-link\' href=\'" . get_permalink(\'2526\') . "\'>A promotion is available for this service</a><br/>" ;
  //  echo "matches";
}
endforeach; endif;
?>

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在