2013-08-06 12 views
7

Starałem się zobaczyć listę stron podrzędnych wymienić z jakimś opisem, aby wyświetlić ..i skorzystać z poniższego koduJak zdobyć tytuł z 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; 

otrzymuję tablicę przed użyciem 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 
    ) 

po foreach czy drukować $ pagedet iam coraz

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

próbowałem zadzwonić $ pagedet [ ''] ale POST_TITLE id does't Displ jakakolwiek rzecz ... z góry dzięki

+5

używasz asocjacyjną notacji tablicy zamiast jednego obiektu. powinieneś zadzwonić: '$ pagedet-> post_title' – Matanya

+2

Wypróbuj to w pętli' echo $ pagedet-> post_title' –

Odpowiedz

7

Dla pewności należy użyć wszystkich danych strony jako nazwy kolumny.

Na przykład

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

To jest z moich notatek, że pracowałem z twoją dokładną sytuacją. Mam nadzieję, że to pomoże.

<?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>'; 
    } 
    ?> 
1

Spróbuj tego. Dając tylko ideę.

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

wymienić przede foreach:

Take szereg obiektów ([0] [1], [2] ...) i zestaw (każda), jak na przykład pojedyncza $ pagedet.

foreach($portfolio_children as $pagedet) { 

Teraz utwórz zmienną $ post_title na wartość "post_title" każdego obiektu w tablicy.

$post_title = $pagedet->post_title; 

To by technicznie działało, ale chcesz przechodzić przez każdą instancję programowo bez identyfikowania każdego obiektu w tablicy.

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

Teraz można napisać każdą wartość POST_TITLE:

echo $post_title; 
}; 

Podsumowując

foreach($portfolio_children as $pagedet) { 
    $post_title = $pagedet->post_title; 
    echo $post_title; 
}; 
Powiązane problemy