显示登录用户的自定义字段

时间:2016-07-31 20:29:36

标签: php wordpress advanced-custom-fields

我试图通过查询所有帖子来获取acf创建的自定义字段。

我尝试了以下内容:

<?php
if ( is_user_logged_in() ):

    global $current_user;
    $current_user = wp_get_current_user();
    $author_query = array('post_status' => array( 'draft' ), 
    'author' => $current_user->ID,
    'meta_query'             => array(
        array(
            'key'       => 'wpgamail_options',
            'key'       => 'ganalytics_settings',
        ),
    ),);
    $author_posts = new WP_Query($author_query);
    while($author_posts->have_posts()) : $author_posts->the_post();
    ?>
    <tr>
    <td>
        <?php the_title(); ?> 
    </td>
    <td>
        <?php $post_date = get_the_date(); echo $post_date; ?>
    </td>
    <td>
        <?php $field = get_field('wpgamail_options', $author_posts->the_post()->ID, true); echo $field['nextfetchtime']; ?> //here I get the error
    </td>
    </tr>    
    <?php           
    endwhile;

else :
    echo "You are not logged in. Please log in!";
endif;
?>

我收到以下错误消息:

  

注意:尝试在第0行调用Unknown中获取非对象的属性   筹码:3.9772 231600 1. {main}()/ home/ubuntu/workspace/index.php:0   3.9774 232048 2.要求(&#39; /home/ubuntu/workspace/wp-blog-header.php')/home/ubuntu/workspace/index.php:17 4.6285 8745184 3。   require_once(&#39; /home/ubuntu/workspace/wp-includes/template-loader.php')   /home/ubuntu/workspace/wp-blog-header.php:19 4.6328 8788784 4。   包括(&#39; /home/ubuntu/workspace/wp-content/themes/twentysixteen/page-create-report.php')   /home/ubuntu/workspace/wp-includes/template-loader.php:75 1469999466

使用[get_field()][1]函数提示我做错了什么?

感谢您的回复!

2 个答案:

答案 0 :(得分:1)

$author_posts->the_post()用于迭代循环中的post索引,您无法使用它来访问当前帖子。相反,您可以使用get_the_ID

<?php $field = get_field('wpgamail_options', get_the_ID(), true); 
      echo $field['nextfetchtime']; ?>

我希望这会有所帮助。

答案 1 :(得分:1)

您使用$author_posts->the_post()->ID时应使用get_the_ID()(而不是显示ID的the_ID()。)
固定代码。

<?php 
$field = get_field('wpgamail_options', get_the_ID(), true);
echo $field['nextfetchtime']; ?> 

此外,您无需执行$current_user = wp_get_current_user();$current_user global已包含当前用户对象。