Archives.php zeigt nur Inhalte vom Typ 'post' an, aber Sie können es ändern, um benutzerdefinierte Beitragstypen einzuschließen. Fügen Sie diesen Filter zu Ihrer functions.php-Datei hinzu
function namespace_add_custom_types( $query ) {
if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
$query->set( 'post_type', array(
'post', 'nav_menu_item', 'your-custom-post-type-here'
));
return $query;
}
}
add_filter( 'pre_get_posts', 'namespace_add_custom_types' );
Kann ich die Suche so gestalten, dass sie auch benutzerdefinierte Beiträge in den Ergebnissen enthält?
Ja.
Fügen Sie dies in Ihre functions.php ein
Ich gehe auch davon aus, dass Sie 'publicly_queryable' => true, bereits zum $args-Array Ihres CPT hinzugefügt haben.
Ich hoffe, es hilft
Oh Mann, ich habe zwei Tage lang daran herumgebastelt! VIELEN DANK für diese einfach zu implementierende Lösung!
VIELEN DANK! Ich konnte das nicht herausfinden!
Ich benutze das CPT UI-Tool für benutzerdefinierte Beitragstypen. Ich weise ihnen eine Kategorie zu, aber die Beiträge werden nicht angezeigt.
Ich kann nicht herausfinden, wie dieser Code funktionieren soll.
Mein benutzerdefinierter Beitragstyp heißt "Success Stories" und der Slug ist "success-stories".
Kann mir jemand helfen?
Ich habe Probleme bei der Verwendung dieses Snippets. Es führt zu einem weißen Bildschirm des Todes. Ich habe auch in den WordPress-Foren nachgefragt. Aber es gelingt mir nicht, benutzerdefinierte Beitragstypen in Archiven anzuzeigen.
Danke für das Posten! Es hat hervorragend funktioniert.
Danke für diese Code-Snippets zum Archivieren benutzerdefinierter Beitragstypen.
Früher habe ich ein Plugin ("Simple custom post type archives") verwendet, um benutzerdefinierte Beitragstypen zu archivieren, und in meinem Theme musste ich eine Datei verwenden, um das Archiv aller benutzerdefinierten Beitragstypen anzuzeigen.
aber jetzt ist es einfacher!
Danke nochmals
Können Sie etwas mehr Details geben, wie z. B....
Woher weiß es, dass es dies nur auf der Archivseite tun soll? usw.....
Es ist ein kurzes Snippet, daher glaube ich nicht, dass es viel Mühe machen würde. Vielen Dank im Voraus.
Habe dieses Problem gelöst – benutzerdefinierte Beitragstypen auf einer Archivseite anzeigen lassen – aber das Mega-Menü wird leer, einige Bilder werden auf der Willkommensseite nicht angezeigt, das Menü/die Navigation des Willkommensseiten-Sliders funktioniert nicht...
WP3.2.1, Magazinum Theme, Design Chemical Mega Menu, Custom Post Types UI
Danke, aber ich glaube nicht, dass diese Ergänzung zur functions.php-Datei wirklich benutzerdefinierte Beitragstypen einschließt. Ich stimme Cav zu. Es muss eine detaillierte Anleitung geben.
Danke..
Ich habe es geschafft :)
if( is_home() || is_tag() && empty( $query->query_vars[‘suppress_filters’] ) )
Schließen Sie auch 'nav_menu_item' ein, wenn Sie nicht möchten, dass Ihre Menüs verschwinden!
Hallo und danke für das Code-Snippet!
Ich habe ein Theme, das aktuelle Beiträge auf der author.php-Vorlage anzeigt, und leider werden nav_menu_items als Beiträge angezeigt (mit leerem Inhalt). Ohne nav_menu_item ist das Navigationsmenü verschwunden, daher suche ich nach etwas, das benutzerdefinierte Beitragstypen zu meinen Archiven hinzufügt, ohne die nav_menu_items irgendwo anders zu integrieren...
Ich konnte bisher keine Lösung finden, daher wäre jede Hilfe sehr willkommen!
Viele Grüße,
Thomas
Ja, die Aufnahme von "nav_menu_item" war der Schlüssel für mich. Vielen Dank, John B.
Danke Jon. Lebensretter.
Jon, danke! Ich habe das ursprüngliche Snippet verwendet, festgestellt, dass mein Menü verschwunden war, und konnte nicht verstehen, *warum*. Unglaublich wenig Informationen dazu – obwohl Leute das gleiche Problem haben – mit einer oberflächlichen Google-Suche. Ich hatte vergessen, woher ich das Snippet hatte, stieß *wieder* auf Chris' Seite, dachte: "Wow. Es ist exakt der gleiche Code. Muss von dort stammen, wo ich ihn herhabe", und fand dann deinen Kommentar.
Das hat den Trick gemacht. Heilige erschöpfte, aber dankbare Batman.
Rettung. Konnte nicht verstehen, warum meine Navigationsmenüs verschwanden. Danke.
Vielen Dank, Jon. Hat mir viel Zeit gespart!
Du hast mich gerettet, Jon, vielen Dank.
Danke, Jon!
Danke für den Hinweis, Jon B! Chris, du solltest dein Snippet aktualisieren, um Jons Vorschlag aufzunehmen.
Ich werde den Beitrag aktualisieren, da dies offensichtlich besser ist. =)
Ich denke, dies sollte durch Hinzufügen gelöst werden
zu Ihren Bedingungen
Danke für den Menü-Tipp, Jon B – genau das, wonach ich gesucht habe.
Ich habe einen CPT namens "product". Dieser CPT hat ein einzigartiges Format/Design (nicht wie normale WordPress-Beiträge), aber die gleichen Fähigkeiten (Tags und Kategorien). Wie kann ich diesen benutzerdefinierten Beitragstyp auf der Homepage, im Archiv usw. trennen???
Danke, :)
Liebe es! Hat wie ein Zauber funktioniert.
Danke Jungs!
Mit suppress filters können Sie auch die Anhangsseiten beeinflussen
Eine mögliche Lösung
function my_get_posts( $query ) {
if(!is_admin() || is_archive()){
if (!is_post_type_archive() && $query->is_main_query() )
$query->set( ‘post_type’, array( ‘post’, ‘page’, ‘post-format’, ‘video’, ‘slideshow’, ‘timeline’ ) );
return $query;
}
}
!is_admin – ohne dies werden auch die Suchen in Admin-Seiten beeinflusst.
Eine Demo hier
http://www.zurita-bach.com/
Im Moment habe ich nur "timeline" als benutzerdefinierten Beitrag
Ersetzen Sie $query->$query->is_main_query()
mit $query->is_archive()
Danke Jon B, du bist der Boss!
Ich habe festgestellt, dass dies **ein Problem beim Abfragen eines post_type und einer cat** verursacht.
Sie können dies im Backend sehen, indem Sie eine Kategorie-Liste für einen benutzerdefinierten Beitragstyp aufrufen
Klicken Sie auf den Menüpunkt "Kategorie" eines benutzerdefinierten Typs, dann auf die Zahl, um die Beiträge in dieser Kategorie anzuzeigen.
wp-admin/edit.php?category_name=some_cat&post_type=some_type
Sie sehen, dass die angezeigten Beiträge scheinbar jeder Typ außer dem abgefragten sind.
Auch mit Anas Lösung, die angeblich den Admin ausschließt.
Hallo Alvar, meine endgültige Lösung
add_filter( ‘pre_get_posts’, ‘my_get_posts’ );
function my_get_posts( $query ) {
if(!is_admin()){
if (!is_post_type_archive() && $query->is_archive())
$query->set( ‘post_type’, array( ‘post’, ‘page’, ‘post-format’, ‘video’, ‘slideshow’, ‘timeline’ ) );
return $query;
}
}
@Ana: Vielen Dank, dies (&& $query->is_) hat mein Problem mit dem Widget "Neueste Beiträge" gelöst (zuvor wurden alle Beitragstypen angezeigt).
Ich habe jeden Code hier getestet und dieser hat **perfekt** funktioniert. Danke Ana!!!
Ich werde ihn zur einfachen Kopieren und Einfügen in einen Codeblock stellen
Wow. ANA, das hat mir gerade den Arsch gerettet. Das hat für mich funktioniert.
Danke Ana!!
Hat meinen Tag gerettet. Danke!
Ich denke, Anas Code ist einer Lösung nahe.
Das Problem auf meiner Seite ist, dass ich Widgets habe, die benutzerdefinierte Beitragstypen anzeigen. Z.B. "Zufälliges Testimonial", "Aktuellster Tipp" usw.
Auf den Seiten, auf denen diese Funktion verwendet wird (das Kategorie-Archiv für meinen benutzerdefinierten Beitragstyp), werden diese Widgets verwirrt und zeigen den Inhalt eines anderen Beitragstyps an – so kann das zufällige Testimonial-Widget stattdessen einen zufälligen Tipp anzeigen.
Haben Sie eine Idee, was ich entweder an dieser Funktion oder an meinen Widgets ändern kann, damit sie gut zusammenarbeiten?
Danke für den Code... Er hat für mich hervorragend funktioniert... Und genau das habe ich gesucht:)
Okay, mein Problem war, dass dies alle meine Widgets (z. B. neuestes Testimonial) dazu brachte, den falschen Beitragstyp abzurufen.
Hier ist der Code, mit dem ich es gelöst habe.
Dieses Code-Snippet hat mir den Hintern gerettet... eine Frage... wie füge ich zusätzliche Argumente wie &orderby=title und &order=asc hinzu? Danke!
Das hat für mich am besten funktioniert
Es hat die Navigation, meine Widgets und die benutzerdefinierte Abfrage auf der Startseite intakt gehalten.
Danke Daan!
Sie sind ein Genie! Vielen Dank!
Danke Daan! Das war auch für mich die Lösung.
Ich hätte erwähnen sollen, dass ich
!is_admin()
zur Bedingung hinzugefügt habe, damit nicht alle meine benutzerdefinierten Beitragstypen im Kontrollfeld und auch auf den Archivseiten angezeigt werden.
Daans Lösung funktioniert perfekt.
Funktioniert das letzte Posting super. Danke! Aber... es bedeutet jetzt im wp-admin, dass in jeder Liste der benutzerdefinierten Beitragstypen alle verschiedenen benutzerdefinierten Beitragstypen angezeigt werden, außer dem, auf das wir gerade geklickt haben
Dieses Problem tritt bei mir auch auf. Ich verwende Daans Code und wenn ich dieses kleine Problem beheben kann, ist es genau das, was ich brauche.
Zugegeben, ich weiß, dass dieser Kommentar etwa 4 Monate alt ist, aber ich habe herausgefunden, wie man dieses Problem löst.
In Ihrer functions.php-Datei, in der Sie Ihren benutzerdefinierten Beitragstyp erstellt haben, ändern Sie diese Zeile
Und das sollte das Problem beheben! :) Auf meiner Seite hat es das zumindest getan, also hoffe ich, es hilft auch anderen!
Der Code von Dann ist perfekt für die Fehlerbehebung mit Widgets, gibt mir aber ein Problem bei der Anzeige benutzerdefinierter Beitragstypen im Menü. Wenn neben "is_category" "is_tag" hinzugefügt wird, löst es sich auf diese Weise
function view_AllCustomPost($query) {
if ($query->is_category) $query->set( ‘post_type’, array(
‘post’, ‘nav_menu_item’, ‘custom_post_type’)
);
}
add_action(‘pre_get_posts’, ‘view_AllCustomPost’);
Wir wurden kürzlich damit beauftragt, eine Legacy-WP-Website zu aktualisieren, und dieser Thread hat uns sehr geholfen. Unsere Navigationspunkte sind jedoch verschwunden, stellen Sie also sicher, dass Sie "nav_menu_item" wieder hinzufügen.
Ich hatte bessere Erfolge mit der Modifizierung der Hauptabfrage.
http://wordpress.stackexchange.com/questions/27104/how-to-display-regular-posts-custom-post-types-that-fall-under-a-category-usin
Okay, mein obiger Kommentar hat sich doch nicht bewährt. Wo ich auf Probleme gestoßen bin, war auf einer Archivseite für einen benutzerdefinierten Beitragstyp. Ich konnte alles mit diesem zum Laufen bringen
Ich hoffe, das hilft jemandem, denn es war ein Bär zu verstehen ;)
Danke! Das hat für mich funktioniert.
Daans Lösung hat bei mir mit WooThemes funktioniert. Ich habe die Funktion einfach in meine benutzerdefinierte Plugin-Datei eingefügt.
Danke!
Tatsächlich hat Daans Code auf meinen Autoren-Archivseiten nicht richtig funktioniert, daher musste ich "nav menu item" und "post" aus dem Array entfernen. Mein endgültiger funktionierender Code ist
Hier ist ein Beispiel für eine alternative Syntax – meiner Meinung nach eleganter – zum Hinzufügen eines benutzerdefinierten Beitragstyps namens "lecture" zu Ihren Taxonomie- und Datumsarchiven
Wenn Sie alle Beitragstypen einbeziehen möchten, könnten Sie
get_post_types()verwenden, um alle benutzerdefinierten Beitragstypen dynamisch abzurufenDanke Alec! Dieser Artikel sollte ABSOLUT mit Ihrer Lösung aktualisiert werden.
Sie, Sir, sind ein Rockstar!!
Das hier hat mir geholfen
`$args = array( ‘posts_per_page’ => 10,’post_type’=>’videos_’, ‘category’ => 3 );
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
<a href="”>
<?php endforeach; `
Ich freue mich, dass Sie es hilfreich fanden, Ben!
Dieses Stück Code hat mir das Leben gerettet. Tausend Dank.
Ich arbeite an einer benutzerdefinierten Website für das Unternehmen, für das ich arbeite, mit WordPress, aber mein Direktor möchte, dass die Beiträge sich wie Seiten verhalten und die Seiten sich wie Beiträge. Ich habe das bisher erledigt, aber ich (nun, wenn ich Haare hätte, würde ich...) ziehe mir die Haare aus, um herauszufinden, wie ich es so machen kann, dass, wenn man auf den Menüpunkt klickt, der normalerweise von der archive.php-Datei gespeist wird und die Beiträge abruft, unsere Inhalte in Seiten untergebracht sind, sodass dies nichts passendes zur Suche anzeigt... keine Werte zurückgibt.
Ich habe alle hier aufgeführten Snippets ausprobiert, ohne Erfolg, und bin bestenfalls Anfänger, wenn es um PHP geht. Alles, was ich will, ist, dass Seiten im Archiv-Feature wie Beiträge angezeigt werden!
Hilfe!?
Großartig! Danke!
Hallo Leute.
Gutes Beispiel!
Ist es möglich, Kategorie.php so zu gestalten, dass sie benutzerdefinierte Beitragstypen einschließt?
Hugs!
Noch einmal, Alter. Du bist der absolute Hammer.
Vielen Dank.
Guter Tipp.
Ziemlich cooler Trick. Danke :)
Jon Bs und Daans Lösungen haben beide für mich funktioniert, super! Thx!
Warum funktioniert das nicht von Haus aus?!? Hat mich stundenlang suchen lassen :S
Dieses Snippet funktioniert nicht mit WPML. Hat jemand eine Idee, warum es auf mehrsprachigen Websites nicht funktioniert?
Danke,
Bart
Ich habe das gleiche Problem... haben Sie eine Lösung gefunden? Haben Sie das WPML-Supportteam kontaktiert?
Haben Sie das gleiche Problem? Hat jemand eine Idee oder eine Lösung?
Vielen Dank für Ihre Hilfe, das Snippet funktioniert ohne WPML super ;)
Emilien
Hallo Emilien,
Ich habe das behoben. Ich habe das auch WPML gemeldet, aber sie haben das Problem irgendwie ignoriert... hier ist der Thread und wie ich es behoben habe: https://wpml.org/forums/topic/wpml-breaks-category-archives-for-custom-post-types/
Hallo Bart und danke für Ihre Nachricht,
Ich habe das endlich gelöst, aber auf eine andere Weise als Sie. Hier ist das Snippet, zu dem ich gekommen bin.
Vielen Dank nochmals für Ihre Hilfe, einen schönen Tag noch!
Emilien
Danke für den Beitrag. Ist es möglich, Elemente/Kategorien von benutzerdefinierten Beitragstypen zum Standard-WordPress-Archiv-Widget hinzuzufügen? Es zeigt nur Beiträge an.
Danke für diesen Beitrag, und die Menü-Lösung hat das Problem gelöst, aber meine nicht :(
Ich erstelle mein eigenes Theme und habe erfolgreich 2 benutzerdefinierte Beitragstypen erstellt und zeige sie in meinem Blog an. Das einzige Problem ist, dass meine archive.php nur normale Beiträge anzeigt, meine benutzerdefinierten Beitragstypen werden nicht angezeigt (auch nicht nach der Verwendung dieses Codes).
Kann mir jemand sagen, welche Datei ich noch überprüfen muss, um dieses Problem zu lösen?
Danke..
Ich stimme Vlada zu. Hat jemand eine Lösung, die auf dem Hauptblog, den Kategorieseiten und den Archivseiten funktioniert? Wenn das gepostet wurde, meine Entschuldigung, aber ich kann die Lösung nirgendwo finden.
Wie verknüpfe ich eine benutzerdefinierte Beitragseite mit einer Archivseite?
Das Problem bei allen oben genannten Lösungen, das meiner Meinung nach niemand erwähnt hat, ist die Tatsache, dass alles funktioniert, bis man zu einem Archiv für benutzerdefinierte Beitragstypen kommt. Es zeigt alle Beiträge wie einen Haupt-Feed an. Hier ist die endgültige funktionierende Lösung auf allen WordPress-Seiten. Wenn Sie Fehler sehen oder etwas Besseres finden, lassen Sie es mich wissen :)
Ich hatte Probleme mit dem ursprünglichen Code, der einen Fehler bei den Filtern für reguläre Beiträge verursachte, "ungültiger Beitragstyp". Develocoms aktualisiertes Snippet hier funktioniert jedoch.
JA!!!!!!!! Nach einem Tag und einem halben ENDLICH etwas, das für mich funktioniert!
Hallo, ich habe das gleiche Problem wie alle anderen hier, dass meine Navigationsmenüs verschwunden sind. Das Seltsame ist, dass alles auf meiner lokalen Installation in Ordnung war, als ich dieses Theme entwickelte, aber als ich das Theme auf einem Server installiert habe, verschwanden meine Menüs. Wenn jemand eine Einsicht hat, würde ich mich freuen.
Die Website ist hier.
Hier ist der Code, den ich verwende, angepasst aus diesem Thread
Syntaxfehler irgendwo anders in meinem Code! Ha!
Hallo,
Ist es möglich, die Anzahl der Beiträge pro Seite im selben Code zu definieren oder zu begrenzen?
Vielen Dank,
Das war sehr hilfreich, danke! Es hat für mich funktioniert.
Ich habe die verschiedenen bereitgestellten Lösungen ausprobiert und hatte einige Probleme, abhängig von der Version. Das größte Problem war mein Masonry-Layout – anyway, ich habe Ideen kombiniert und all meine Probleme wurden gelöst – kein Navigationsmenü-Problem, keine seltsamen Masonry-Layout-Probleme und alles erschien, wo es sein sollte. Entschuldigung, das ist lang, ich bin nur SO GLÜCKLICH. Falls es jemand anderem helfen kann – hier ist es...
Ich style die Seite noch ein wenig, aber Sie können sie hier sehen.
DANKE AMY!! Ich habe zu lange daran gearbeitet, und Ihre Lösung war perfekt!! Ich hatte auf verschiedene Weise Probleme mit all den anderen Code-Snippets. Nochmals vielen Dank fürs Teilen! Sie sind großartig!! :D
Kann mir jemand helfen? Ich passe die Suche an – aber meine Navigation verschwindet, wenn ich die Anpassung vornehme..
Habe die Lösung gefunden, musste
$query->is_main_query()zur if-Bedingung hinzufügen, siehe http://wordpress.stackexchange.com/a/52530Hallo,
Widget-Archiv und Widget-Kalender sind leer, wenn es nur benutzerdefinierte Beitragstypen gibt (keine Blog/Standard-Beiträge). Ich kann den Monat im Archiv nicht sehen oder einen Tag im Kalender nicht anklicken, wenn es für den Zeitraum keinen einzigen Blogbeitrag gibt. Die Archivseite ist in Ordnung (zeigt alle Beiträge mit demselben Tag oder Datum an)
Gibt es eine Möglichkeit, die Widgets zu verwenden, wenn es nur benutzerdefinierte Beiträge gibt?
Ich habe vieles ausprobiert.. Ich verwende diesen Code
add_filter( ‘pre_get_posts’, ‘my_get_posts’);
function my_get_posts( $query ) {
if(!is_admin()){
if (!is_post_type_archive() && $query->is_archive())
$query->set( ‘post_type’, array( ‘post’,’portfolio’ ) );
return $query;
}
}
Vielen Dank dafür.
Um mir die manuelle Eingabe jedes benutzerdefinierten Beitragstyps zu ersparen, habe ich Folgendes getan, um automatisch alle öffentlichen Beitragstypen hinzuzufügen, und es scheint zu funktionieren.
Sollte die Wartung von Themes erleichtern, wenn zukünftige Beitragstypen hinzugefügt werden.
Ich habe es mit allem Code versucht. Nachdem ich es mehrmals versucht habe... funktioniert dieser Code für mich. Hier ist mein Code
function namespace_add_custom_types( $query ) { if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) { $query->set( 'post_type', array('nav_menu_item', 'post', 'post_type_1', 'post_type_2', 'post_type_3', 'post_type_4', 'post_type_5', 'post_type_6', 'post_type_7') ); return $query; } } add_filter( 'pre_get_posts', 'namespace_add_custom_types');Hallo Chris,
Hier ist ein Plugin, das ich erstellt habe und das helfen kann, ein benutzerdefiniertes Archiv für jeden post_type / jede Taxonomie zu erstellen. Sie können aus vielen Basiselementen wie Karten, Abzeichen, Pin-Karten (Pinterest-ähnliches Layout) wählen. Dann können Sie benutzerdefinierte Beiträge nach Beitragstyp, Taxonomie usw. filtern. Schließlich können Sie alle CSS-Änderungen an Ihren „Elementen“ vornehmen. Alle Änderungen werden in einer Live-Vorschau angezeigt.
Hier ist es: http://www.pauple.com/elementary/
OMG. Wenn ich das doch nur 2 Stunden früher gegoogelt hätte…. Danke!
Übrigens hat dieser Code bei mir funktioniert, ich musste ihn nicht ändern, nur in meine functions.php einfügen und voilà!
Danke! Dieser Code hat bei mir funktioniert!
Problem behoben, vielen Dank
Okay. Dieser Code hat gerade meine geistige Gesundheit gerettet. Wow. Ich kann nicht glauben, dass ich das bezüglich des Archivs, das keine CPT anzeigt, nicht wusste. Danke. Danke. Danke.
Danke dafür, aber ich muss mehrere benutzerdefinierte Beitragstypen hinzufügen und ich kann die Syntax nicht herausfinden – ich schätze, ich soll ein Array von Beitragstypen hinzufügen?
Jede Hilfe wäre sehr willkommen!
Vielen Dank für diese Snippets! Ich wusste, dass es einen Weg gibt, das zu tun, aber ich musste danach bei Bing suchen. Das hilft auch 2019 noch vielen Leuten.
Hallo Team – Wie erlauben wir benutzerdefinierte Datumsarchivvorlagen für benutzerdefinierte Beitragstypen? Anstatt nur die Verwendung von date.php zu erlauben, ist es möglich, eine Vorlage wie date-mycustomposttype.php zu priorisieren?
Das scheint nicht mehr zu funktionieren. Ich hatte es auf meiner Website mit Divi eingebunden und es hat jahrelang gut funktioniert. Heute habe ich nachgesehen und die Beiträge werden nicht mehr in meinen Feeds angezeigt. Irgendeine Idee warum?
Ich bin mir nicht ganz sicher, warum es nicht mehr funktionieren sollte, aber vielleicht könnte eine leichte Umformulierung der Funktion helfen
Oder, wenn möglich, fügen Sie eine Datei
archive-$post-type.phpin einem Child-Theme hinzu und fügen Sie dort eine Schleife ein.