如何从WP_Post对象中获取标题


How to get title from WP_Post Object

我试图查看要显示的子页面名称列表和一些描述。。我使用以下代码

$my_wp_query = new WP_Query();
$all_wp_pages = $my_wp_query->query(array('post_type' => 'page'));
// Get the page as an Object
$portfolio =  get_page_by_title('service');
// Filter through all pages and find Portfolio's children
$portfolio_children = get_page_children( $portfolio->ID, $all_wp_pages );
// echo what we get back from WP to the browser
echo "<pre>";print_r(
);
foreach($portfolio_children as $pagedet):
        echo $pagedet['post_title'];

 endforeach;

在使用foreach 之前我正在获取数组

when i print  $portfolio_children iam getting out put like this 
 Array
(
 [0] => WP_Post Object
    (
        [ID] => 201  
         [post_title] => Website Hosting
     )
  [1]=> WP_Post Object
      (
              [ID] => 202  
         [post_title] => Website
      )

foreach之后如果我打印$pagedet我得到

WP_Post Object
    (
        [ID] => 201  
       [post_title] => Website Hosting
     )

我试着调用$pagedet['post_title'],但id没有显示任何内容。。。提前感谢

当然,您应该使用每个页面数据作为列名。

例如,

$page_data->post_content //is true,
$page_data->the_title // is false.

试试这个。给出的只是想法。

<?php 
    $post = get_post($_GET['id']); 
    $post->post_title;
 ?>

这是我在笔记中处理您的确切情况。希望能有所帮助。

<?php 
    $my_wp_query = new WP_Query();
     $all_wp_pages = $my_wp_query->query(array('post_type' => 'page', 'posts_per_page' => -1));
    $childpg = get_page_children(8, $all_wp_pages);
    foreach($childpg as $children){
        $page = $children->ID;
        $page_data = get_page($page);
        $content = $page_data->post_content;
        $content = $page_data->the_title;
        $content = apply_filters('the_content',$content);
        $content = str_replace(']]>', ']]>', $content);
        echo '<div class="row-fluid"><span class="span4">'; 
        echo get_the_post_thumbnail( $page ); 
        echo '</span><span class="span8">'.$content.'</span></div>';
    } 
    ?>

替换前面的foreach:

将对象数组([0]、[1]、[2]…)和set(each)作为$pagedet的奇异实例。

foreach($portfolio_children as $pagedet) {

现在创建变量$post_title,使其等于数组中每个对象的'post_title'值。

$post_title = $pagedet->post_title;

从技术上讲,这是可行的,但您希望以编程方式遍历每个实例,而不标识数组中的每个对象。

echo $pagedet[0]->post_title;
echo $pagedet[1]->post_title;
echo $pagedet[2]->post_title;

现在您可以写出每个post_title值:

echo $post_title;
};

总结

foreach($portfolio_children as $pagedet) {
    $post_title = $pagedet->post_title;
    echo $post_title;
};