Homepage im Vorschaumodus anzeigen


7

Gibt es eine Möglichkeit, Ihre Homepage in einem Vorschaumodus anzuzeigen, damit ich überprüfen kann, wie meine Beiträge auf der Homepage aussehen, bevor ich sie veröffentliche (dh um sicherzustellen, dass das vorgestellte Bild richtig aussieht usw.).

Antworten:


6

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 draftBeiträge auf der Website anzuzeigen :

Lassen Sie uns den previewParameter wiederverwenden , um die draftBeiträ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 ;-)


Privat! Ich mag deine Idee. Ich habe über den Code nachgedacht, und Sie haben eine einfache Idee.
Ucon89

Das ist eine kluge und sehr raffinierte Methode. +1
Kaiser
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.