Как отобразить сообщения текущего пользователя в раскрывающемся списке


Я пытаюсь написать шорткод, который работает в сочетании с контактной формой 7 для отображения текущего пользователя, который зарегистрировался в сообщениях.

Я смог заставить его работать с обычными сообщениями, используя этот код здесь:

wpcf7_add_shortcode('postdropdown', 'createbox', true);
    function createbox(){
    global $post;
    $args = array('numberposts' => 0);
    $myposts = get_posts( $args );
    $output = "<select name='cursus' id='cursus' onchange='document.getElementById(\"cursus\").value=this.value;'><option></option>";
    foreach ( $myposts as $post ) : setup_postdata($post);
        $title = get_the_title();
        $output .= "<option value='$title'> $title </option>";

        endforeach;
    $output .= "</select>";
    return $output;
}

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

Любая помощь и указания по этому вопросу будут приветствоваться. Спасибо:)

Author: Nicole, 2012-12-04

1 answers

Используйте 'author' => get_current_user_id() в качестве аргумента для get_posts(). Это ограничит найденные сообщения данными пользователя, который в данный момент вошел в систему.

Лучшей ссылкой для доступных параметров по-прежнему является WP_Query::parse_query() в wp-includes/query.php. Это не совсем атомарная функция, но вы можете найти параметры, не задокументированные в других местах – например, этот.

Примечания к буксиру примыкают к вашему коду:

  1. Ваш обработчик onchange выглядит немного странно. Это ничего не делает, не так ли?
  2. Не используйте get_the_title() для значения атрибутов. Заголовок сообщения может содержать разметку.
    Вместо этого используйте the_title_attribute( array ( 'echo' => FALSE ) );.
 1
Author: fuxia, 2012-12-04 21:50:07