Support » Plugin: Einsatzverwaltung » Archivseite Flatsome

  • philipp0112

    (@philipp0112)


    Hallo,
    vorweg möchte ich mich für dieses tolle WordPress Plugin bedanken, wirklich spitze!
    Wir sind gerade dabei, die Website für unsere Feuerwehr neu zu erstellen. Als Theme setzen wir Flatsome ein.
    Nun sind wir an dem Punkt angelangt, dass wir das Archiv als Tabelle erstellen möchten. Eventuell hat es bereits jemand mit Flatsome umgesetzt und weiß Rat.
    Hier mal der Inhalt der achive.php

    <?php if ( have_posts() ) : ?>
    <div id="post-list">
    
    <?php /* Start the Loop */ ?>
    <?php while ( have_posts() ) : the_post(); ?>
    
    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    	<div class="article-inner <?php flatsome_blog_article_classes(); ?>">
    		<?php get_template_part('template-parts/posts/partials/entry-header', flatsome_option('blog_posts_header_style') ); ?>
    		<?php get_template_part('template-parts/posts/content', 'default' ); ?>
    		<?php get_template_part('template-parts/posts/partials/entry-footer', 'default' ); ?>
    	</div>
    </article>
    
    <?php endwhile; ?>
    
    <?php flatsome_posts_pagination(); ?>
    
    </div>
    
    <?php else : ?>
    
    	<?php get_template_part( 'template-parts/posts/content','none'); ?>
    
    <?php endif; ?>

    Füge ich den Code aus dem Blogbeitrag bzw. ersetze die while-Schleife, erhalte ich bloß eine weiße Seite, ohne Header, Footer, etc. mit dem Einsatzbild und dem Text.

    Vielleicht kann mir jemand einen Tipp geben. Ich bin für jede Hilfe dankbar!

    Gruß
    Philipp

Viewing 11 replies - 1 through 11 (of 11 total)
  • Plugin Author Andreas Brain

    (@abrain)

    Hallo Philipp,

    wenn eine Seite (großteils) weiß bleibt, ist das gerne mal ein Problem mit der PHP-Syntax. Jetzt weiß ich nicht, wie fit du in PHP bist, aber der obige Code vom Theme ist ein bisschen gemein, weil er die PHP-Interpretation immer wieder startet (<?php) und stoppt (?>). Da schleicht sich schnell mal ein Fehler ein, wenn eine dieser Anweisungen zu viel oder zu wenig vorhanden ist.

    Den obigen Code würde ich folgendermaßen umbauen:

    
    <?php
    if ( have_posts() ) {
        // Hier den Code aus dem Blogpost einfügen
    } else {
        get_template_part( 'template-parts/posts/content','none');
    }
    ?>
    

    Viele Grüße,
    Andreas

    Thread Starter philipp0112

    (@philipp0112)

    Hi Andreas,

    vielen Dank für Deine Antwort!
    In PHP bin ich leider nicht ganz so fit, ich versuch mir das zwar aktuell anzueignen bis das aber sitzt, dauert es vermutlich aber noch ein bisschen.
    Ich habe den Code jetzt mal geändert, nun sieht er folgendermaßen aus:

    <?php
    if ( have_posts() ) {
        if ( is_year() ) {
        $shownYear = get_query_var( 'year' );
        echo do_shortcode( '[einsatzliste jahr=' . esc_html( $shownYear ) . ' options=noHeading]' );
    } else {
        echo do_shortcode( '[einsatzliste options=noHeading]' );
    }
    } else {
        get_template_part( 'template-parts/posts/content','none');
    }
    ?>

    Leider kommt dann auch bloß eine weiße Seite mit dem Text, genau wie vorher auch.
    Testweise habe ich mal die Ordnerstruktur des Parent Themes im Child Theme nachgebaut und dort die Änderungen direkt in der archive.php gemacht, ohne den angehängten CPT. Mache ich das, funktioniert alles ohne Probleme und das Layout wird auch geladen. Allerdings sieht dann jedes Archiv so aus (Tabellenansicht), was natürlich nicht sein soll.
    Leg ich die archive-einsatz.php in dem Ordner ab, in dem auch im Parent Theme die archive.php liegt, passiert gar nichts und das Archiv wird ganz normal geladen.
    Hast Du noch eine Idee an was liegen könnte?

    Viele Grüße
    Philipp

    Plugin Author Andreas Brain

    (@abrain)

    Ah ok, das ist wieder so ein Theme, das es einem ein wenig schwerer macht :/ In dem Fall heißt die Datei dann nur archive.php, hat aber nicht die gleiche Aufgabe, da sie in einem Unterverzeichnis liegt.

    Aber das lässt sich trotzdem lösen, ich schlage folgendes vor. Die Datei archive-einsatz.php im Child Theme wird nicht mehr benötigt. Dafür kopierst du die archive.php in das entsprechende Unterverzeichnis und zwar mit folgendem Inhalt:

    
    <?php
    if ( have_posts() ) {
        if ( is_post_type_archive('einsatz') ) {
            if ( is_year() ) {
                $shownYear = get_query_var( 'year' );
                echo do_shortcode( '[einsatzliste jahr=' . esc_html( $shownYear ) . ' options=noHeading]' );
            } else {
                echo do_shortcode( '[einsatzliste options=noHeading]' );
            }
        } else {
            echo '<div id="post-list">';
            /* Start the Loop */
            while ( have_posts() ) {
                the_post();
                printf('<article id="post-%d" %s>', the_ID(), post_class());
                printf('<div class="article-inner %s">', flatsome_blog_article_classes());
                get_template_part('template-parts/posts/partials/entry-header', flatsome_option('blog_posts_header_style') );
                get_template_part('template-parts/posts/content', 'default' );
                get_template_part('template-parts/posts/partials/entry-footer', 'default' );
                echo '</div></article>';
            }
    
            flatsome_posts_pagination();
            echo '</div>';
        }
    } else {
        get_template_part( 'template-parts/posts/content','none');
    }
    

    Jetzt wird diese archive.php sowohl für Einsatzberichte als auch alles andere verwendet, durch die Abfrage is_post_type_archive('einsatz') wird aber jeweils etwas unterschiedliches ausgegeben.

    P.S.: Das abschließende ?> am Ende einer Datei sollte weggelassen werden, deshalb ist es hier auch nicht vorhanden.

    • This reply was modified 9 months, 3 weeks ago by Andreas Brain.
    Thread Starter philipp0112

    (@philipp0112)

    Du bist mein Held!
    Vielen, vielen Dank für Deine Unterstützung und den klasse Support, funktioniert einwandfrei!

    Gruß
    Philipp

    Thread Starter philipp0112

    (@philipp0112)

    Hi Andreas,

    ich muss dich nochmal nerven. Mir ist gerade aufgefallen, dass sich nun in den anderen Archiven (Beitragsarchiv, Autorenarchiv, etc.) ein Fehler eingeschlichen hat.
    Über jedem Beitrag im Archiv steht nun folgender Text:
    681class="post-681 post type-post status-publish format-standard has-post-thumbnail hentry category-aktiver-dienst"
    Dabei ändert sich natürlich immer die post-id, hast du eventuell eine Idee wie ich dieses Problem beheben könnte?

    Gruß
    Philipp

    Plugin Author Andreas Brain

    (@abrain)

    Oh stimmt, da habe ich einen Fehler gemacht.

    Ersetze die Zeilen

    
    printf('<article id="post-%d" %s>', the_ID(), post_class());
    printf('<div class="article-inner %s">', flatsome_blog_article_classes());
    

    mit

    
    printf('<article id="post-%d" class="%s">', get_the_ID(), esc_attr(implode(' ', get_post_class())));
    echo '<div class="article-inner ';
    flatsome_blog_article_classes();
    echo '">';
    

    dann sollte es wieder passen.

    Viele Grüße,
    Andreas

    Thread Starter philipp0112

    (@philipp0112)

    Hallo Andreas,

    optimal, jetzt funktioniert alles. Danke für die schnelle Lösung!

    Gruß
    Philipp

    Thread Starter philipp0112

    (@philipp0112)

    Hallo Andreas,

    ich muss Dich leider nochmal nerven wegen des Archivs.
    Mir ist aufgefallen, dass ich wohl die falsche Archivansicht gewählt habe, der Code oben funktioniert nur in der Defaultansicht.
    Könntest Du mir nochmal bei folgendem Code behilflich sein?

    <?php 
    if ( have_posts() ) {
    	if ( is_post_type_archive('einsatz') ) {
    		echo '<p style="width:100%; text-align:center;">' . do_shortcode( '[einsatzjahre]' ) . '</p>';
    		if ( is_year() ) {
    			$shownYear = get_query_var( 'year' );
    			echo do_shortcode( '[einsatzliste jahr=' . esc_html( $shownYear ) . ' options=noHeading]' );
    		} else {
    			echo do_shortcode( '[einsatzliste options=noHeading]' );
    		}
    		// Zeigt Links zu allen Jahresarchiven mit Einsatzberichten an
    } else {
    	echo '<div id="post-list">';
    /* Start the Loop */
     while ( have_posts() ) {
    	the_post(); 
    	printf('<article id="post-%d" class="%s">', get_the_ID(), esc_attr(implode(' ', get_post_class())));
    	echo '<div class="article-inner ';
    	echo '<header class="entry-header">';
    	echo '<div class="entry-header-text text-<?php echo get_theme_mod( 'blog_posts_title_align', 'center' );?>">'
    			   	 get_template_part( 'template-parts/posts/partials/entry', 'title'); 
    			</div>
    		</header>
    		if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it. 
    		<div class="entry-image-float">
    	 	get_template_part( 'template-parts/posts/partials/entry-image', 'default'); 
    		if ( get_theme_mod( 'blog_badge', 1 ) ) get_template_part( 'template-parts/posts/partials/entry', 'post-date' ); 
    	 	</div>
     	
    		get_template_part('template-parts/posts/content', 'default' ); 
    		<div class="clearfix"></div>
    		get_template_part('template-parts/posts/partials/entry-footer', 'default' );
    		echo '</div></article>';
     		}
    
    		flatsome_posts_pagination(); 
    		echo '</div>'
    	}
    } else {
    
    	 get_template_part( 'template-parts/posts/content','none');
    }

    Über Deine Hilfe würde ich mich sehr freuen!

    Viele Grüße
    Philipp

    • This reply was modified 6 months, 3 weeks ago by philipp0112.
    Plugin Author Andreas Brain

    (@abrain)

    Hallo Philipp,

    prinzipiell ja, der Code oben sieht aber innerhalb der Loop schon ein wenig verbastelt aus? Halb alt, halb neu, da kann ich nur raten, wie es gehören soll. Wenn, dann bräuchte ich bitte den Originalzustand.

    Viele Grüße,
    Andreas

    Thread Starter philipp0112

    (@philipp0112)

    Hallo Andreas,

    bitte entschuldige, das war mein Fehler, ich hab beim Kopieren nicht aufgepasst. Hier der Orginalcode:

    <?php if ( have_posts() ) : ?>
    
    <?php
    	// Create IDS
    	$ids = array();
    	while ( have_posts() ) : the_post();
    		array_push($ids, get_the_ID());
    	endwhile; // end of the loop.
    	$ids = implode(',', $ids);
    ?>
    
    	<?php
    	echo flatsome_apply_shortcode( 'blog_posts', array(
    		'type'        => get_theme_mod( 'blog_style_type', 'masonry' ),
    		'depth'       => get_theme_mod( 'blog_posts_depth', 0 ),
    		'depth_hover' => get_theme_mod( 'blog_posts_depth_hover', 0 ),
    		'text_align'  => get_theme_mod( 'blog_posts_title_align', 'center' ),
    		'columns'     => '3',
    		'show_date'   => get_theme_mod( 'blog_badge', 1 ) ? 'true' : 'false',
    		'ids'         => $ids,
    	) );
    	?>
    
    <?php flatsome_posts_pagination(); ?>
    
    <?php else : ?>
    
    	<?php get_template_part( 'template-parts/posts/content','none'); ?>
    
    <?php endif; ?>

    Für Deine Hilfe bereits jetzt vielen Dank!

    Gruß
    Philipp

    Plugin Author Andreas Brain

    (@abrain)

    Hallo Philipp,

    kann passieren, kein Problem.

    Ich denke, es müsste so passen:

    <?php
    if ( have_posts() ) {
        if ( is_post_type_archive('einsatz') ) {
            // Zeigt Links zu allen Jahresarchiven mit Einsatzberichten an
            echo '<p style="width:100%; text-align:center;">' . do_shortcode( '[einsatzjahre]' ) . '</p>';
    
            if ( is_year() ) {
                $shownYear = get_query_var( 'year' );
                echo do_shortcode( '[einsatzliste jahr=' . esc_html( $shownYear ) . ' options=noHeading]' );
            } else {
                echo do_shortcode( '[einsatzliste options=noHeading]' );
            }
        } else {
            // Create IDS
            $ids = array();
            while ( have_posts() ) {
                the_post();
                array_push($ids, get_the_ID());
            }
            $ids = implode(',', $ids);
    
            echo flatsome_apply_shortcode( 'blog_posts', array(
                'type'        => get_theme_mod( 'blog_style_type', 'masonry' ),
                'depth'       => get_theme_mod( 'blog_posts_depth', 0 ),
                'depth_hover' => get_theme_mod( 'blog_posts_depth_hover', 0 ),
                'text_align'  => get_theme_mod( 'blog_posts_title_align', 'center' ),
                'columns'     => '3',
                'show_date'   => get_theme_mod( 'blog_badge', 1 ) ? 'true' : 'false',
                'ids'         => $ids,
            ) );
            
            flatsome_posts_pagination();
        }
    } else {
        get_template_part( 'template-parts/posts/content','none');
    }
    

    Viele Grüße,
    Andreas

    • This reply was modified 6 months, 2 weeks ago by Andreas Brain.
Viewing 11 replies - 1 through 11 (of 11 total)
  • The topic ‘Archivseite Flatsome’ is closed to new replies.