Support » Allgemeine Fragen » Custom Post Type in „In Kürze veröffentlichen“ integrieren

  • Moin zusammen

    Ich arbeite auf meinem Blog mit einer Reihe von Custom Post Types, die ich auch gerne im Activity Widget sehen würde. Nach langem googlen und ausprobieren, habe ich nun ein Script laufen, das mir die CPTs unter „Kürzlich veröffentlicht“ anzeigt. Unter „In Kürze veröffentlichen“ erscheinen aber nach wie vor nur die WordPress-eigenen Posts.

    Alle bisherigen Versuche, die geplanten CPTs anzeigen zu lassen, haben nicht zum gewünschten Ergebnis geführt.

    Hat jemand eine Idee, wie ich nachfolgendes Script erweitern/modifizieren muss, damit ich auch meine geplanten CPTs im Widget sehe?

    Vielen Dank im Voraus.

    add_filter( 'dashboard_recent_posts_query_args', function ( $query_args ) {
    	$post_types = get_post_types( array( 'public' => true) );
      if ( is_array( $query_args['post_type'] ) ) {
        $query_args['post_type'] = $post_types;
      } else {
        $temp = $post_types;
        $query_args['post_type'] = $temp;
      }
      	$query_args['posts_per_page'] = 10;
      return $query_args;
    });

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 7 Antworten - 1 bis 7 (von insgesamt 7)
  • add_filter( 'dashboard_recent_posts_query_args', 'coming_soon' );
    function coming_soon($query_args){
      $query_args['post_type'] = array('post','portfolio');
      return $query_args;
    }

    zeigt normale Beiträge sowie Posts des CPT portfolio bei „in Kürze veröffentlichen“ und „kürzlich veröffentlicht“.

    Wenn du alle Beitragsarten verwenden möchtest, kannst du einfach als Beitragsart any nehmen:

    add_filter( 'dashboard_recent_posts_query_args', 'coming_soon' );
    function coming_soon($query_args){
      $query_args['post_type'] = 'any';
      return $query_args;
    }

    Deine Funktion ist schon nah dran, aber …

    add_filter( 'dashboard_recent_posts_query_args', 'coming_soon' );
    function coming_soon($query_args){
      $args = array(
       'public'   => true
      );
      $post_types = get_post_types( $args );
    	  
      $query_args['post_type'] = $post_types ;
      return $query_args;
    }

    (die Funktion coming_soon() sollte mit einem ordentlichen Präfix versehen werden, ich wollte hier nur rasch ein lesbares Beispiel bringen)

    • Diese Antwort wurde geändert vor 5 Jahren, 7 Monaten von Bego Mario Garde. Grund: Fehler korrigiert
    Thread-Starter justyumyum

    (@justyumyum)

    Moin Bego,

    Danke für Deine Antwort.

    Mit diesem Snippet hatte ich es tatsächlich auch schon probiert. Es führt allerdings dazu, dass nur noch die veröffentlichten Posts (inkl. CPTs) angezeigt werden. Die Anzeige geplanter Posts verschwindet komplett.

    Ich habe auch schon versucht, das über die Angabe von post_status mit publish und future irgendwie hinzubekommen. Das aber führt zu ganz seltsamen Ergebnissen.

    Grüße
    Carsten

    Es führt allerdings dazu, dass nur noch die veröffentlichten Posts (inkl. CPTs) angezeigt werden. Die Anzeige geplanter Posts verschwindet komplett.

    Kann ich nicht nachvollziehen. Ich hatte den Code getestet und es wurden veröffentlichte und geplante Beiträge und Custom-Post-Type-Posts in den entsprechenden Bereichen angezeigt.

    (Meine Korrektur hast du gesehen? Ich hatte versehentlich noch ein '_builtin' => false drin, das ich aber wieder rausgenommen habe.)

    Thread-Starter justyumyum

    (@justyumyum)

    Ich habe jetzt auch nochmal ein bisschen mit den Snippets herumgetestet, werde aber nicht schlau draus.

    Es gibt aktuell einen geplanten Post, ein geplantes Event und ein geplantes Produkt.

    Je nach Snippet ist das Ergebnis unterschiedlich. Wenn etwas als geplanter Post erscheint, ist es immer nur das WooCommerce Produkt. Daher hatte ich zunächst WooCommerce auch als Verursacher im Verdacht.

    Aber auch das Deaktivieren von WooCommerce und sämtlicher damit verbundener Plugins ändert nichts am Ergebnis.

    „Ergebnis“ verlinkt auf den jeweiligen Screenshot des Activity Boards. Die Funktion hatte beim Testen dann auch immer den eindeutigen prefix jyy_.

    Code-Snippet 1 mit array('post','event');Ergebnis
    Code-Snippet 1 mit array('post','event','product');Ergebnis
    Code-Snippet 2 mit anyErgebnis
    Code Snippet 3 – Ergebnis

    Das ist für mich schwer nachvollziehbar, weil ich nicht weiß, welche Posts du unter welchem Posttype veröffentlicht bzw. geplant hast.

    Setz doch auch mal die Anzahl der angezeigten Posts hoch. ($query_args['numberposts'] = 25).

    Hm, vermutlich eher
    $query_args['posts_per_page'] = 25

    Thread-Starter justyumyum

    (@justyumyum)

    Soeben mit allen Snippets ausprobiert.

    Das Ergebnis bei den geplanten Posts bleibt unverändert, unter den bereits veröffentlichten Posts erscheinen allerdings die 25 Einträge mit CPTs inkl built-in posts.

    Mir scheint es, als wenn die Query-Statements nur gegen „published posts“ wirken.

    Bei meiner gestrigen Recherche bin ich im englischsprachigen WP-Forum auch über einen Eintrag gestolpert, in dem jemand schreibt:

    In wp-admin/includes/dashboard.php, the activity is output by calling wp_dashboard_recent_posts twice, first for future posts and then for recent posts.

    Leider bliebt die Posterin eine Antwort schuldig.

    Könnte es sein, dass man future posts gesondert ansprechen muss?

    How to add Custom Post type to WordPress activity widget in Dashboard

Ansicht von 7 Antworten - 1 bis 7 (von insgesamt 7)
  • Das Thema „Custom Post Type in „In Kürze veröffentlichen“ integrieren“ ist für neue Antworten geschlossen.