Beiträge von Ammaletu

    Mit "effizient" meinte ich tatsächlich Rechenleistung / Ladezeit etc. Die Seite ist jetzt schon nicht die schnellste, also wollte ich es da nicht übertreiben mit selbstgeschriebenen Querys. ;-)

    Was die Zahl der Beiträge betrifft, ist das nicht so das Problem. Das ganze soll die Anzeige meiner Kurzgeschichten werden, und so viel schreibe ich leider nicht, dass das in absehbarer Zeit aus dem Ruder laufen würde. Im Moment sind es drei Unterkategorien und vielleicht zwanzig Beiträge.

    So, auf der wp-hackers-Mailingliste haben sich weitere Infos ergeben. Ausgelöst hat den ganzen Spaß diese Änderung an MySQL:
    MySQL Bugs: #30596: GROUP BY optimization gives wrong result order

    Und dabei wurde ein weiterer Bug verursacht, der hier beschrieben ist:
    MySQL Bugs: #32202: ORDER BY not working with GROUP BY

    Das heißt, dieser in MySQL 5.0.51 auftretende Bug wird in MySQl 5.0.52 schon wieder behoben. Wenn ihr davon betroffen seid, solltet ihr euren Provider bitten, so schnell wie möglich auf diese Version zu aktualisieren unter Hinweis auf den Bug-Report.

    Zitat

    Oh nein, jetzt hast Du doch noch geantwortet :oops:



    Ist nicht so schlimm. ;-)


    Zitat

    So wie beschrieben im ersten Post funktioniert alles.

    Was ich nicht so ganz verstehe (hatte das zugegebenermaßen gestern auch nicht sorgfältig genug gelesen, wer weiß, vielleicht übersehe ich heute auch noch was). Je länger ich mir das anschaue, desto unklarer wird mir, was diese while-Schleife tut. Wenn ich das richtig gelesen habe, ist der page-parent doch ggf. die page selbst, so dass das eine Endlosschleife sein müsste?!?

    Anyway, möglicherweise besser wäre die Verwendung von get_permalink($page_id), nach der dritten Zeile des ursprünglich geposteten Codes. Das würde auch eine andere Permalinkstruktur berücksichtigen.

    Aber wenn es ansonsten so für Dich funktioniert,ist es natürlich auch gut.

    Ich habe mal eine Frage zur Umsetzung eines speziellen Template-Wunsches. Es geht mir dabei nicht um schlüsselfertige Lösungen, sondern mehr darum mal zu hören, was andere zu dem Problem für Ideen haben.

    Das Problem: Ich schreibe mir gerade für einige Kategorien meines Blogs spezielle Templates. In einer Kategorie habe ich Unterkategorien. Die Ausgabe möchte ich so gestalten, dass ich alle Beiträge angezeigt bekommen, gruppiert zuerst nach Unterkategorien und da drin dann alphabetisch nach Post-Titel. Die weitere Ausgabe passe ich dann noch an (nur Anzeige des Posttitels etc.), das wird quasi eine Liste der Beiträge.

    Die Frage ist für mich, wie kriege ich das möglichst effizient hin? Wenn ich auf die Oberkategorie gehe, zeigt mir ja WP alle Beiträge an, auch die der Unterkategorien (denke ich, bei mir auf jeden Fall weil ich eh immer beide Kategorien anhake). Alphabetisch sortieren geht auch, kein Problem. Aber wie lege ich da oben drüber noch die Gruppierung?

    Wenn die Oberkategorie-Seite angezeigt wird, macht ja WP automatisch seine Query. Könnte ich die anpassen, z.B. mit GROUP BY?!? Aber die Kategorie steht ja nicht in der Post-Tabelle.

    Also doch lieber keine Unterkategorie, sondern die entsprechende Zuordnung in ein Custom-Feld schreiben? Das steht allerdings ja auch nicht in der Post-Tabelle, glaube ich?!

    Oder kann man die Post-Liste nach Ausführung der Query in WP noch mal sortieren?

    Ihr seht, ich bin über die mögliche Umsetzung noch etwas verwirrt. Unterkategorien wären halt schön einfach, weil ich schon so viel in Custom-Felder schreiben muss. Das vergisst man so leicht. Würde mich freuen, wenn jemand eine Idee dazu hätte. :-)

    Nur damit ich verstehe, was Du erreichen willst: In Deinem oben geposteten Beispiel ist '12' die ID dieser neuesten Subpage, welche Du verlinken möchtest?

    In dem Fall müsstest Du ja die ID immer dann neu eintragen, wenn sich der Link ändern soll. Da kannst Du im Prinzip genauso gut den festen Link ins PHP-File schreiben. Das hätte höchstens den Nachteil, dass Änderungen am Permalink nicht berücksichtigt würden. Aber die Permalinks soll man ja eigentlich eh nicht ändern.

    Davon abgesehen fehlt in dem geposteten Quellcode meiner Meinung nach ein "else". Etwa so, denke ich:

    Code
    if ( $page->post_parent == $page->ID ) {
            echo get_settings('home').'/'.$uri.'/';
    } else {
        while ($page->post_parent != 0) {
            $page = get_page($page->post_parent);
            $uri = urldecode($page->post_name) . "/" . $uri;
        }
        echo get_settings('home').'/'.$uri.'/';
    }

    Daher kommt die doppelte Ausgabe, würde ich sagen.

    Und dann wird ja auch der Seitenname (also, der/die/das Slug in Dem Fall) nicht ausgegeben. Weiß ich gerade auch nicht, woran das liegt.

    Ach ja, obiger Code verlässt sich natürlich auch darauf, dass Du die Permalinkstruktur %postname% verwendest. Sonst klappt das schon mal gar nicht. Generell wäre es sicher sinnvoller, die Funktion get_permalink($id) zu verwenden, also das in dieser While-Schleife manuell zusammen zu bauen. Wobei ich gerade sehe, dass das auch nur der Inhalt der WordPress-Funktion get_page_uri ist, nur dass diese den if-else-Fehler nicht enthält (wegen des returns).

    Anyway, ist das überhaupt das, was Du machen willst?! ;-)

    Zitat

    Könnte es sein, dass ich für die normale Auflistung dort noch das div einbauen muss? Bin mir da aber nicht sicher, wo es hingehört, damit es mit den Dateien page.php und single.php keine Probleme gibt. und wird die index.php dann garnicht auf gerufen, wenn man sich auf die page.php oder single.php bezieht?

    Mehr Infos zur Hierarchie der Theme-Dateien:
    Template Hierarchie − WordDoku
    http://www.scoutpress.de/download/wp_Template_Hierarchy.png

    Daraus solltest Du sehen können, welche Dateien angepasst werden müssen.

    Zitat

    Denn das Problem ist ja, dass der Inhalt der Seite, in meinem div #mitte nur bei der Auflistung der Beiträge nicht richtig angeziegt wird - ansosnten klappt es ja komischer weise.

    Wundert mich gar nicht, auf Deiner Startseite gibt es kein #mitte, jedenfalls nicht um den Inhalt in der Mitte herum. Sieht ansonsten gar nicht schlecht aus, aber ich würde dem Inhalt noch etwas Abstand zum Rand geben. :-)

    Wenn zwischen den Tags Umbrüche stehen, ist das nicht direkt ein CSS-Problem. Und ich habe eine Ahnung, wo das herkommt (glaube ich jedenfalls). Im Quellcode von Simple Tags werden keine <br />-Umbrüche ausgegeben, allerdings ein normaler Zeilenumbruch \n. In HTML wird so ein Zeilenumbruch ja nicht ausgegeben, aber es macht den Quelltext lesbarer.

    Soweit so schön, nun hast Du die Funktion aber nicht in der Sidebar stehen, sondern im Inhaltsbereich einer statischen Seite. Kann es sein, dass Du das mit Exec-PHP oder etwas ähnlichem ausführst und so die generierten Tags quasi als Seiten-Inhalt ausgegeben werden? Dann kommen die Umbrüche von WordPress, der ja einen harten Zeilenumbruch in einen HTML-Umbruch konvertiert.

    Falls das zutrifft, könnte eine Lösung z.B. sein, sich ein Template zu erstellen, dort den Befehl reinzuschreiben und dann der statischen Seite dieses Template zuzuweisen.

    Bist Du sicher, dass Du die Doku zu dem Plugin gelesen und den Parameter "format" nicht auf "list" gestellt hast?! :-)

    ...

    So, nun habe ich mir Deine Seite nochmal angeschaut. Ist ja gar keine Liste. Hast Du was geändert?!

    Anyway, im Moment werden da Links mit einem Umbruch dahinter ausgegeben. Was nach den Tags ausgegeben wird, sollte sich im Backend unter Tags > Einstellungen hoffentlich einstellen lassen.

    Hm, das kann ich mir gerade nicht so wirklich vorstellen. Wenn Du die unveränderte DB lokal einspielst, dann sollte doch schon der Anmelden-Link Dich zur Website führen statt zum lokalen Backend, weil WP eben diese URL gespeichert hat!? Ich weiß, dass mir das mal so ging, das ich fröhlich in der vermeintlich lokalen Kopie rumeditierte, Plugins deaktivierte etc. bis ich gemerkt habe, dass ich auf der Instanz draußen gelandet war.

    Das heißt, normalerweise muss man bei der lokalen Installation die URLs ändern, da kommt man nicht drum herum. Schon gar nicht, seit WP 2.3 mit dem Feature "Canonical URLs" alle URLs, die nicht der in der DB hinterlegten URL entsprechen, dorthin weiterleitet.

    Ich weiß jetzt natürlich nicht, inwiefern sich das unterscheidet, wenn man WP in Joomla integriert hat. BTW: Wie geht das und wo steht mehr dazu? *g* Da ich demnächst auch mal Joomla ausprobieren wollte, wär das interessant zu wissen.

    Mit ein bisschen googlen nach dieser Fehlermeldung findet man so Sachen wie diese hier:
    Twosteps FAQ - PHP Ausführungsrechte
    PHP script resource - Premature end of script headers
    Gelöst: - Premature end of script headers: index.php - Joomla CMS Support Forum

    Das scheint generell etwas mit Rechten zu tun zu haben, entweder den Datei- bzw. Ordnerrechten allgemein oder damit, wem die Dateien/Ordner gehören. Über Deinen Provider müsste sich ja rauskriegen lassen, unter welchem User PHP läuft -- dem sollten dann auch die PHP-Dateien gehören.

    Wenn Du das auf einer Seite (Page) einbindest, dann sind im äußeren Loop keine Beiträge sondern eben diese eine Page enthalten. Ich bin mir auch nicht sicher, ob das in einem Beitrag so klappen würde. Ohne es ausprobiert zu haben würde ich vermuten, dass sich das dann mit der äußeren Schleife beißt (so á la Du stellst die 10 aktuellsten Beiträge auf der Seite dar und bindest das im zweiten Beitrag ein, dann müsstest Du die Beiträge 3 und 4 darin angezeigt bekommen und danach nur noch die Beiträge 5 bis 10).

    Falsch erscheint mir ansonsten noch das hier:

    Code
    if ($loop2counter > 1 and $loop2counter < 2 ) :

    Darf man "and" anstatt "&&" schreiben? Möglich, hab ich so aber noch nicht gesehen. Es wird außerdem schwer, einen Fall zu finden, wo $loop2counter gleichzeitig größer als 1 und kleiner als 2 ist, wenn es sich um eine int-Variable handelt. Das müsste > 0 und < 3 heißen, denke ich.

    Prinzipiell denke ich müsstest Du sowas mit einer eigenen Query lösen.

    Es gibt ein Limit für Bilder per Post?! Das kann aber höchstens ein indirektes sein, denn wie viele img-Tags Du in Deine Beiträge schreibst, ist nicht limitiert. Schlimmstenfalls lege die Bilder also einfach auf dem Server ab und schreibe sie per HTML in die Beiträge. Also, falls Du spezielle WP-Funktionen wie Kommentare direkt an Bildern etc. nicht brauchst.