0

ワードプレスでは、カスタムページがあり、ページ内で特定のカテゴリの最新の投稿を呼び出そうとしています。

そうすることで、これを追加して変数を作成しました...

$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) :
?>

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

ありがとう

4

1 に答える 1

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'));

更新:ページを使用してカテゴリ情報を表示することはお勧めしませんが、あなたには理由があると確信しています。カテゴリIDの1つが変更されると、多くの問題が発生する可能性があるため、カスタムフィールド内にカテゴリ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;
}
?>
于 2012-05-04T16:43:18.747 に答える