2013-08-06 9 views
7

ich versucht wurde, die Liste der untergeordneten Seiten zu sehen, nenne mit einiger Beschreibung ..i Code untenWie Titel von WP_Post Objekt erhalten

$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; 

i-Array vor der Verwendung 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 
    ) 

bin immer verwenden, um anzuzeigen

nach foreach, wenn ich drucken pagedet iam $

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

immer ich versuchte, $ pagedet zu nennen [ 'POST_TITLE'], aber id displ does't ay irgendwas ... danke im voraus

+5

Sie ein eine assoziative Array-Notation anstelle ein Objekt verwenden. Sie sollten aufrufen: '$ pagedet-> post_title' – Matanya

+2

Probieren Sie diese 'echo $ pagedet-> post_title' in Schleife –

Antwort

7

Nur um sicher zu sein, sollten Sie alle Seitendaten als Spaltenname verwenden.

Zum Beispiel

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

Dies ist von meinen Notizen, die ich mit Ihrer genauen Situation arbeiten. Ich hoffe es hilft.

1

versuchen diese. Eine Idee geben.

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

oben foreach Replace:

das Array von Objekten Nehmen ([0], [1], [2], ...) und SET (jeweils) als singuläre Instanz von $ pagedet.

foreach($portfolio_children as $pagedet) { 

Jetzt Variable $ POST_TITLE gleich 'POST_TITLE' Wert jedes Objekts in Array erstellen.

$post_title = $pagedet->post_title; 

Dies würde technisch funktionieren, aber Sie möchten jede Instanz programmgesteuert durchlaufen, ohne jedes Objekt im Array zu identifizieren.

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

Jetzt können Sie jeden POST_TITLE Wert schreiben:

echo $post_title; 
}; 

Zusammengefasst

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