Я хочу, чтобы get_posts возвращал только сообщения зарегистрированного пользователя - PullRequest
0 голосов
/ 21 февраля 2019

Вот мой код:

Я хотел бы только возвращать сообщения зарегистрированного пользователя.

Я заполняю раскрывающуюся форму в формах гравитации WordPress.

$current_user = _wp_get_current_user(); 
function populate_posts( $form) {
   foreach ( $form['fields'] as &$field ) {
       if ( $field->type != 'select' || strpos( $field->cssClass, 'populate-posts' ) === false ) {
         continue;
       }
       $posts = get_posts( 'post_type=credit cards&numberposts=-1&post_status=publish&author=$current_user' );
       $choices = array();
       foreach ( $posts as $post ) {
         $choices[] = array( 'text' => $post->post_title, 'value' => $post->post_title );
       }
       $field->placeholder = 'Select Credit Card';
       $field->choices = $choices;
   }

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Вы также можете использовать WP_Query ()

$user = wp_get_current_user();
$query_args = array(
    'post_type' => 'post',
    'author' => $user->ID,
);
$query = new WP_Query($query_args);

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        $post = $query->post;
        echo $post->post_title;
    }
    wp_reset_postdata();
}
else{
    echo 'No posts found.';
}
0 голосов
/ 21 февраля 2019

Насколько я понимаю, ваш вопрос заключается в том, чтобы получить "Сообщение текущего пользователя". Затем приведен его код ниже.

1) Вам необходимо передать идентификатор автора (идентификатор текущего пользователя) в качестве аргумента.

$current_user = wp_get_current_user();
$args = array(
'author'        =>  $current_user->ID,
'orderby'       =>  'post_date',
'order'         =>  'ASC',
);

2) Передать аргумент выше - это пост, как показано ниже:

$current_user_posts = get_posts( $args );

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...