Ich denke, Sie können Ihren Beitrag so einstellen private
, dass er privat auf der Homepage angezeigt wird.
Sobald Sie die Sichtbarkeit in "Privat" ändern, ändert sich der Beitrags- oder Seitenstatus wie gezeigt in "Privat veröffentlicht". Private Beiträge werden automatisch veröffentlicht, sind jedoch nur für Personen mit den entsprechenden Berechtigungsstufen (Herausgeber oder Administrator) sichtbar.
Siehe hier .
Hier ist eine Idee, um draft
Beiträge auf der Website anzuzeigen :
Lassen Sie uns den preview
Parameter wiederverwenden , um die draft
Beiträge zur aktuellen Seitenansicht hinzuzufügen , zum Beispiel:
- example.com/?preview=true
- example.com/2014/01/?preview=true
Anschließend ändern wir alle Frontend-Abfragen für angemeldete Benutzer mit:
add_filter( 'posts_where', function( $where ){
if( ! is_admin()
&& is_user_logged_in()
&& 'true' === get_query_var( 'preview' )
&& ! is_singular() )
{
global $wpdb;
$from = sprintf( "%s.post_status = 'publish'", $wpdb->posts ) ;
if( current_user_can( 'edit_others_posts' ) )
{
// add drafts from all users:
$to = sprintf( "%s.post_status IN ( 'publish', 'draft' ) ", $wpdb->posts ) ;
}
else
{
// add drafts from current user:
$sql = " ( %s.post_status = 'publish'
OR ( %s.post_status = 'draft' AND %s.post_author = %d ) ) ";
$to = sprintf( $sql,
$wpdb->posts,
$wpdb->posts,
$wpdb->posts,
get_current_user_id()
);
}
$where = str_ireplace( $from, $to, $where );
}
return $where;
});
Wir könnten is_main_query()
jedoch die Änderungen auf die Hauptabfrage beschränken.
ps: das muss vielleicht getestet oder angepasst werden ... aber du kommst auf die Idee ;-)