Rechte Sidebar bei bestimmten Seiten ausblenden.

  • Hallo zusammen, ich sitze schon einige Stunden an dem Problem und komme einfach nicht weiter.

    Und zwar geht es um diese Seite hier...
    http://gasper-immobilien.de/wp-immo/
    Ich möchte bei den Seiten der Individualmenüs "Verkauf" und "Vermietung" in der linken Seitebar immer wenn eine dieser Seiten ausgewählt wird nur Header, Content, die linke Sidebar und Footer zu sehen ist. Sprich sollte die rechte Sidebar ausgeblendet werden und Contentbereich die gesamtbreite einnimmt.
    Dachte mir, dürfte kein Problem sein, erstelle ich einfach ein neues Seitentemplate auf Grundlage des Standard Templates und lasse lediglich die rechte Sidebar weg. Musste aber feststellen, dass alle Templates nur auf den Mittleren Content-Bereich wirken, also die beiden Sidebars unberührt bleiben.
    Hat einer eine Idee wie ich das löse bzw. welche Datei als Gesamttemplate gilt.
    Es wird das Theme Easel verwendet.

    Es gibt zwar in Theme-Options die Möglichkeit auch nur mit einer linken oder nur mit einer rechten Sidebar auszuwählen, dies gilt aber für die gesamte Seite.

    Danke schon mal im Voraus.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hat den keiner eine Idee oder zumindest ein Ansatz wo ich eingreifen kann??? Oder hilft vielleicht der Code bestimmter Seiten weiter, wenn das Theme nicht allgemein bekannt ist.

  • Ich habe jetzt noch eine Datei namens layout-head.php gefunden, ich denke das die Sidebars hier definiert werden.Wie kann ich diese Anweisung um Abfrage des Seitentemplates erweitern?

    Code
    if (!easel_is_signup() && !easel_sidebars_disabled()) {
      if (easel_is_layout('2cl,3c,3cl')) easel_get_sidebar('left');
      if (easel_is_layout('3cl') [COLOR="#FF0000"]&& 'nicht SeitentemplateX[/COLOR]) easel_get_sidebar('right');


    Hoffe kann mir einer da helfen, da ich auf dem Gebiet PHP absoluter neuling bin.

    Einmal editiert, zuletzt von aturo (17. Februar 2013 um 20:33)

  • Hat den keiner irgend eine Idee, wie ich das lösen könnte??? Hilfe...

    Ich bin schon langsam am verzweifeln.

    Habe jetzt noch folgendes probiert, aber es klappt einfach nicht.
    Habe jetzt noch eine weitere IF abfrage eingefügt.

    PHP
    <?php 
      if 
        (is_page('32')) $immo = "true";?>


    Den Hinweis auf is_page habe ich aus einem Artikel http://www.texto.de/statische-seit…gorie-y-an-170/


    Dann wird diese Variable in der Datei layout-food.php des Themes mit abgefragt.

    PHP
    if (easel_is_layout('2cr,3c,3cr') && !isset($immo)) easel_get_sidebar('right');

    Wenn ich diese IF-Abfrage auskommentiere wird die Sidebar rechts wie gewollt ausgeblendet, aber warum wird die Variable nicht gesetzt???

    Die Seite hat auf jeden Fall die ID 32
    "gasper-immobilien.de/wp-immo/wp-admin/post.php?post=32&action=edit"

    Habe auch schon ohne negierungszeichen(!) probiert, dann ist die sidebar halt immer ausgeblendet.

    Was mache ich falsch???

  • Kannst Du nicht einstellen welches Seitentemplate benutzt wird? Dann einfach ein eigenes neues anlegen, bei dem nur das von Dir gewollte angezeigt wird!

    Beispiel: Ich habe Seiten bei denen ich den Titel anzeigen lassen möchte, aber auch Seiten bei denen ich das nicht möchte. Also nehme ich das normale Seitentemplate, kopiere es, passe es meinen Bedürfnissen an und vergebe unter Umständen extra Werte die in der css eingetragen werden. Beim erstellen einer Seite, wähle ich rechts immer das entsprechende Template.

  • Klar kann ich ein anders seitentemplate erstellen, aber das habe ich schon im aller ersten Beitrag erwähnt. Das die Einträge dort nur auf den mittleren content-bereich auswirken. D.h. Es gibt da keine Einträge wie get_sitebar() o.ä.
    Das mit dem Seitentemplate war mein aller erster Ansatz noch bevor ich hier die Frage Stellte.
    Hier ist z.B. Der Code aus der Page.php

    <?php
    get_header();
    if (have_posts()) {
    while (have_posts()) : the_post();
    easel_display_post();
    endwhile;
    easel_pagination();
    }

    get_footer();
    ?>

    Einmal editiert, zuletzt von aturo (24. Februar 2013 um 13:09)

  • Aber Du hast die style.css nicht erweitert!

    Was Du brauchst ist eine neue DIV-Klasse die auch die neue Breite definiert!
    Diese benötigt in Deinem Fall eine "width: 798px".

    [EDIT]

    Wenn ich das ändere betrifft es folgendes:

    Code
    [COLOR=#777777][FONT=Consolas][COLOR=black].narrowcolumn[/COLOR][/FONT][/COLOR][COLOR=#000000][FONT=Consolas] {
    [/FONT][/COLOR][COLOR=#C80000]width[/COLOR]: 798px;[COLOR=#000000][FONT=Consolas]
    [/FONT][/COLOR][COLOR=#000000][FONT=Consolas]}[/FONT][/COLOR]

    [COLOR=#000000][FONT=Consolas]

    und:

    Code
    [COLOR=#808080]media="screen"[/COLOR]

    [/FONT][/COLOR]

    Code
    [COLOR=#000000][FONT=Consolas]
    [COLOR=#777777].type-post, [COLOR=black].type-page[/COLOR], .type-forum, .type-reply, .type-topic, .type-comic, .type-showcase, .type-music, #comment-wrapper, .type-attachment,.type-casts, .feature[/COLOR] {
    [/FONT][/COLOR][COLOR=#C80000]border[/COLOR]: solid 1px #000;
    [COLOR=#C80000]margin-bottom[/COLOR]: 20px;
    [COLOR=#C80000]width[/COLOR]: 100%;
    [COLOR=#000000][FONT=Consolas]}[/FONT][/COLOR]

    Ergebnis:

    Einmal editiert, zuletzt von BumbleBee (24. Februar 2013 um 13:25)

  • Ich glaube ,das ganze wurde jetzt etwas unvertändlich, da die Sitebar dauerhaft abgeschaltet war aufgrund der Erweiterung meiner IF Anweisung die ich weiter oben beschrieben habe.
    hier noch mal der link http://www.gasper-immobilien.de/wp-immo
    Also noch mal zum Problem.....
    Die rechte Sitebar ist normal auf allen Seiten aktiv.
    Nur bei Seiten (Häuser, Eigentumswohnungen, Gewerbe, Grundstücke und noch paar andere) soll diese rechte Sitebar ausgeblendet werden und der Content die volle Breite einnehmen wie du vorher beschrieben hast mit
    .narrowcolumn auf 798px.
    Hoffe das jetzt die Problematik etwas deutlicher wurde....:wink:.

  • Das plugin scheint interessant zu sein und ich kann mir vorstellen dieses an einer anderen Stelle einzusetzen. Aber hier geht es mir darum die komplette Sidebar wegzuschalten und nicht einzelne Widgets.
    Weitere Vorschläge sehr willkommen.

  • Also noch mal zum Problem.....
    Die rechte Sitebar ist normal auf allen Seiten aktiv.
    Nur bei Seiten (Häuser, Eigentumswohnungen, Gewerbe, Grundstücke und noch paar andere) soll diese rechte Sitebar ausgeblendet werden und der Content die volle Breite einnehmen wie du vorher beschrieben hast mit
    .narrowcolumn auf 798px.
    Hoffe das jetzt die Problematik etwas deutlicher wurde....:wink:.

    Das ist mir klar. Was Dir nicht klar ist, das Du in einem extra Template für solche Seiten das mit der Neuzuweisung von Klassen (bsp .narrowcolumn2) neue Werte in der style.css definieren kannst.

    Da Du das scheinbar nicht willst, ist es auch sinnlos weiter darüber zu sprechen. Ich hab das bei mir so gemacht, es funktioniert perfekt. Und ich brauche kein extra Plugin, was zu weiteren Problemen bei Updates führen kann. Aber jeder wie er mag...

  • Sorry wenn das irgendwie böse rüberkam, so war es aber nicht gemeint.

    Das ist mir klar. Was Dir nicht klar ist, das Du in einem extra Template für solche Seiten das mit der Neuzuweisung von Klassen (bsp .narrowcolumn2) neue Werte in der style.css definieren kannst.

    Da Du das scheinbar nicht willst, ist es auch sinnlos weiter darüber zu sprechen. Ich hab das bei mir so gemacht, es funktioniert perfekt. Und ich brauche kein extra Plugin, was zu weiteren Problemen bei Updates führen kann. Aber jeder wie er mag...

    Das ist mir vollkommen klar, ich habe dies auch zuvor schon gemacht, wenn du die style.css vom child theme anschauen würdest hättest du gemerkt, das dort eine classe .narrowcolumn2 bereits definiert ist.

    Das ist mein Template

    PHP
    <?php/*Template Name: Immo Template*/
    get_header();?>
        <div class="narrowcolumn2">    <?php    if (have_posts()) {        while (have_posts()) : the_post();        easel_display_post();        endwhile;        easel_pagination();} ?>    </div>
    <?php get_footer();?>

    Das zentrale problem was ich habe ist, dass die rechte Sidebar trotzdem da ist.
    Und der Content-Bereich irgendwo dahinter verschwindet.


    Wenn ich get_footer() weglasse, sieht das ganze so aus.

    sobald die get_footer() dazu kommt, werden Divs mit den Klassen ".content-wrapper, .subcontent-wrapper, .type-post (oder page) und ID #sidebar-right.sidebar" gleichzeitig gesetzt.

    Das Template habe ich jetzt auch einer Seite hier zugewiesen.
    http://gasper-immobilien.de/wp-immo/hauser/

    Nach einem Plugin habe ich auch nicht gefragt, ich sehe halt als einzige Lösung die Sidebar an dieser Stelle auszublenden, wenn diese wie weiter oben beschrieben in der layout-footer.php die Seiten-ID in die IF-Anweisung mit aufzunehmen, korriegiere mich wenn ich falsch liege.

  • Nur als Tipp: Die Siedebar wird durch folgenden Eintrag aufgerufen:

    PHP
    <?php get_sidebar(); ?>

    Das hast Du aber nirgends drin. *Wink mit Zaunpfahl*


    Genau.....
    Das ist ja genau mein Problem, sonst würde ich das auch ohne fremde Hilfe schaffen, ich vermute, das es mit der einstellmöglichkeit der theme options zusammenhängt. Deswegen auch die if Anweisung in den oberen Beiträgen.

  • Ja, aber Deine IF-Abfrage wirkt sich doch überhaupt nicht auf die sidebar aus. Deshalb sagt ich das ja. Wenn, dann muss eine IF-Abrage in den Teil, wo auch die Sidebar aufgerufen wird.


    EDIT:

    Ahh, okay. Wenn in Deinem Theme natürlich der Sidebaraufruf anders erfolgt, dann ist das ein Problem. Dann solltest Du Dich an den Theme-Entwickler wenden. Der weiß schließlich wie er das realisiert.

    Einmal editiert, zuletzt von BumbleBee (26. Februar 2013 um 19:54)

  • Ja, aber Deine IF-Abfrage wirkt sich doch überhaupt nicht auf die sidebar aus. Deshalb sagt ich das ja. Wenn, dann muss eine IF-Abrage in den Teil, wo auch die Sidebar aufgerufen wird.

    Doch das tut sie, das ist die Originale IF-Anweisung in der layout-foot.php

    PHP
    if (easel_is_layout('2cr,3c,3cr')) easel_get_sidebar('right');


    Diese wirkt sich auf die Sidebar aus, wenn ich sie mit /*.......*/ auskommentiere ist die Sidebar weg.

    Also muß ich diese IF-Anweisung erweitern z.b. so

    PHP
    if (easel_is_layout('2cr,3c,3cr') && !isset($immo)) easel_get_sidebar('right');

    [COLOR=#800000]Jetzt muss ich noch WP dazu bringen (und das ist mein Problem), dass die Variable $immo immer dann gesetzt wird wenn eine dieser bestimmten Seiten ausgewählt ist.[/COLOR]
    Wie gesagt der Versuch mit

    PHP
    (is_page('ID-der Seite')) $immo = "true";?>


    ist gescheitert und ich bin mir sicher, dass ich genau hier irgendwo ein Fehler habe und deswegen auch die Variable $immo nicht gesetzt wird.

  • Also....
    Ich war etwas enttäuscht, dass niemand mehr zu dem Thema was sagen konnte:cry:.

    Hab es aber dank diesem Artikel hier lösen können.
    http://www.tipps.1st-tec.de/wordpress/39/8…mte-seiten.html
    so ganz nach dem Motto "Was uns nicht umbringt, macht uns nur noch Stärker":razz:

    Und zwar habe ich die Datei sidebar-right.php selber mit einer IF-Anweisung ergänzt. Kommischerweise hat es hier mit "is_page" einwandfrei geklappt, was in der funktions.php mit setzen der Variable eben nicht klappte:-x.

    Also einmal für die Nachwelt.

    PHP
    <?php if ( ! is_page(array('1' , '2' , '3' , '4' , '5' , '6' , '7') ) ) { ?>Inhalt der sidebar-right.php  <?php } ?>

    Vielleicht wird es jemandem zu Gute kommen.
    Das Thema kann als gelöst markiert und abgeschlossen werden.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!