Obține toate articolele după post_author
Îmi creez un panou de administrare în care trebuie să afișez toate articolele atribuite utilizatorului curent de către administratorul WordPress.
Am atribuit rolul de Autor utilizatorului și în timp ce creez articole (ca administrator WordPress) atribui articolul unui autor din meniul drop-down Autor.
Așadar, trebuie să afișez articole cu statusul Publicat. Momentan folosesc o simplă interogare query_posts dar returnează toate articolele.
global $current_user;
get_currentuserinfo();
$user_id = $current_user->ID; // pentru utilizatorul curent este 2
$query = array(
'post_type' => 'post',
'post_author' => $user_id,
'post_status' => array('publish')
);
$my_posts = query_posts($query);
Am încercat și cu post_author hardcodat la 2
Am încercat și $my_post = new WP_Query(array( 'post_author' => '2' ));
dar nu funcționează.

Cea mai scurtă posibilitate de răspuns ar fi să corectezi 'post_author' în 'author', deoarece acesta este cheia pe care WordPress o caută. Dacă o cheie este incorectă sau scrisă greșit, aceasta va fi ignorată, așa cum a fost cazul cu 'post_author'.

Mulțumiri către [Sheikh Heera][1]
if ( is_user_logged_in() ):
global $current_user;
get_currentuserinfo();
$author_query = array(
'posts_per_page' => '-1', // Număr de articole pe pagină (-1 = toate articolele)
'author' => $current_user->ID // ID-ul autorului curent
);
$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 "nu ești autentificat";
endif;
[1]: https://stackoverflow.com/users/741747/sheikh-heera

Următorul mini-plugin adaugă un widget în panoul de control care interoghează postările utilizatorului curent care au statutul publish
. Puteți vedea funcția get_current_user_id()
în utilizare.
<?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( 'Postările tale publicate', '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
}
}
