Pagebar auf statischen Seiten?

  • Ich arbeite mich erst seit kurzem in Wordpress ein, nutze gerade noch Nucleus CMS, werde aber bald wechseln. Ich habe einen testblog aufgesetzt und dort das Theme 5thirtyone an meine Bedürfnisse angepasst. Nun, das Theme hat einen entscheidenden Nachteil, es ist keine Pagebar oder next/back möglich, da mit query die Startseite verbogen wird.

    Ich ahbe allerdings eine Lösung über eine statische Seite gefunden, die alle Nachteile ausbügelt. Wenn...ja wenn es möglich wäre eine Pagebar zu installieren. Wie kann ich das machen?

    Die pagebar funktioniert, es ist also nihts am Plugin, dem Einbaucode oder Wordpress kaputt. Pagebar und next/back werden auf statischen Seiten geblockt. Kann ich das ausschalten? Wo und Wie?

    Der einfache next/back reicht mir nicht, den könnte ich zur Not ja auch simulieren, also auf der statischen Startseite von Hand setzen und danach den php-code benutzen.

    Vielen Dank für eure Hilfe


    Nachtrag: Ich habe mal im Plugin nachgesehen, auch wenn ich da nichts verstehe sehe ich, dass es daran liegt, dass der Wert page nicht über 1 kommt, weil sich das Plugin nicht die Artikelzahlen des Blogs holt, sondern der Seite, oder so?
    if(empty($paged))
    $paged = 1;

    if($max_page > 1)
    {

    da wird abgefragt wie viele Seiten erstellt werden sollen und die Seite kommt eben nicht über 1. Ich poste mal das ganze Teilstück, vielleicht weiß ja jemand, wie ich das Plugin zwinge, die Artikelanzahl des Blogs zu holen.

    if(empty($paged))
    $paged = 1;

    if($max_page > 1)
    {

    echo '<div class="pagebar">' . $params['before'];

    if ($paged>1 && $params['directions'])
    echo '<a href="'.trim(new_get_pagenum_link($paged-1)).'" '.pbShowTooltip($params['tooltip'],$params['tooltip_text'], $paged-1).'>'.$params['prev'].'</a> ';

    if ($paged >= 4)
    echo '<a href="'.new_get_pagenum_link().'"'.pbShowTooltip($params['tooltip'],$params['tooltip_text'], "1").'>1</a> <span class="break">...</span> ';

    for($i = $paged - 2 ; $i <= $paged +2; $i++) {
    if ($i >= 1 && $i <= $max_page) {
    if($i == $paged)
    echo '<span class="this-page">'.$i.'</span>';
    else
    echo ' <a href="'.new_get_pagenum_link($i).'"'.pbShowTooltip($params['tooltip'],$params['tooltip_text'], $i) .'>'.$i.'</a> ';
    }
    }
    if (($paged+2) < ($max_page))
    echo ' <span class="break">...</span> <a href="'.new_get_pagenum_link($max_page).'"'.pbShowTooltip($params['tooltip'],$params['tooltip_text'], $max_page).'>'.$max_page.'</a>';

    if ($paged<$max_page && $params['directions'])
    echo ' <a href="'.new_get_pagenum_link($paged+1).'"'.pbShowTooltip($params['tooltip'],$params['tooltip_text'], $paged+1).'>'.$params['next'].'</a>';

    echo $params['after'] . '</div>';
    }

    Allerdings ist oben auch eine Funktion, die dran Schuld sein könnte:

    function new_get_pagenum_link($i=1)
    {
    return attribute_escape(get_pagenum_link($i));
    }
    Ach mensch, kennt jemand das Plugin und versteht mein Problem?

    endlosrekursion | Das Drama des menschlichen Bewusstseins ist seine Neugierde

    Einmal editiert, zuletzt von soeren onez (25. Mai 2007 um 00:47)

    • 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

  • Das ist "Systembedingt" - Statische Seiten sind statische Seiten, die hängen nicht in einer "Kalenderlogik" drin und die haben keine Kategorien, so dass es auch keine nächste bzw. vorherige Seite geben kann.

    "Blättern" oder ähnliches ist nur bei "Beiträgen" sinnvoll.

  • Das leuchtet mir ein, die Frage ist doch, ob ich dem Plugin die Daten des Blogs übergeben kann? Denn schon mit dem ersten klick auf die pagebar ist man ja wieder in der Kalenderlogik drin.

    Kann ich die Daten des Blogs irgendwie in dem Plugin bekommen?

    endlosrekursion | Das Drama des menschlichen Bewusstseins ist seine Neugierde

  • Die Pagebar soll einfach das könne, was sie immer kann:

    Seite: 1| 2| 3|...

    Das soll sie anzeigen, eben auch auf der Startseite, die eine statische Seite ist, die ich mit einem gesonderten Template ausgestattet habe, weil ich dort query posts benutze und sonst die Seiten /page/2 genauso aussehen wie die startseite, wenn ich das in die index.php oder eine home.php schreibe. Es ist also eine maske und dennoch sollte es möglich sein auf die anderen /page/x/ seiten zugreifen zu können. Ich könnte es auch staisch bauen, aber dann müsste ich eben andauernd etwas dazubauen. War das verständlih, sonst mache ich es nohmal genauer.
    Danke für deine Mühe

    endlosrekursion | Das Drama des menschlichen Bewusstseins ist seine Neugierde

  • Ach so ... Dazu fällt mir jetzt keine Lösung ein.

    Aber mach's doch andersrum - Zeig ganz normale Beiträge auf der Startseite - und eben zusätzlich das, was Du jetzt als "statischen Startseitentext" hast. In der index.php abfragen, ob es sich aktuell um die Startseite handelt

    Das geht ja auch ... z.B. irgendwie so:

  • Mein Problem ist ja, dass ich keinen statischen Inhalt habe, das wäre in der Tat so wie du beschrrieben hast einfacher. Aber meine Startseite zeigt oben den neuesten Artikel an, und dann in einem anderen div-bereich die nächsten fünf Artikel. Automatisch. Mit query post gemacht. ich kann aber das nicht in eine if-abfrage in die index.php reinstecken, weil die /page/27 seiten eben auch home zurückgeben. Dadurch habe ich ja das Problem, dass diese Seiten genauso aussehen, wie die Startseite und versuche es gerade mit meiner methode zu umgehen. Werde mich dann wohl mit dem "nächte Seite"-Link begnügen müssen. ist halt sehr schlecht, weil dadurch nicht alle Seiten Linksaft abbekommen. Ach ja.

    endlosrekursion | Das Drama des menschlichen Bewusstseins ist seine Neugierde

  • Aber mir kommt eine Idee, vielelicht geht das ja. Ist es Möglich in einer if-Abfrage in der index.php abzufragen, ob die bloghauptseite ist oder nicht, also vielelicht damit "<?php echo get_settings('home'); ?>" weil das gibt ja nun den link zur Startseite aus, nur der Startseite, dann wären die page/2/ seiten nicht betroffen?

    endlosrekursion | Das Drama des menschlichen Bewusstseins ist seine Neugierde

  • Ah ... ich vermute was ...

    Konstruier mal die Abfrage nach den "nächsten" Posts besser nicht mit query_dings - Das Problem ist vermutlich, dass damit die globale Variable $posts neu belegt wird.

    Beziehungsweise - wenn ich mir Deine Seite angucke, weiß ich eigentlich aber auch nicht, warum Du eine neue Abfrage startest. Du kannst doch auch ganz einfach einstellen, dass 6 Posts pro Seite gezeigt werden ..?


    .
    .
    .

    By the Way (Asche über mein Haupt, es stimmt, ich surfe wider besseres Wissen fast nur mit dem Internet Explorer) - Die Sidebar "klappt" bei Dir unter den Content ...

    Nein, das ist keine Brille, das sind Augenränder!

    Print- und Webdesign

    Einmal editiert, zuletzt von pufaxx (25. Mai 2007 um 16:10)

  • Schau dir mal meine testseite an http :// www. raphael-raue.de/onez-blog/ dann weißt du warum. den onezblog, den du noch siehst, der arbeitet mit Nucleus CMS, da hätte ich für das vorhaben kein Problem, aber ich will wechseln.

    endlosrekursion | Das Drama des menschlichen Bewusstseins ist seine Neugierde

    Einmal editiert, zuletzt von soeren onez (25. Mai 2007 um 18:17)

  • Ach SOO ... ich bin vorher immer auf ner ganz anderen Seite gelandet ...

    Okay - Also da die Pagebar und ... hm ...

    Müsste auch ohne query-posts gehen. Denn das ist ja das, was die ganzen "Blättern"-Geschichten unmöglich macht. Anregung: Du musst ja nicht alles, "was Du kriegst" gleich ausgeben. Ich würd also den ganzen query_posts-Kram wieder rausschmeißen und zunächst eine ganz normale WordPress-Loop erzeugen. Also das übliche Verfahren mit

    Code
    if (have_posts()) : while (have_posts()) : the_post();

    ... mit folgendem Unterschied: Dabei einen Zähler mitlaufen lassen. Und statt the_content(); anzuwenden, nimmst Du $Inhalt[$Counter] = get_the_content();

    (Viele Template-Tags geben ihre Werte in PHP zurück, wenn man "get_" davor schreibt. Klappt zwar nicht immer, aber meistens ...)

    --> Also eine ganz normale Loop zurechtschrauben, die bloß nichts ausgibt, sondern alles in Variablen sammelt. Und mit DENEN kannst Du nachher arbeiten.
    --> Damit dürfte die PageBar weiterhin funktionieren - und was am Ende und wie es am Ende tatsächlich ausgegeben wird, kannst Du ja bestimmen, wenn die ganzen Inhalts-Arrays gefüllt sind.
    --> Ist vielleicht ein bisschen Fummelkram, ich glaub, dass es bei Einsatz von query_posts sehr viel schwieriger ist, die ganzen "paged"-Bedingungen noch "stimmig" zu erhalten ...

  • Hey, moment - Quatsch ... viel zu kompliziert gedacht ... Das müsste ja eigentlich auch ohne das "Sammeln in Arrays" funktionieren.

    Nen Zähler kannste ja auch mitlaufen lassen, wenn gleich etwas ausgegeben wird. Und wernn der Zähler 0 ist, dann gibst Du the_content(); aus und die "erste Sidebar" (oder wie auch immer das konstruiert ist) - wenn Zähler gößer 0 ist, dann wie bei Dir aktuell zu sehen the_excerpt(); - und danach die "zweite Sidebar" ... und dann den Footer.

    ((Patsch!))

    Ich hab auch manchmal ein Talent, Sachen zu verkomplizieren ... Sorry.

    :-)

  • Das könnte funktionieren, ich danke dir wirklich vielmals für die Arbeit die du dir hier mit mir gemacht hast. Es bleibt allerdings ein Problem offen. Wenn ich das so mache wie du beschrieben hast, dann sehen auch die /page/x/ seiten so aus, dass ein artikel groß ist, dann der rest. Aber dort soll ja nur die exerp-öiste stehen. Ach ja. Ich werde es wohl so machen, dass ich auf der Startseite eben einen Link zu der /page/2/ setze und dort dann eben die Pagebar anzeigen lasse, dass muss dann eben reichen.
    Danke nochmal

    endlosrekursion | Das Drama des menschlichen Bewusstseins ist seine Neugierde

  • Ich würd's anders machen ...

    Einmal kannst die aktuelle Seiten-Adresse mit dem vergleichen, was Du als "Startseite" (also wohl Deine Blog-Adresse) festgelegt hast:

    Code
    // eventuell vorher noch
    // global $_SERVER; 
    //
    
    
    if ( $_SERVER('REQUEST_URI') == get_bloginfo('wp-url') ) { 
    	//... dann bei Counter0 Vollen Inhalt ...
    } else {
    	//... sonst so, wie die anderen Postings halt auch aussehen
    }

    ... weiß jetzt nicht, ob's 'wp-url', 'wp_url' oder 'wpurl' heißt, das sind so Dinger, die ich mir nie merken kann ... macht aber nix, im schlimmsten Fall hat mal halt zwei mal ne Fehlermeldung, bis es klappt ... Auf jedenfall wäre diese Bedingung nur bei http://www.deineseite.de erfüllt. Nicht aber bei http://www.deineseite.de/irgendwas/page/2 ...

    Wenn's doof läuft, könntest Du dann und wann aber mal ein index.php drin stehen haben, ich vermute, das würde dann schon nicht mehr als "das selbe" erkannt werden. Eventuell musst Du das noch irgendwie abfangen ...

    Aber bevor man zu viel mit Server-Variablen herumjongliert ...

    Vielleicht ist es besser abzufragen, ob man auf einer "weitergeblätterten" auflistung sitzt oder nicht. Dafür gibt's ne Funktion, Irgendwas von wegen is_paged() oder sowas. So weit ich das (jedenfalls von älteren WordPress-Versionen) in Erinnerung habe musste man da allerdings ein bisschen aufpassen. Da war glaub ich irgendwas ... à la gibt auf der Startseite "0" zurück, aber wenn man von irgendwo wieder zurückblättert, kann's "1" werden

    Naja, mussu probieren ...

  • Also vom Prinziep her muss das ja klappen, aber wenn ich das von dir oben in die index.php setze, bekomm ich keine fehler oder irgendwas, sondern gar nichts. Vielleicht liegt es an der Synthax. Wie muss ich das denn genau da reinschreiben? <?php davor oder wie? Du musst wissen ich bin ein php-noob und habe mir alles nur aus der doc und beispielen zusammengebastelt. Könntest du mir die obige Lösung nocheinmal so posten, dass ich einfach nur copy&paste in die index.php setzen kann?
    Danke

    endlosrekursion | Das Drama des menschlichen Bewusstseins ist seine Neugierde

  • Ich glaube ich habe etwas noch einfacheres gefunden um zu prüfen, ob es die Startseite ist:
    es gibt is_home() und is_paged(). Wenn ich if( is_home()) and not( is_paged() ) schreibe, dann bekomme ich nur bei der startseite ein true und auf den page/x/ seiten nicht, genau was ich haben will. Ich wiß jetzt nur nicht, wie ich das schreiben muss. Wie muss ich hier das and und das not machen?

    endlosrekursion | Das Drama des menschlichen Bewusstseins ist seine Neugierde

  • Ich habs und es funktionier genau so wie ich es möchte. Mein Aufbau in der index.php ist folgendenderweise:


    <?php if ( is_home() ) : ?>
    <?php if( is_paged() == false) : ?>
    home.php-inhalt = das ist nur die startseite
    <?php else : ?>
    index.php-inhalt = das sind die page/x/- seiten
    <?php endif; ?>
    <?php else : ?>
    index.php-inhalt = das sind die kategorien/tag-seiten
    <?php endif; ?>


    Danke Gunnar, du hast mich auf den richtigen Dampfer geführt.

    endlosrekursion | Das Drama des menschlichen Bewusstseins ist seine Neugierde

Jetzt mitmachen!

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