Support » Allgemeine Fragen » Archiv-Widget durcheinander

  • Hallo,

    ich benötige leider mal wieder eure tolle Experten-Hilfe, da ich über die Suche im Forum nicht fündig wurde.

    Ich habe auf einer Seite eine aktivierte Main Sidebar mit dem Widget „Text: Archiv“, in dem nur der Shortcode „[ausgabe]“ enthalten ist.

    In der functions.php gibt es dazu folgenden Code:

    
    /* widget archive */
    add_shortcode('ausgaben', 'wp_newskategories');
    function wp_newskategories() {
    	$categories = get_categories(array('child_of'=>24, 'orderby'    => 'id', 'show_count' => true,'order'      => 'DESC'));
    	
    	$years = array();
    	$slugs = array();
    	$names = array();
    		
    		foreach ($categories as $cat) {
    			$year = explode(" ",$cat->cat_name);
    			
    			if(!in_array($year[3], $years, true)){
    				array_push($years, $year[3]);
    			}
    			$slug = $cat->slug;
    			$name = $cat->cat_name;
    			
    			array_push($slugs, $slug);
    			array_push($names, $name);
    			
    		}
    		//$cat_link = get_category_link($cat);
    		//$content1 .=  "<li class='archive_links'><a href=".$cat_link.">" .$cat->cat_name. "</a></li>";
    		
    		for( $i = 0; $i < count($years); $i++ ) {
    				
    				$content1 .="<div class='archive_box'><h6>". $years[$i]."</h6><ul class='archive_list'>";
    				
    					for ($k=0; $k < count($names); $k++){
    						// für alle die das entprechende Jahr haben und nicht die aktuelle Ausgabe sind
    						if (strpos($names[$k], $years[$i]) !== false && $names[$k] !== 'Aktuelle Ausgabe - Oktober 2021') {
    							
    							$content1 .= "<li class='archive_link'><a href='".get_site_url()."/category/news/".$slugs[$k]."'>".$names[$k]."</a></li>";
    		
    					}
    				}
    				
    				$content1 .= "</ul></div>";
    			
    			}
    		return $content1;
    }

    Nun ist das Problem, dass die Einträge durcheinander angezeigt werden, also zum einen die Jahre (2021, 2008, 2020) und zum anderen die Monate, z. B. im Jahr 2021 (März, Januar, Februar, September, April). Außerdem ist die Reihenfolge im Jahr 2008 nicht absteigend, wie gewünscht, sondern aufsteigend.

    Die Archiv-Beiträge selbst sind sonst alle korrekt, sowie auch das Datum der jeweiligen Veröffentlichung.

    Gibt es hier einen PHP-Experten (?), der oder die den Fehler sieht und / oder mir weiterhelfen kann?

    Dank & Gruß,
    Regina

    Hier ist noch mein Website-Zustandsbericht:

    
    ### wp-core ###
    
    version: 5.8.2
    site_language: de_DE
    user_language: de_DE
    permalink: /%postname%/
    https_status: true
    user_registration: 0
    default_comment_status: undefined
    multisite: false
    user_count: 29
    dotorg_communication: true
    
    ### wp-paths-sizes ###
    
    wordpress_path: /kunden/141429_10117/webseiten/aktive-buergerschaft/wordpress
    wordpress_size: 1,93 GB (2072421618 bytes)
    uploads_path: /kunden/141429_10117/webseiten/aktive-buergerschaft/wordpress/wp-content/uploads
    uploads_size: 1,80 GB (1928701249 bytes)
    themes_path: /kunden/141429_10117/webseiten/aktive-buergerschaft/wordpress/wp-content/themes
    themes_size: 75,71 MB (79391014 bytes)
    plugins_path: /kunden/141429_10117/webseiten/aktive-buergerschaft/wordpress/wp-content/plugins
    plugins_size: 225,27 MB (236215936 bytes)
    database_size: 163,38 MB (171321160 bytes)
    total_size: 4,18 GB (4488050977 bytes)
    
    ### wp-active-theme ###
    
    name: Osmosis Child (osmosis-child)
    version: 3.2.8
    author: Greatives Team
    author_website: http://greatives.eu
    parent_theme: Osmosis (osmosis)
    theme_features: core-block-patterns, woocommerce, widgets-block-editor, post-thumbnails, automatic-feed-links, post-formats, title-tag, customize-selective-refresh-widgets, align-wide, editor-styles, editor-style, yoast-seo-breadcrumbs, editor-color-palette, menus, widgets
    theme_path: /kunden/141429_10117/webseiten/aktive-buergerschaft/wordpress/wp-content/themes/osmosis-child
    
    ### wp-parent-theme ###
    
    name: Osmosis (osmosis)
    version: 4.3.2
    author: Greatives Team
    author_website: http://greatives.eu
    theme_path: /kunden/141429_10117/webseiten/aktive-buergerschaft/wordpress/wp-content/themes/osmosis
    
    ### wp-themes-inactive (2) ###
    
    Osmosis: version: 4.3, author: Greatives Team
    Twenty Twenty-One: version: 1.4, author: WordPress-Team
    
    ### wp-mu-plugins (2) ###
    
    Health Check Troubleshooting Mode: author: (undefined), version: 1.7.2
    WPNewsman Pro - Worker Stability Enhancement: version: 1.0.7, author: Alex Ladyga - G-Lock Software
    
    ### wp-plugins-active (38) ###
    
    batch-move: version: 1.5, author: CS ABS-Hosting.nl/Walchum.net
    Broken Link Checker: version: 1.11.16, author: WPMU DEV
    Caldera Forms: version: 1.9.5, author: Caldera Forms
    Classic Editor: version: 1.6.2, author: WordPress Contributors
    Classic Widgets: version: 0.2, author: WordPress Contributors
    Connector to CiviCRM with CiviMcRestFace: version: 1.0.6, author: Rich Lott (Artfulrobot), Jaap Jansma (CiviCooP)
    Cookie Notice & Compliance for GDPR / CCPA: version: 2.2.0, author: Hu-manity.co
    Custom Sidebars: version: 3.32, author: WebFactory Ltd
    Envato Market: version: 2.0.6, author: Envato
    eRecht24 Safe Sharing: version: 2.0.22, author: eRecht24.de, Jan-Peter Lambeck & 3UU
    Events Manager: version: 5.12.1, author: Marcus Sykes
    Events Manager Pro: version: 2.6.7.2, author: NetWebLogic (latest version: 2.7)
    Feed Them Social - for Twitter feed, Youtube, and more: version: 2.9.6.5, author: SlickRemix
    G-Lock WPNewsman Lite: version: 1.9.0, author: Alex Ladyga - G-Lock Software
    Google Analytics for WordPress by MonsterInsights: version: 8.2.0, author: MonsterInsights
    Google Analytics Opt-Out: version: 2.3.4, author: WP-Buddy
    Health Check & Troubleshooting: version: 1.4.5, author: The WordPress.org community
    Integration of CiviCRM's Form Processor with Caldera Forms: version: 1.0.0, author: Jaap Jansma
    List category posts: version: 0.85.1, author: Fernando Briano
    Osmosis Extension: version: 4.3.2, author: Greatives Team
    Print, PDF & Email by PrintFriendly: version: 5.0, author: Print, PDF, & Email by PrintFriendly
    Redirection: version: 5.1.3, author: John Godley
    Simple Redirect: version: 4.0.5, author: Get on Social
    Slider Revolution: version: 6.4.5, author: ThemePunch
    TinyPNG - JPEG, PNG & WebP image compression: version: 3.3, author: TinyPNG
    UpdraftPlus - Backup/Restore: version: 1.16.66, author: UpdraftPlus.Com, DavidAnderson
    Visualizer: Tables and Charts for WordPress: version: 3.7.1, author: Themeisle
    WooCommerce: version: 5.9.0, author: Automattic
    Wordfence Security: version: 7.5.7, author: Wordfence
    WP All Export: version: 1.3.2, author: Soflyy
    WP All Import: version: 3.6.4, author: Soflyy
    WPBakery Page Builder: version: 6.6.0, author: Michael M - WPBakery.com
    WPBakery Page Builder Clipboard: version: 5.0.1, author: bitorbit
    WPForms Lite: version: 1.7.1.2, author: WPForms
    WP Mail SMTP: version: 3.2.1, author: WPForms
    WP Multi Store Locator Pro: version: 4.1, author: WpExpertsio
    Yoast Duplicate Post: version: 4.2, author: Enrico Battocchi & Team Yoast
    Yoast SEO: version: 17.7.1, author: Team Yoast
    
    ### wp-plugins-inactive (5) ###
    
    Autoptimize: version: 2.9.3, author: Frank Goossens (futtta)
    Enable jQuery Migrate Helper: version: 1.3.0, author: The WordPress Team
    Feed Them Social Premium: version: 1.7.6, author: SlickRemix
    Loco Translate: version: 2.5.5, author: Tim Whitlock
    WordPress Importer: version: 0.7, author: wordpressdotorg
    
    ### wp-media ###
    
    image_editor: WP_Image_Editor_Imagick
    imagick_module_version: 1692
    imagemagick_version: ImageMagick 6.9.12-28 Q16 x86_64 2021-10-29 https://imagemagick.org
    imagick_limits: 
    	imagick::RESOURCETYPE_AREA: 59 GB
    	imagick::RESOURCETYPE_DISK: 9.2233720368548E+18
    	imagick::RESOURCETYPE_FILE: 786432
    	imagick::RESOURCETYPE_MAP: 59 GB
    	imagick::RESOURCETYPE_MEMORY: 29 GB
    	imagick::RESOURCETYPE_THREAD: 1
    gd_version: 2.2.5
    ghostscript_version: 9.27
    
    ### wp-server ###
    
    server_architecture: Linux 3.10.0-1160.45.1.el7.x86_64 x86_64
    httpd_software: Apache
    php_version: 7.3.32 64bit
    php_sapi: fpm-fcgi
    max_input_variables: 1500
    time_limit: 0
    memory_limit: 256M
    max_input_time: 60
    upload_max_size: 50M
    php_post_max_size: 75M
    curl_version: 7.61.1 OpenSSL/1.1.1g
    suhosin: false
    imagick_availability: true
    server-headers: 
    	server: nginx
    	date: Tue, 07 Dec 2021 12:49:05 GMT
    	content-type: text/html; charset=UTF-8
    	expires: Wed, 11 Jan 1984 05:00:00 GMT
    	cache-control: no-cache, must-revalidate, max-age=0
    	link: <https://www.aktive-buergerschaft.de/wp-json/>; rel="https://api.w.org/", <https://www.aktive-buergerschaft.de/wp-json/wp/v2/pages/58>; rel="alternate"; type="application/json", <https://www.aktive-buergerschaft.de/>; rel=shortlink
    	vary: Accept-Encoding
    	content-encoding: gzip
    	x-cache-status: MISS
    htaccess_extra_rules: true
    
    ### wp-database ###
    
    extension: mysqli
    server_version: 10.4.22-MariaDB
    client_version: mysqlnd 5.0.12-dev - 20150407 - $Id: 7cc7cc96e675f6d72e5cf0f267f48e167c2abb23 $
    
    ### wp-constants ###
    
    WP_HOME: undefined
    WP_SITEURL: undefined
    WP_CONTENT_DIR: /kunden/141429_10117/webseiten/aktive-buergerschaft/wordpress/wp-content
    WP_PLUGIN_DIR: /kunden/141429_10117/webseiten/aktive-buergerschaft/wordpress/wp-content/plugins
    WP_MAX_MEMORY_LIMIT: 256M
    WP_DEBUG: false
    WP_DEBUG_DISPLAY: true
    WP_DEBUG_LOG: false
    SCRIPT_DEBUG: false
    WP_CACHE: false
    CONCATENATE_SCRIPTS: undefined
    COMPRESS_SCRIPTS: undefined
    COMPRESS_CSS: undefined
    WP_LOCAL_DEV: undefined
    
    ### wp-filesystem ###
    
    wordpress: writable
    wp-content: writable
    uploads: writable
    plugins: writable
    themes: writable
    mu-plugins: writable
    
    ### wpforms ###
    
    version: 1.7.1.2
    lite: Jul 30, 2019 @ 1:36pm
    upload_dir: Beschreibbar
    db_tables: Zn43CdYLs_wpforms_tasks_meta
    total_forms: undefined
    total_submissions: undefined
    
    ### wp_mail_smtp ###
    
    version: 3.2.1
    license_key_type: lite
    debug: Keine Debug-Hinweise gefunden.
    db_tables: Zn43CdYLs_wpmailsmtp_tasks_meta, Zn43CdYLs_wpmailsmtp_debug_events
    lite_install_date: Apr 23, 2021 @ 9:39am
    
    

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

Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Es wäre hilfreich, wenn du erst einmal beschreiben würdest, was du eigentlich ausgeben möchtest.

    Bei

    $categories = get_categories(
      array(
        'child_of'   => 24, 
        'orderby'    => 'id',
        'show_count' => true,
        'order'      => 'DESC'
    ));

    verstehe ich z.B. nicht, warum du die Anzahl der Beiträge je Kategorie mit ausliest (show_count). Wieso mit $year = explode(" ",$cat->cat_name); scheinbar eine Jahreszahl aus einem Kategorie-Namen ausgelesen wird, ist für Außenstehende auch kaum nachvollziehbar. Kommentare wie // für alle die das entprechende Jahr haben und nicht die aktuelle Ausgabe sind sind leider auch wenig erhellend.

    Ganz abgesehen davon beantworten wir hier Fragen zur Anwendung von WordPress.
    Bei Fragen zu PHP solltest du dich an ein PHP-Forum wenden und bei Fragen zur Programmierung von Themes und Plugins bist du bei https://wordpress.stackexchange.com/ besser aufgehoben.

    Thread-Starter aktivbuerger

    (@aktivbuerger)

    Hallo @pixolin,

    ich habe den Code nicht geschrieben.

    Was ich ausgeben möchte ist ein Archiv von Beiträgen mit einer bestimmten Kategorie. Auf erster Ebene die Jahre von neu nach alt und auf zweiter Ebene die Monate von neu nach alt. Ein HTML-Code wäre mir persönlich auch lieber, aber wahrscheinlich nicht mehr zeitgemäß …

    Danke für deine Antwort, ich gehe dann mal dahin, wo der PHPeffer wächst.

    Gruß von Regina

    Hallo,
    wenn ich das richtig verstehe, ist das doch die „normale“ Ansicht, wenn man beispielsweise Beiträge einer bestimmten Kategorie ausgeben möchte, z. B. im Menü als individueller Link: https://example.com/category/berge/
    In dem Beispiel würden dann alle Beiträge mit der Kategorie „Berge“ ausgegeben.
    Viele Grüße
    Hans-Gerd

    Thread-Starter aktivbuerger

    (@aktivbuerger)

    Hallo @hage,

    ja, die Seite an sich wird korrekt dargestellt / abgerufen, aber das Archiv in der Sidebar ist durcheinander, und ich verstehe leider nicht warum. Meine Suche nach Lösungen war bisher leider erfolglos. Da ich die functions.php des Child-Themes nicht geschrieben habe, sondern meine verschollene Vorgängerin, und ich auch keine PHP-Kennerin bin, gestaltet sich die Problemeingrenzung schwer.

    Gruß von Regina

    Mach mal ein Backup von der Shortcode-Funktion und ersetze dann

    $categories = get_categories(array('child_of'=>24, 'orderby' => 'id', 'show_count' => true,'order' => 'DESC'));

    mit

    $args = array(
      'orderby'    => 'name',
      'order'      => 'DESC',
      'child_of'   => 24,
      'hide_empty' => false,
    );
    $categories = get_categories( $categories );

    Keine Ahnung, ob das schon ausreicht – mir fehlt die Zeit, um das zu testen.

    Die Funktion hat noch einige andere Schwächen, z.B. bei der Auswertung des Kategorie-Namens. Der soll wohl immer nach dem Muster Ausgabe Nr Monat Jahr eingegeben werden, aber sobald du statt November-Dezember einen Leerschritt verwendest und Novemver Dezember schreibst, bekommst du ein Problem.
    Das der Titel der aktuellen Ausgabe Aktuelle Ausgabe - Oktober 2021 manuell hinzugefügt wird ist einfach ein schlechter Scherz.
    Am besten wird wohl sein, einen Dienstleister zu beauftragen. Es gibt diverse Freelancer-Portale, auf denen du jemand findest, der dir das für ein paar Euro programmiert.

    Thread-Starter aktivbuerger

    (@aktivbuerger)

    Vielen Dank für deine Mühe, @pixolin!

    Leider brachte es nicht das gewünschte Ergebnis.
    Das Archiv sortiert sich jetzt von 2010 nach 2021, danach folgen aber 2008 und 2009 sowie einige andere unerwünschte ausgelesene Kategorien.

    Dank & Gruß,
    Regina

    Thread-Starter aktivbuerger

    (@aktivbuerger)

    Es muss ja nicht zwangsweise der PHP-Code falsch sein.
    Ich habe jetzt weitere ältere Beiträge importiert und diese stehen nun in der Archivliste ganz oben (als neueste Einträge). Die seltsame Sortierung liegt also scheinbar am Datum der Veröffentlichung. Kann man das für mehrere Beiträge gesammelt ändern? Mit alle markieren, Mehrfachaktionen und bearbeiten geht es leider nicht … Gibt es dafür ein Plugin?

    Dank & Gruß,
    Regina

    Es muss ja nicht zwangsweise der PHP-Code falsch sein.

    Doch klar, woran sollte es sonst liegen? 🙂

    Die seltsame Sortierung liegt also scheinbar am Datum der Veröffentlichung. Kann man das für mehrere Beiträge gesammelt ändern?

    Mit einem Plugin würde das gehen, aber wäre dann ein fragwürdiger Workaround. Statt dessen sollte der Code in Ordnung gebracht werden. Das sprengt aber (zumindest für mich) den Zeitrahmen eines kostenlosen Supports.

    Thread-Starter aktivbuerger

    (@aktivbuerger)

    Wie kann man dir denn hier eine 4-Augen-Nachricht schicken, @pixolin?

Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Das Thema „Archiv-Widget durcheinander“ ist für neue Antworten geschlossen.