2016-04-13 6 views
1

私はCPT 'jobs'を持っていて、すべてのポストタイトルを配列に格納したいと思います。ワードプレスCPTのすべてのポストタイトルを配列に格納する

これは私が試したことですが、何らかの理由でTrying to get property of non-objectエラーが発生します。

$myarray = array(); 

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

echo $myarray; 

を私は$ジョブwp_queryをダンプしてきたと私はそこpost_titlesを見ることができます:ここで

は、私が試したものです。

答えて

2

get_postsを利用して...この方法を試してみてください。クエリオブジェクトから$postsプロパティのみを返します。また、$myarrayの後に配列構文([])がありません。現時点では、$myarrayは、ループされている投稿の現在の投稿のタイトルのみを保持します。最後の注意として、配列をエコーすることはできません。文字列をエコーすることしかできません。

$myarray = array(); 

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

var_dump($myarray); 
+0

クールに動作します。私の実際の目標は、同じファイル内のjQueryスクリプトでこの配列を取得することです。これも可能ですか? jQueryでこの配列を使用するには? –

+0

完全に可能ですが、['wp_localize_script()'](https://codex.wordpress.org/Function_Reference/wp_localize_script)を見てください。名前をあなたに騙さないようにしてください。PHP変数をJSに渡すためにも使われます。あなたが正しく来たら、新しい質問を始めることを自由に感じてください;-) –

0

<?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); 
?> 
関連する問題