web-dev-qa-db-ja.com

ACF単純テキストフィールドの値が表示されない

カスタム投稿タイプをfunctions.phpに登録しました。

function ourproducts_post_type() {

   /*Labels*/
  $labels = array(
    'name' => _x("Our Products", "post type general name"),
    'singular_name' => _x("Our Products", "post type singular name"),
    'menu_name' => 'Our Products',
    'add_new' => _x("Add New", "ourproducts item"),
    'add_new_item' => __("Add New Product Category"),
    'edit_item' => __("Edit Product category"),
    'new_item' => __("New Product Category"),
    'view_item' => __("View Product Category"),
    'search_items' => __("Search Product categories"),
    'not_found' =>  __("No Product categories Found"),
    'not_found_in_trash' => __("No Product Categories Found in Trash"),
    'parent_item_colon' => ''
  );

  /*Register ourproducts post type*/
  register_post_type('ourproducts' , array(
    'labels' => $labels,
    'public' => true,
    'orderby' => 'menu_order', 
    'has_archive' => false,
    'menu_icon' => 'dashicons-groups',
    'rewrite' => false,
    'supports' => array('title', 'editor', 'thumbnail', 'page-attributes'),
    'show_ui'             => true, 
    'show_in_menu'        => 'custom-options',
    //'menu_position'       => 40,

  ) );
}
add_action( 'init', 'ourproducts_post_type', 0 );

フロントエンド(front-page.phpテンプレートページ)では、ループの外側にフィールド値を次のように表示してみました。

    <h3><?php the_field('nasi_proizvodi', $post->ID); ?></h3>

また、私はループの中でそう試しました:

<?php while ( have_posts() ) : the_post(); ?>

            <h3><?php the_field('nasi_proizvodi'); ?></h3>

<?php endwhile;  ?>

しかし何も示さない。私がそのように投稿IDを明確に書かない限り:

<?php while ( have_posts() ) : the_post(); ?>

            <h3><?php the_field('nasi_proizvodi', 4268); ?></h3>

<?php endwhile;

しかし、この特定の投稿IDだけでなく、動的に変更する必要があります。おもしろいことに、私はすでにフロントページにいくつかのテキストフィールドを作成し(私はテーマを開発しています)、動的にそれらを表示することに問題はありませんでした。何が間違っていますか、何か提案がありますか?

1
Nancy

あなたのポストタイプをチェックして引数を追加してください

<?php 
$query = new WP_Query( array( 'post_type' => 'ourproducts' ) );
if ( $query->have_posts() ) :
    while ( $query->have_posts() ) : 
        $query->the_post(); 
?>
        <h3><?php echo get_field('nasi_proizvodi'); ?></h3>
<?php 
    endwhile; 
    wp_reset_postdata(); 
endif; 
?>
2