1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Laufende Nummer erstellen und verlinken

Dieses Thema im Forum "Design" wurde erstellt von Chuonrad, 1. Oktober 2009.

  1. Chuonrad

    Chuonrad Member

    Registriert seit:
    29. September 2009
    Beiträge:
    16
    Zustimmungen:
    0
    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
     
  2. Morris

    Morris Well-Known Member

    Registriert seit:
    27. Mai 2006
    Beiträge:
    1.560
    Zustimmungen:
    0
    Am einfachsten dürfte es sein mit der ID des Artikels zu arbeiten.

    Gruß
    Mo
     
  3. Chuonrad

    Chuonrad Member

    Registriert seit:
    29. September 2009
    Beiträge:
    16
    Zustimmungen:
    0
    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?
     
  4. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Für die Artikelnummerierung könnte man das Feld menu_order in der Tabelle wp_posts "mißbrauchen". Dieses wird zwar für Seiten und Bilder verwendet, ist bei Artikeln aber derzeit ungenutzt und immer 0. Eine Sortierung nach menu_order ist auch einfach.

    Für die Eingabe müßte man sich mit einem Plugin im Backend reinhängen. Und für die Links mußte man eine Funktion get_permalink_by_menu_order oder sowas schreiben.

    Gruß
    Ingo
     
  5. Chuonrad

    Chuonrad Member

    Registriert seit:
    29. September 2009
    Beiträge:
    16
    Zustimmungen:
    0
    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) :)
     
  6. Monika

    Monika Well-Known Member
    Ehrenmitglied

    Registriert seit:
    4. Juni 2005
    Beiträge:
    14.126
    Zustimmungen:
    2
  7. Chuonrad

    Chuonrad Member

    Registriert seit:
    29. September 2009
    Beiträge:
    16
    Zustimmungen:
    0
    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?
     
  8. Monika

    Monika Well-Known Member
    Ehrenmitglied

    Registriert seit:
    4. Juni 2005
    Beiträge:
    14.126
    Zustimmungen:
    2
    Fragen, nachhaken ist hier frei :mrgreen:
     
  9. Chuonrad

    Chuonrad Member

    Registriert seit:
    29. September 2009
    Beiträge:
    16
    Zustimmungen:
    0
    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...
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    allerdings ist mein Plugin/Widget nur auf der Hauptseite zu sehen - und nicht in der Single-View. Woran liegt das denn nun wieder?
     
    #9 Chuonrad, 13. Oktober 2009
    Zuletzt bearbeitet: 13. Oktober 2009
  10. Chuonrad

    Chuonrad Member

    Registriert seit:
    29. September 2009
    Beiträge:
    16
    Zustimmungen:
    0
    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.xxn

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    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.
     
  11. Chuonrad

    Chuonrad Member

    Registriert seit:
    29. September 2009
    Beiträge:
    16
    Zustimmungen:
    0
    ach, es ist so befreiend und inspirierend, hier zu schreiben. :)

    Meine Schleifen sehen grad so aus:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    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.
     
  12. Chuonrad

    Chuonrad Member

    Registriert seit:
    29. September 2009
    Beiträge:
    16
    Zustimmungen:
    0
    Alleinunterhalter

    Na fein, ich komme mir recht einsam vor hier :)

    Ich habe jetzt eine Lösung und bin fast fertig:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    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.
     
  13. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Na vielleicht solltest Du nicht nach meta_key, sondern besser nach meta_value sortieren.

    Gruß
    Ingo
     
  14. Chuonrad

    Chuonrad Member

    Registriert seit:
    29. September 2009
    Beiträge:
    16
    Zustimmungen:
    0
    Hi Ingo,

    danke für den Tipp. Das hatte ich auch schon probiert - führte aber leider nicht zum gewünschten Erfolg.

    hg,
    ch.
     
  15. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Zumindest ist eine Sortierung nach meta_key weitestgehend sinnlos, da der meta_key ja immer gleich ist, nämlich 'Laufende Nr.'.
    Was genau soll da eingentlich insgesamt rauskommen?

    Gruß
    Ingo
     
  16. Chuonrad

    Chuonrad Member

    Registriert seit:
    29. September 2009
    Beiträge:
    16
    Zustimmungen:
    0
    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.
     
    #16 Chuonrad, 16. Oktober 2009
    Zuletzt bearbeitet: 16. Oktober 2009
  17. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Und wozu dann die Sortierung nach post_date? Sind denn die laufenden Nummern nicht chronologisch vergeben?
    Es sollte eine Sortierung nur nach laufender Nummer (meta_value) ausreichend sein, denke ich.

    Gruß
    Ingo
     
  18. Chuonrad

    Chuonrad Member

    Registriert seit:
    29. September 2009
    Beiträge:
    16
    Zustimmungen:
    0
    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, XX3

    zB. 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.
     
  19. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Das liegt daran, das bei der Sortierung wie oben post_date Vorrang hat, und nur bei gleichem post_date der zweite Sortierausdruck wirksam wird.
    Du kannst aber die MySQL-Funktion YEAR verwenden, dann sollte das mit der von Dir gewünschten Reihenfolge klappen. SQL etwa so:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ich verwende auch liebr kurze Tabellen-Aliase, daher nur wp und wm :)

    Gruß
    Ingo
     
  20. Chuonrad

    Chuonrad Member

    Registriert seit:
    29. September 2009
    Beiträge:
    16
    Zustimmungen:
    0
    Vielen Dank!

    ...nachdem ich "meta_key", wie Du vordem geraten hast, mit "meta_value" ersetzt habe, funktioniert es! Vielen Dank.
    Interessant. Wieder was gelernt. :)
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden