2016-04-13 6 views
1

Ich habe eine CPT 'Jobs' und möchte alle Post-Titel in einem Array speichern.WordPress speichert alle Post-Titel von CPT in Array

Dies ist, was ich versucht habe, aber aus irgendeinem Grund bekomme ich Trying to get property of non-object Fehler.

Hier ist, was ich versucht habe:

$myarray = array(); 

$jobs = new WP_Query(array('post_type' => 'jobs')); 
foreach ($jobs as $job): 
    $myarray = $job->post_title; 
endforeach; 

echo $myarray; 

ich die $ Arbeitsplätze abgeladen habe wp_query und ich kann die post_titles dort sehen.

Antwort

2

Nutzen Sie get_posts. Es gibt nur die $posts-Eigenschaft aus dem Abfrageobjekt zurück. Außerdem fehlt die Arraysyntax ([]) nach $myarray. So wie es steht, wird $myarray nur den aktuellen Posttitel des Posts enthalten, der durchgeschleift wird. Als letzte Anmerkung, können Sie kein Array echo, können Sie nur Echo-Strings

$myarray = array(); 

$jobs = get_posts(array('post_type' => 'jobs')); 
foreach ($jobs as $job): 
    $myarray[] = $job->post_title; 
endforeach; 

var_dump($myarray); 
+0

Cool es funktioniert! Mein eigentliches Ziel ist, dieses Array in meinem jQuery-Skript in derselben Datei zu bekommen. Ist das überhaupt möglich? Um dieses Array in meinem jQuery zu verwenden? –

+0

Völlig möglich, schauen Sie sich ['wp_localize_script()'] (https://codex.wordpress.org/Function_Reference/wp_localize_script) an. Lassen Sie sich nicht durch den Namen täuschen, es wird auch verwendet, um PHP-Variablen an JS zu übergeben. Wenn du richtig kommst, kannst du gerne eine neue Frage stellen ;-) –

0

auf diese Weise versuchen ..

<?php 
$myarray = array(); 

$jobs = new WP_Query(array('post_type' => 'post','orderby=title&order=DESC')); 
global $post; 

if($jobs->have_posts()){ 
    while ($jobs->have_posts()):$jobs->the_post(); 
     $myarray[] = $post->post_title; 
    endwhile; 
} 

echo "<pre>"; 
print_r($myarray); 
?> 
Verwandte Themen