Support » Themes » Startseite mit ausgewählten Beiträgen

  • Hallo!

    Jetzt habe ich 2 Stunden versucht selbst zu basteln, brauche aber doch Hilfe.

    Ich möchte gerne auf meiner Website eine Startseite mit Beiträgen einrichten. Derzeit stehen dort die aktuellen Beiträge. Ich würde aber gerne nicht die aktuellen, sondern nur eine kleine Auswahl an von mir definierten Beiträgen dort auf der Startseite anzeigen lassen.

    Ich dachte, ich könnte das mit den Kategorien lösen, aber es ist mir leider nicht gelungen, die Darstellung von Beiträgen auf der Startseite durch die Kategorie-Funktion einzuschränken.

    Hoffe, ich habe meine Frage gut genug erklärt und es ist jemand da, der mir helfen kann. Ansonsten bitte ich um Rückfrage.

    Mein Theme ist das „Newsbuzz“-Theme.

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

Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Moderator Bego Mario Garde

    (@pixolin)

    Hallo @newomesha und willkommen im Forum,

    dafür kannst du einen Filter erstellen, der auf der Startseite nur die Beiträge einer bestimmen Kategorie ausgibt. Nehmen wir an, du nennst diese Kategorie „featured“, dann sieht der Filter so aus:

    
    function my_featured_frontpage_posts( $query ) {
        if ( $query->is_home() && $query->is_main_query() ) {
            $query->set( 'category_name', 'featured' );
        }
    }
    add_action( 'pre_get_posts', 'my_featured_frontpage_posts' );
    

    Um diesen Code dauerhaft (und nicht nur bis zum nächsten Update des Themes) einzufügen, musst du entweder ein Child Theme erstellen oder die Funktion als Code-Häppchen mit dem Plugin Code Snippets einfügen.

    Die neue Kategorie featured kannst du übrigens auch nachträglich diversen Blogbeiträgen zuweisen, indem du im Backend in der Übersichtsseite „Beiträge“ die gewünschten Beiträge über die Kästchen auswählst und über das Pulldown-Menü „Mehrfachaktionen“ bearbeitest.

    Hallo @pixolin!

    Vielen Dank für die schnelle und offensichtlich sehr fundierte Antwort! Ich werde heute Abend Zeit haben, das so ein- und umzubauen und melde danach noch kurz den Erfolg! Freu mich schon!

    Liebe Grüße!

    Wow! Du bist wirklich großartig! Es hat alles bestens geklappt! Vielen lieben Dank für die tolle Hilfe!

    Eine Frage hätte ich noch: Kann ich auch verhindern, daß diese Featured-Beiträge bei den übrigen Beiträgen erscheinen, wie jetzt in der Sidebar recht unter den aktuellen Beiträgen? Sie sollen nur auf der Startseite stehen und sonst nirgendwo.

    Vielleicht gibt es ja da auch eine einfach Lösung dafür.

    Liebe Grüße!

    Die Website: http://www.omehas-room.de

    Oh, Verzeihung, das habe ich im handumdrehen im Customizer in der Sidebar selbst festlegen können. Super! Jetzt ist alles, wie ich es brauche. Danke nochmal!

    Moderator Bego Mario Garde

    (@pixolin)

    Für alle anderen mit ähnlicher „Aufgabenstellung“:
    Der Filter lässt sich auch umkehren.

    
    <?php
    function my_featured_frontpage_posts( $query ) {
    	// ID der Kategorie "featured"
    	$idObj = get_category_by_slug('featured'); 
    	$id = $idObj->term_id;
    
    	// nur in Haupt-Query ausführen
    	if( $query->is_main_query() ) {
    		// wenn Startseite, nur "featured"
    		if ( $query->is_home() ) {
    			$query->set( 'cat', $id );
    		 }
    		// sonst alles außer "featured"
    		if ( $query-> ! is_home() ) {
    			$query->set( 'cat', -$id );
    		}
    	}
    
    }
    add_action( 'pre_get_posts', 'my_featured_frontpage_posts' );
    

    Hey, das klingt super! Kannst Du es kurz erklären oder habe ich das richtig verstanden?

    1. Das sorgt dafür, daß außerhalb der Startseite, dann, wenn man die Beiträge aller Kategoriern anzeigen will, die featured-Beiträge nicht mit angezeigt werden? Ist das so richtig?

    2. Fügt man diesen Code auch wieder als Code Schnipsel in das PlugIn Code Snippets ein oder ersetzt das das bisherige, das Du zuvor gepostet hattest?

    Und eine weiter Frage hat sich in diesem Zusammenhang ergeben:

    Bisher hatte ich auf der Startseite eine Blogseite mit allen meinen Beiträgen. Nachdem ich das nun eingeschränkt habe und auf der Startseite nur eine ganz kleine Auswahl an Beiträgen habe, würde ich gerne alle Beiträge der übrigen Kategorien auf einer Beitragsseite anzeigen lassen in genau der Form, wie bisher meine Startseite aussah. Aber wie mache ich eine solche generelle Beitragsseite, die ich dann oben über das Menü anwählen kann?

    Moderator Bego Mario Garde

    (@pixolin)

    Das sorgt dafür, daß außerhalb der Startseite, dann, wenn man die Beiträge aller Kategoriern anzeigen will, die featured-Beiträge nicht mit angezeigt werden? Ist das so richtig?

    Genau.

    Fügt man diesen Code auch wieder als Code Schnipsel in das PlugIn Code Snippets ein oder ersetzt das das bisherige, das Du zuvor gepostet hattest?
    Du kannst die vorhandene Funktion damit ersetzen.

    Nachdem ich das nun eingeschränkt habe und auf der Startseite nur eine ganz kleine Auswahl an Beiträgen habe, würde ich gerne alle Beiträge der übrigen Kategorien auf einer Beitragsseite anzeigen lassen in genau der Form, wie bisher meine Startseite aussah.

    Auch dafür kannst du – zusätzlich zu der genannten Funktion – den Hook pre_get_posts verwenden.

    function pix_page_aktuelles( $query ) {
    	$idObj = get_category_by_slug('featured'); 
    	$id = $idObj->term_id;
    
      	if ( $query->is_page( 'Aktuelles' ) && $query->is_main_query() ) {
    	    
    		// Beiträge statt Seiten anzeigen
    		$query->set( 'post_type', 'post' );
    		// ignoriere Seitenname
    		$query->set( 'pagename', null );
    	    // ignoriere Kategorie "featured"
    		$query->set( 'cat', -( $id ) );
    	    // … und zwar alle
    		$query->set( 'posts_per_page', '-1' );
    		// … die veröffentlicht sind
    		$query->set( 'post_status', 'publish' );
    	    // … keine Einzelseite
    		$query->is_singular = 0;
    	}
    }
    add_action( 'pre_get_posts', 'pix_page_aktuelles' );

    … jetzt hast du ja eine Vorstellung, wie es geht. Die möglichen Parameter der Query (also in $query->set()) findest du in der Class-Reference im Codex: https://codex.wordpress.org/Class_Reference/WP_Query

    Denk daran, dass wir hier vor allem Hilfe zur Selbsthilfe geben wollen. Das sprengt hier vom Umfang schon ein wenig den Rahmen einer ehrenamtlichen/freiwilligen Hilfe.

    Lieber Mario (ich hoffe, ich liege mit dem Namen richtig),

    mir ist sehr wohl bewußt, was das für eine riesige Hilfe von Dir ist und ich bin Dir sehr dankbar dafür. Es hilft mir sehr und ich werde mich jetzt in Ruhe damit beschäftigen und es dann so einbauen, wie ich es brauche. Hoffe, mein Programmier-Verständnis reicht dafür.

    Und es wäre ja schön, wenn das hier für andere dann auch mal eine gute Hilfe ist!

    Alles Gute und liebe Grüße, Omesha

Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Das Thema „Startseite mit ausgewählten Beiträgen“ ist für neue Antworten geschlossen.