Beiträge von Chuonrad
-
-
hm. nein. mit query_posts komme ich offenbar auch nicht weiter - oder ich wende es nicht richtig an.
Ich schätze, ich muss doch ein SELECT machen ... und dabei die Tabellen, welche die "tags" enthalten (wp_term?) mit abfragen. Aber ob das dann hinhaut?
-
Also alles Retour und query_posts verwendet:
hmmm. das tut wieder nur die Hälfte. :/ Es sortiert zwar nach dem Custom Field - nun aber nicht mehr nach dem Jahr.
und außerdem funktionieren die Tags wieder nicht - obwohl ich ja nun wirklich innerhalb des Loops bin.
*Lösung such*
-
*stöhn*
Hallo, es geht leider noch weiter.
Nachdem ich nun endlich die Nummern in die Sidebar bekommen habe, muss ich nun auch die Ausgabe der Beiträge sortieren. Hilfreich war dabei ein Tutorial von Monika.
Bisher habe ich mir in den Beiträgen die Tags des jeweiligen Beitrags anzeigen lassen:
Ok. geht nur innerhalb des loops, habe ich rausgefunden.
Frage 1 - wie kriege ich das denn nun wieder rein.
Frage 2 - die "single.php" habe ich unangetastet gelassen - dort werden die Tags aber auch nicht mehr angezeigt. Warum?
Frage 3 - in der Sidebar habe ich eine Tag-Cloud, die nun nicht mehr funktioniert. Warum?
Wäre prima, wenn mir jemand erneut Denkanstöße geben würde. -
Vielen Dank!
...nachdem ich "meta_key", wie Du vordem geraten hast, mit "meta_value" ersetzt habe, funktioniert es! Vielen Dank.
Interessant. Wieder was gelernt. :) -
Verzeihung, vielleicht war ich nicht deutlich genug.
Meine Nummern setzen sich aus zwei Teilen zusammen:1. YY = Jahrzweistellig, ergibt sich aus dem "Post Date"
2. XXX = individuell vergebene laufende Nummer.Es kann durchaus vorkommen, das Nummer 003 eher eingegeben wird, als Nummer 001, zB.. Daher gibt es hier keine "automatische" Zuordnung.
Die Ausgabe in der Sidebar erfolgt dann nach dem Schema:
Y1:XX1, XX2, XX3
Y2:XX1, XX2, XX3zB. Beiträge aus 2008: 08:001,002,003
dann aus 2009: 09:001,002,003,004,005 etc.Ich kann also NICHT zuerst nach laufender Nummer sortieren, da es ja mehere "Laufende Nummern" 001 geben wird ...
Meine Sortierung erfolgt daher erst nach Jahr (YY, post_date) und anschließen nach "Laufender Nr." (XXX, meta_value). Nur, es klappt nicht, wie ich mir das denke.
-
Ah ja! Klingt logisch. :) Die Laufende Nummer enthält Werte wie, 001, 002, 003 ... die sollen eben in der Reihenfolge kommen. Momentan habe ich zB. 003, 001 stehen.
-
Hi Ingo,
danke für den Tipp. Das hatte ich auch schon probiert - führte aber leider nicht zum gewünschten Erfolg.
hg,
ch. -
Alleinunterhalter
Na fein, ich komme mir recht einsam vor hier :)
Ich habe jetzt eine Lösung und bin fast fertig:
PHP
Alles anzeigenfunction laufnummer() { global $wpdb; $querystr = " SELECT wposts.* FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta WHERE wposts.ID = wpostmeta.post_id AND wpostmeta.meta_key = 'Laufende Nr.' ORDER BY wposts.post_date, wpostmeta.meta_key ASC "; $pageposts = $wpdb->get_results($querystr, OBJECT); if ($pageposts): $jahr = ''; foreach ($pageposts as $post): setup_postdata($post); $jabfrag = date("y", strtotime($post->post_date)); if ($jahr != $jabfrag ) { echo "<br>"; echo $jabfrag; $jahr = $jabfrag; $key="Laufende Nr."; echo '<a href="?p='.$post->ID.'">'; echo "."; echo get_post_meta($post->ID, $key, true).'</a>'; } else { $key="Laufende Nr."; echo '<a href="?p='.$post->ID.'">'; echo "."; echo get_post_meta($post->ID, $key, true).'</a>'; } endforeach; endif; }Irgendwie kommt mir das aber reichlich unelegant vor - wenn der eine oder andere hier noch ein wenig für Eleganz sorgen könnte, wäre das prima.
Die Sortierung bereitet mir allerdings noch Bauchschmerzen. Vertausche ich beide ORDER Argumente, wird logisch richtig sortiert. So wie es dasteht und wie ich es benötige, wird nur das erste Argument ausgewertet. Ich meine, gelesen zu haben, das es möglicherweise daran liegt, das ein TEXT-Feld sortiert werden soll. Was kann ich tun, um eine richtige Sortierung zu erlangen?herzlichst,
ch. -
ach, es ist so befreiend und inspirierend, hier zu schreiben. :)
Meine Schleifen sehen grad so aus:
PHP
Alles anzeigenif ($pageposts): foreach ($pageposts as $post): setup_postdata($post); $jahr = date("y", strtotime($post->post_date)); echo $jahr; foreach ($pageposts as $post): setup_postdata($post); $key="Laufende Nr."; echo '<a href="?p='.$post->ID.'">'; echo "."; echo get_post_meta($post->ID, $key, true).'</a>'; endforeach; echo "<br>"; endforeach; endif;Was passiert: es werden alle Beiträge ausgelesen, deren Jahr wird angezeigt, hinten dran werden dann die laufenden Nummern aus dem benutzerdefiniertem Feld ausgegeben. Ja logisch soweit.
Aber eigentlich möchte ich ja, das das jeweilige Jahr nur EINMAL ausgegeben wird - und NUR die zu diesem Jahr gehörenden Beiträge angezeigt werden. Dann folgt das nächste Jahr etc.
Danke fürs Lesen. Weitere Einträge in Kürze.
Der eine oder andere Hinweis darf bitte gern erteilt werden. :)ch.
-
weiter ...
Ok. Das Problem wurde auch gelöst. Bin regelrecht begeistert von mir :).
Jetzt muss ich die nächste Etappe in Angriff nehmen:
Meine Laufende Nummer setzt sich aus zwei Teilen zusammen:Jahr.Nummer, im Format: YY.XXX
Das Jahr nehme ich aus dem Datumsfeld, die Nummer aus einem Benutzerdefiniertem Feld.
Derzeit habe ich es geschafft, dass meine Plugin/Widget das Jahr anzeigt, dahinter die laufenden Nummern. Also in etwa so:
YY: xx1.xx2.xx3.xxnPHPthe_time('y'); foreach ($pageposts as $post): setup_postdata($post); $key="Laufende Nr."; echo '<a href="?p='.$post->ID.'">'; echo "."; echo get_post_meta($post->ID, $key, true).'</a>'; endforeach;Das ist aber momentan fast nur ein Fake. Wie schaffe ich es denn, dass das Jahr korrekt angezeigt wird, also wenn sich das Jahr ändert .. also so:
Y1: xx1.xx2.xx3.xxn
Y2: xx1.xx2.xx3...
etc.Ich schätze, ich muss zwei Schleifen bauen. In der äußeren werden die Jahre durchlaufen und angezeigt, in der inneren (die jetzt schon existiert) dann die einzelnen Nummern.
Ich vermute, mit "the_time()" komme ich da nicht weiter.herzlichst,
ch. -
fast ...
Hallo,
also, nach einigen Tagen trial and error, bin ich ein gutes Stück weiter.
Ich habe jetzt zumindest schonmal die entsprechenden Werte der Felder in der Seitenleiste. diese werden auch verlinkt...allerdings ist mein Plugin/Widget nur auf der Hauptseite zu sehen - und nicht in der Single-View. Woran liegt das denn nun wieder?
-
Vielen Dank, Monika. Co-Author war das Stichwort, auf das ich nicht gekommen bin, bei meiner Suche. Danke, das funktioniert prima.
Das andere Problem ist natürlich etwas hartnäckiger.
Bevor ich Deinem Link gefolgt bin, habe ich schon ein Query versucht und in
der index eingebaut - hat zum Teil auch funktioniert. Jetzt versuche ich gerade, irgendwie mit diesem query ein Widget zu bauen, um die Ausgabe in der Sidebar zu haben ... darf ich nochmal nachhaken, wenn ich nicht weiter komme? -
Hm. Das überfordert mich momentan. Da werd ich mich wohl mal tiefer einlesen müssen. Warum kann man ein Benutzerdefiniertes Feld nicht nutzen?
Gibt es dafür einen Grund?(Und die Autorenfrage möchte ich auch nochmal stellen) :)
-
hm, danke für den Tipp. Das hatte ich auch schon überlegt. leider habe ich nichts gefunden, um diese ID manuell ändern zu können. (So, wie zB. die Autorenzuordnung). Leider muss das sein, weil die ID nicht unbedingt der gewünschten Nummer entspricht.
Apropos Autorenzuordnung: noch ne Frage: lassen sich einem Beitrag mehrere Autoren zuweisen?
-
Hallo Gemeinde,
ich bin ein totale WP-Neuling. Leider habe ich gleich eine Nicht-Standard-Aufgabe bekommen, für ein Blog.
Dieses soll nämlich nicht nach Datum, sondern nach einer Laufenden Nummer sortiert werden.Ich muss es also irgendwie schaffen, jedem Eintrag (manuell) eine Nummer zu verpassen. Diese Nummern müssen dann in der Seitenleiste, ähnlich den Schlagworten zB. erscheinen. Mit klick auf die jeweilige Nummer komme ich dann zum entsprechenden Beitrag.
Ich kann schon benutzerdefinierte Felder auslesen und anzeigen - bislang wird dann aber nur die "aktuelle" Nummer in der Sidebar angezeigt und nicht alle vorhandenen. Wie ich diese dann verlinke, weiß ich auch noch nicht.
Template tags sind mir auch kein Fremdwort mehr, die Grundprinzipien der Widget und Pluginerstellung habe ich nachgelesen - aber ich komme momentan nicht weiter.
Es wäre nett, wenn mir jemand auf die Sprünge helfen könnte.
herzlichst,
Chuonrad