web-dev-qa-db-fra.com

Obtenir tous les messages de post_author

Je crée un tableau de bord d'arrière-plan où je dois afficher tous les messages attribués à utilisateur actuel par le wp admin .

J'attribue le rôle d'utilisateur à Auteur et lors de la création d'un message (en tant qu'administrateur wp), assignez simplement ce message à un auteur à partir du menu déroulant Auteur.

Je dois donc afficher les messages avec le statut Publier . J'utilise maintenant une requête simple, mais elle renvoie toutes les publications.

global $current_user;
get_currentuserinfo();
$user_id = $current_user->ID;    // for current user it is 2

$query = array(
        'post_type' => 'post',
        'post_author' => $user_id,
        'post_status' => array('publish')
    );
$my_posts = query_posts($query);

J'ai aussi codé en dur post_author to 2

J'ai aussi essayé $my_post = new WP_Query(array( 'post_author' => '2' ));

mais échouer.

1
Muhammad Sajid

Merci à Cheikh Heera

if ( is_user_logged_in() ):

    global $current_user;
    get_currentuserinfo();
    $author_query = array('posts_per_page' => '-1','author' => $current_user->ID);
    $author_posts = new WP_Query($author_query);
    while($author_posts->have_posts()) : $author_posts->the_post();
    ?>
        <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>       
    <?php           
    endwhile;

else :

    echo "not logged in";

endif;
2
Muhammad Sajid

La réponse la plus courte possible serait de corriger 'post_author' en 'auteur', puisque c'est la touche _ WP cherche . Si une clé est incorrecte ou mal orthographiée, elle sera ignorée, comme ce fut le cas avec 'post_author'.

1
Karlis Rode

Le mini-plugin suivant ajoute un widget de tableau de bord qui interroge les publications de l'utilisateur actuel dont le statut est publish. Vous pouvez voir get_current_user_id() en cours d'utilisation.

<?php
defined( 'ABSPATH' ) OR exit;
/**
 * Plugin Name: (#91605) Dashboard Widget - User posts
 */

add_action( 'wp_dashboard_setup', 'wpse91605_dbwidget_user_posts' );
function wpse91605_dbwidget_user_posts()
{
    wp_add_dashboard_widget(
         'wpse91605_dbwidget_user_posts'
        ,_e( 'Your published posts', 'your_textdomain' )
        ,'wpse91605_dbwidget_user_posts_cb'
    );
}
function wpse91605_dbwidget_user_posts_cb()
{
    $query = new WP_Query( array(
         'author'         => get_current_user_id()
        ,'post_status'    => 'publish'
        ,'posts_per_page' => -1
        ,'showposts'      => -1
        ,'nopaging'       => true
    ) );
    if ( $query->have_posts() )
    {
        ?><ul><?php
        while( $query->have_posts )
        {
            the_post();
            ?>
            <li><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
                <?php the_title(); ?>
            </a></li>
            <?php
        }
        ?></ul><?php
    }
}
1
kaiser