web-dev-qa-db-fra.com

Comment afficher les messages de l'utilisateur actuel dans une liste déroulante

J'essaie d'écrire un shortcode qui fonctionne conjointement avec le formulaire de contact 7 pour afficher l'utilisateur actuel qui est connecté à des publications.

J'ai pu le faire fonctionner avec des messages réguliers en utilisant ce code ici:

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;
}

Cependant, je ne sais pas trop comment l'adapter pour afficher uniquement les publications que l'utilisateur actuellement connecté a postées.

Toute aide et direction à ce sujet serait la bienvenue. Je vous remercie :)

1
Nicole

Utilisez 'author' => get_current_user_id() comme argument pour get_posts(). Cela limitera les publications trouvées à celles de l'utilisateur actuellement connecté.

La meilleure référence pour les paramètres disponibles est toujours WP_Query::parse_query() dans wp-includes/query.php. Ce n'est pas exactement une fonction atomique, mais vous pouvez trouver des paramètres non documentés ailleurs - comme celui-ci.

Les notes de remorquage butent de votre code:

  1. Votre gestionnaire onchange semble un peu étrange. Cela ne fait rien, n'est-ce pas?
  2. N'utilisez pas get_the_title() pour les valeurs d'attribut. Le titre de l'article peut contenir du balisage.
    Utilisez the_title_attribute( array ( 'echo' => FALSE ) ); à la place.
1
fuxia