2012-05-04 11 views
0

ワードプレスでは、私はカスタムページを持っていて、ページ内に特定のカテゴリの最新の投稿を呼び出そうとしています。そうget_postsにカスタム変数を追加する

、私は変数を作成し、これを追加...

$cat = get_post_meta($post->ID, "mom_cat", true); 

とページのカスタムフィールドでは、私は私のポストではmom_cat =(変数#)

を追加し、私は私はカスタムフィールドに入れた変数カテゴリ#に基づいて最近の投稿を表示しようとしています。私はこれを試しましたが、うまくいかなかった...

<?php 
global $post; 
$myposts = get_posts('numberposts=4&category=$cat'); 
    foreach($myposts as $post) : 
?> 

これは動作しません。カスタムフィールドの設定に基づいてカテゴリを表示するには、「category =」に変数を追加するにはどうすればよいですか?

おかげ

+0

私はこの... $ myposts = get_posts行うことによってそれを得た(配列( 'numberposts' => 4 'カテゴリ' => $猫を)); –

答えて

2

あなたはWordpressのは、あなたの処分であなたのためのすべてのツールを持っている時にカテゴリを定義するカスタムフィールドを使用するべきではありません。あなたのカスタム投稿が登録されている場所を見つけ、追加してください:

'taxonomies' => array('category') 

...あなたの引数の配列に。これにより、カスタム投稿に必要なカテゴリをチェックすることができます。カスタムポストタイプが登録されている場所を見つけることができない場合は、代わりにあなたのfunctions.phpファイルにこれを追加します。

add_action('init', 'add_category_to_custom'); 
function add_category_to_custom() 
{ 
    register_taxonomy_for_object_type('category', 'custom_post_name'); 
} 

は、あなたはそうのようなカスタムのポストを参照することができます。

$posts = get_posts(array('numberposts' => 4, 'category' => $cat_ID, 'post_type' => 'custom_post_name')); 

更新: Pagesを使用してカテゴリ情報を表示することはお勧めしませんが、あなたの理由があると確信しています。カテゴリIDのいずれかが変更されると、問題が発生する可能性があるため、カスタムフィールド内にカテゴリIDを配置することは避けています。

私があなたのケースでお伝えするのは、それらの特定のページを一致するカテゴリと正確に同じ名前を付けることです。そして、このような何か:

<?php 
/* 
IF THE PAGE HAS A MATCHING CATEGORY, 
DISPLAY 5 OF THE MOST RECENT POSTS IN THAT CATEGORY 
*/ 
if($catID = get_cat_ID(get_the_title(get_the_ID()))) 
{ 
    $posts = get_posts(array('numberposts' => 5, 'category' => $catID)); 
    foreach($posts as $post) : setup_postdata($post); 
    ?> 
     <!-- POST HTML GOES HERE --> 
    <?php 
    endforeach; 
} 
?> 
+0

カスタム投稿と標準投稿の両方をカテゴリ別に取得する場合は、 'post_type' => 'custom_post_name'を 'post_type' =>配列( 'custom_post_name'、 'post')に変更してください。 – maiorano84

+0

私は元の投稿で正しく説明しました。車の例を使って、私はBMW、メルセデス、レクサスなどの話をするブログを持っています。 私はBMW専用のページを作成した後、メルセデス用のページを作成しました。私が作った最後の5つの投稿は、BMWカテゴリの下にリストされていました。カスタムフィールドにBMWカテゴリ(#5など)を入れてみましたが、それは私の変数になりますが動作しませんでした。 –

+0

申し訳ありませんが、私は "カスタムページ"を "カスタム投稿"と読んでいます。確認して、これが役立つかどうかお知らせください。 – maiorano84

関連する問題