• 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 4 years, 2 months 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 3 years, 11 months 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 3 years, 11 months ago by Andreas Brain.
Viewing 11 replies - 1 through 11 (of 11 total)
  • The topic ‘Archivseite Flatsome’ is closed to new replies.