Weitere Informationen und den Download findest du auf der offiziellen Anlaufstelle de.wordpress.org
Ergebnis 1 bis 8 von 8
  1. #1
    PostRank: 0
    Registriert seit
    17.03.2017
    Beiträge
    8

    Variable in query_post einsetzen

    Hallo

    Ich habe folgendes Problem:
    Ich möchte in meiner archive.php einen Filter für Custom Post Types („tiere“) setzen, mit dem ich die posts-types „tiere“ nach Kategorien filtere. Klappt soweit auch:

    query_posts('post_type=tiere&post_status=publish&c ategory_name=tiere-in-deutschland');

    Nun habe ich aber ca. 50 Kategorien, und ich möchte nicht unbedingt 50 archives erstellen, die sich nur im Filter unterscheiden. Da ich die Menü-Pages und die Kategorien gleich benenne, möchte ich anhand des Seitennamens den Filtereintrag für die Kategorie setzen (z.B. Bei Aufruf der Seite „tiere-in-deutschland“ soll im Filter der categorie_name=tiere-in-deutschland auftauchen, z.B :

    $pagename = get_query_var('pagename');
    query_posts('post_type=tiere&post_status=publish&c ategory_name=$pagename‘);

    Dies funktioniert aber nicht, auch wenn ich anstelle von =$pagename, =echo $pagename oder
    =get_query_var('pagename') einsetze.

    Da ich mich erst seit ca. 3 Wochen mit WP, HTML, CSS und PHP beschäftige, vermute ich, dass ich hier einfach einen Syntax-Fehler habe (die Variable (echo) $pagename gibt tatsächlich tiere-in-deutschland zurück) .

    Mein Thema hat keine category.php, vielleicht wäre alles einfacher, wenn ich eine category.php erstellen würde und hier den post_type „tiere“ integriere.

    Theme: twentysixteen
    Plugin: Custom Post Types
    WP-Version 4.7.3

    Herbert


  2. #2
    PostRank: 10 Avatar von SirEctor
    Registriert seit
    28.10.2008
    Beiträge
    9.682
    Du benennst Seiten genau so wie Kategorien? Damit hat WordPress ein Problem, gleiche Slugs werden falsch interpretiert. Ich denke schon alleine, dass hier kaum ein brauchbares Ergebnis bei rum kommt.
    Das Geheimnis des Könnens liegt im Wollen!

  3. #3
    PostRank: 10
    Registriert seit
    28.07.2011
    Beiträge
    1.655
    @Herbertf2, vielleicht denkst du viel zu kompliziert.

    Wenn du eine Kategorie „Tiere in Deutschland“ hast (Slug tiere-in-deutschland), wird unter deine-domain.tld/tiere-in-deutschland/ eine Kategorieübersichtsseite aufgerufen, in der deine Beiträge der Kategorie „Tiere in Deutschland“ gelistet sind.

    Könnte es sein, dass das das Verhalten ist, das du mit deinem komplizierten Gebastel erreichen willst?
    => Wenn ja: dann mach es einfach so.
    => Wenn nein: Was passt nicht?

    Gruß
    helix

  4. #4
    PostRank: 0
    Registriert seit
    17.03.2017
    Beiträge
    8
    Hallo SirEctor, Hallo Helix,

    erst einmal vielen Dank für die Antworten.

    Das Problem mit dem Anzeigen der Kategorien liegt darin, dass ich einen Custom-Post-Type ("tiere") verwende. Normale "posts" werden auch auf den entsprechenden Kategorieseiten angezeigt, aber eben keine post_types "tiere".
    Wenn ich nun entsprechende Archive anlege und dort den Post-Type "tiere" abfrage, kann ich im archive.php auch nach Kategorien filtern und das ganze über die content.php auf einer Seite anzeigen lassen. Das funktioniert schon mal.

    Klar, es wäre viel einfacher, wenn ich in auf den Kategorieseiten den post_type "tiere" direkt anzeigen lassen könnte (geht das über category.php ???), aber so weit bin ich noch nicht. Auf den Kategorieseiten werden nur die post_types "post" der "normalen" Beiträge angezeigt, nicht die CPT-posts. Ich bin bereits froh, dass ich den Inhalt gefiltert nach Kategorien auf unterschiedlichen Seiten anzeigen lassen kann.

    Zudem kommt noch ein weiteres Problem dazu: Gestern musste ich das Thema auf Anweisung einer einzelnen Dame wechseln. Das jetzige Thema unterstützt aber keine Excerpte (die ich bereits mit CSS und HTML im alten Thema schön hingebastelt hatte), das muss ich jetzt im neuen Thema auch erst einmal hinkriegen.

    PS: ich habe gestern noch etwas php gebüffelt und werde es mal mit "$pagename" versuchen.

    Trotzdem vielen Dank

    Herbert

  5. #5
    PostRank: 10
    Registriert seit
    28.07.2011
    Beiträge
    1.655
    Zitat Zitat von Herbertf2 Beitrag anzeigen
    Das Problem mit dem Anzeigen der Kategorien liegt darin, dass ich einen Custom-Post-Type ("tiere") verwende. Normale "posts" werden auch auf den entsprechenden Kategorieseiten angezeigt, aber eben keine post_types "tiere".
    Auch Custom Post-Types können die gewöhnlichen Kategorien verwenden, die auch die Post-Types Post verwenden.
    Siehe: https://codex.wordpress.org/Function...ype#taxonomies

    Zitat Zitat von Herbertf2 Beitrag anzeigen
    Zudem kommt noch ein weiteres Problem dazu: Gestern musste ich das Thema auf Anweisung einer einzelnen Dame wechseln. Das jetzige Thema unterstützt aber keine Excerpte (die ich bereits mit CSS und HTML im alten Thema schön hingebastelt hatte), das muss ich jetzt im neuen Thema auch erst einmal hinkriegen.
    Schau dir mal die Funktionalität des More-Tags an.
    Was der Codex zum Thema Exzerpt meint, ist durchaus auch erhellend. https://codex.wordpress.org/Excerpt

    Zitat Zitat von Herbertf2 Beitrag anzeigen
    PS: ich habe gestern noch etwas php gebüffelt und werde es mal mit "$pagename" versuchen.
    Ich will niemandem zu nahe treten. Aber erst mal WordPress büffeln – i.e. dich mit den bereits vorhandenen Strukturen vertraut machen – wäre meiner Ansicht nach zielführender.
    Es gibt in WordPress wirklich für sehr viele Fragen, die bei der Theme-Umsetzung so aufkommen können, schon fertige Funktionen. Größtenteils sind sie gut dokumentiert.

    Und sorge dafür, dass du unterschiedliche Slugs für Posts (welchen Post-Types auch immer) und Terms hast. SirEctor hat dich da nicht ohne Grund drauf hingewiesen.

    Gruß
    helix

  6. #6
    PostRank: 0
    Registriert seit
    17.03.2017
    Beiträge
    8
    Hallo Helix,

    Danke für die Hinweise.

    Zu1: warum werden dann meine Post-Type-Typen nicht in den Kategorien angezeigt ???? (Vielleicht, weil mein Theme keine category.php hatte ? Mit category.php funktioniert es immer noch nur mit "Post"-Beiträgen, auch wenn ich den post-type um "tiere" erweitere. Aber das werde ich am Wochenende etwas näher untersuchen)

    Zu2: Problem mit den Excerpten ist gelöst.

    Zu3: Neben php, html und css "büffele" ich u.a. auch Wordpress (siehe 1, Template Hierarchie). Ich denke, dass ich als Autodidakt nach 4 Wochen doch schon ganz gut vorangekommen bin. Was mir fehlt, wäre ein Debugger für Wordpress. So bleibt mir nur try and error und entsprechende Kommentarzeilen in den Templates, um zu sehen, was schief läuft.

    Gruss

    Herbert

  7. #7
    PostRank: 10 Avatar von b3317133
    Registriert seit
    21.11.2014
    Beiträge
    1.983
    Welches Plugin genau verwendest Du? Falls es "Custom Post Types UI" ist, schau mal, ob Du bei Deinem Post Type einen Haken bei "Kategorien (WP Core)" hast, ganz unten auf der Seite, die im ersten Screenshot. Das ist auch das was @Helix im ersten Absatz seiner Antwort meint.

  8. #8
    PostRank: 0
    Registriert seit
    17.03.2017
    Beiträge
    8
    Hallo b3317133,

    Den Haken habe ich gesetzt (siehe Listing unten). Ich habe das Theme (nach Ratschlag von Sir Ector) auch neu aufgesetzt und Kategorien und Seiten unterschiedlich benannt.
    Es bleibt dabei:
    die Standard-Beiträge werden als Kategorieseite angezeigt, die Tier-Beiträge werden nicht auf Kategorieseiten angezeigt. Anscheinend bleibt mir tatsächlich nur der Umweg über die Seitendarstellung mittels archive-Templates.

    $args = array(
    "label" => __( 'Tiere', '' ),
    "labels" => $labels,
    "description" => "",
    "public" => true,
    "publicly_queryable" => true,
    "show_ui" => true,
    "show_in_rest" => false,
    "rest_base" => "",
    "has_archive" => false,
    "show_in_menu" => true,
    "exclude_from_search" => false,
    "capability_type" => "post",
    "map_meta_cap" => true,
    "hierarchical" => false,
    "rewrite" => array( "slug" => "tiere", "with_front" => true ),
    "query_var" => true,
    "menu_position" => 5,
    "supports" => array( "title", "editor", "thumbnail", "excerpt", "trackbacks", "custom-fields", "page-attributes", "post-formats" ),
    "taxonomies" => array( "category", "post_tag" ),
    );

    Danke

    Herbert

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •