{"id":546,"date":"2017-07-11T18:51:09","date_gmt":"2017-07-11T16:51:09","guid":{"rendered":"http:\/\/evileu.de\/zum-schwarzen-pinguin\/?p=546"},"modified":"2017-07-11T18:52:07","modified_gmt":"2017-07-11T16:52:07","slug":"wordpress-als-fuehrendes-system-fuer-das-mitgliederverzeichnis","status":"publish","type":"post","link":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/2017\/07\/11\/wordpress-als-fuehrendes-system-fuer-das-mitgliederverzeichnis\/","title":{"rendered":"WordPress als f\u00fchrendes System f\u00fcr das Mitgliederverzeichnis: ein Anfang"},"content":{"rendered":"<h2>Erstmal eine Hypothese<\/h2>\n<p>Ich habs ja sonst nicht so mit theoretischen Konstrukten, ich bin eher praktisch veranlagt. Aber der Turnverein Wei\u00df-Blau m\u00f6chte seine Mitgliederstammdaten in Zukunft mit WordPress verwalten, also an die Arbeit. Ich gehe mal davon aus, da\u00df der Import zumindest der Adressdaten mit Custom Fields geklappt hat und unser bestehender Mitgliederstamm jetzt sauber in den WordPress-eigenen Tabellen abgelegt ist.Notfalls mit einem kostenpflichtigen Plugin, das wars uns jetzt wert.<\/p>\n<h2>Erstmal sehen sie: nichts.<\/h2>\n<p>Kurz zur Erinnerung: f\u00fcr jedes Mitglied gibt es einen eigenen Beitrag. Im Beitragstitel steht die Mitgliedsnummer und der Name. Im Beitragsinhalt m\u00f6chten wir die Adressdaten sehen. Wieso m\u00f6chten? Die haben wir doch importiert? Ja aaaber &#8211; nach dem Import sehen wir im Beitrag jetzt erst einmal &#8211; nichts. Nur wenn man im Dashboard auf &#8222;Alle Beitr\u00e4ge&#8220; geht und da bei einem Beitrag &#8222;Bearbeiten&#8220; w\u00e4hlt und dann ein bi\u00dfchen runterscrollt, dann sieht man die Benutzerdefinierten Felder mit ihren Inhalten.<\/p>\n<div id=\"attachment_547\" style=\"width: 693px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-547\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-547\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/07\/fridolin_CF.jpg\" alt=\"fridolin_CF\" width=\"683\" height=\"475\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/07\/fridolin_CF.jpg 683w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/07\/fridolin_CF-300x209.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/07\/fridolin_CF-624x434.jpg 624w\" sizes=\"(max-width: 683px) 100vw, 683px\" \/><p id=\"caption-attachment-547\" class=\"wp-caption-text\">fridolin_CF<\/p><\/div>\n<p>Das ist unser Editor f\u00fcr Bestandsdaten. Wenn sich an den Adressdaten eines Mitglieds etwas \u00e4ndern sollte, suchen wir uns den entsprechenden Beitrag und gehen in den Bearbeitungsmodus, hier k\u00f6nnen wir unsere \u00c4nderungen direkt einpflegen. Kann ich damit leben, die Benutzer brauchen halt eine kurze Einweisung in den Beitragseditor und sollten auch nicht vergessen auf &#8222;Aktualisieren&#8220; zu klicken, dann funktioniert das schon.<\/p>\n<h2>Und wenn es neue Mitglieder einzutragen gibt?<\/h2>\n<p>Nat\u00fcrlich k\u00f6nnte man einfach in WordPress einen neuen Beitrag erstellen und die Daten manuell eingeben, aber das ist dann schon ein bisschen sperriger in der Benutzerf\u00fchrung. Man mu\u00df n\u00e4mlich die relevanten Benutzerdefinierten Felder einzeln hinzuf\u00fcgen, und das ist aufwendig und fehlertr\u00e4chtig. Ausserdem muss man sich genau \u00fcberlegen, woher man die Mitgliedsnummer nimmt, unsere so wichtige eindeutige ID. Was gibt es f\u00fcr Alternativen?<\/p>\n<p>Man k\u00f6nnte die neuen Benutzer in der alten Excel-Liste eintragen, die Mitgliedsnummern fortlaufend weiterf\u00fchren und einen neuen Import fahren, aber was passiert dann mit unseren Bestandsdaten? Werden die &#8222;alten&#8220; Mitgliederdaten dann \u00fcberschrieben? Was passiert mit \u00c4nderungen, die ich in den Bestandsdaten eventuell bereits gemacht habe? W\u00e4re dann die Excel-Datei unser f\u00fchrendes System, und nicht WordPress? Lauter Fragen, auf die es so ad hoc keine einfachen Antworten gibt.<\/p>\n<h2>Noch &#8217;ne Hypothese<\/h2>\n<p>Viele CSV-Import-Plugins, die ich ausprobiert habe, bieten zumindest in der Pro Edition ein Feature, mit dem man ausw\u00e4hlen kann ob bereits bestehende Datens\u00e4tze upgedated werden sollen oder nicht. Ausprobieren konnte ich das nicht, aber es scheint mir die einzig praktikable L\u00f6sung zu sein, wenn man neue Mitglieder-Datens\u00e4tze nicht einzeln manuell eingeben, sondern per neuem Import hinzuf\u00fcgen m\u00f6chte. Das w\u00fcrde nat\u00fcrlich bedeuten da\u00df wir von unserer alten Excel-Tabelle nicht wegkommen, aber sei&#8217;s drum. Gehen wir mal davon aus, dass das funktioniert mit dem selektiven Import, und k\u00fcmmern wir uns mal um das n\u00e4chstliegende Problem:<\/p>\n<h2>Die immer noch unsichtbaren Custom Fields<\/h2>\n<p>Man sieht die benutzerdefinierten Felder ja nach wie vor nur im Beitragseditor, und das soll sich jetzt schnellstens \u00e4ndern. Eine sehr kurze und praktische L\u00f6sung ist ein Shortcode, den wir wie gewohnt in die functions.php unseres Child-Themes setzen. Der kann zum Beispiel so aussehen:<\/p>\n<pre>function ms(){\r\n\u00a0\u00a0\u00a0 \r\n\u00a0\u00a0\u00a0 $aktID=get_the_id();\r\n\u00a0\u00a0 \u00a0$strassehsnr= get_post_meta($aktID, 'strassehausnummer', true);\r\n\u00a0\u00a0 \u00a0echo $strassehsnr;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n}\r\nadd_shortcode('meinshortcode','ms');<\/pre>\n<p>Ich habs ein bisschen ausf\u00fchrlicher als unbedingt n\u00f6tig hingeschrieben, aber so l\u00e4\u00dft sichs besser erkl\u00e4ren. Die Funktion ms() macht Folgendes:<\/p>\n<ul>\n<li>get_the_id() holt die WordPress-ID des aktuellen Beitrags<\/li>\n<li>get_post_meta() holt zur aktuellen Beitrags-ID den Wert des Custom Field namens &#8222;strassehausnummer&#8220;, das &#8222;true&#8220; am Ende bewirkt, da\u00df eine Einzelvariable ausgegeben wird und kein Array<\/li>\n<li>echo gibt die ganze Chose aus.<\/li>\n<\/ul>\n<p>Fertig! Shortcode in einen Beitrag einsetzen, Beitrag ansehen und da steht sie, die Strasse und Hausnummer. Die anderen Custom Fields holt man sich mit genau der gleichen Mechanik, man mu\u00df halt nur den get_post_meta() mit dem korrekten Namen des Feldes f\u00fcttern. Also, damit kann ich jetzt echt leben!<\/p>\n<h2>Verwendung im Theme<\/h2>\n<p>Man kann die Funktion get_post_meta() nat\u00fcrlich auch in einem Template nutzen, sie z.B. an geeigneter Stelle in ein Child seiner single.php einbauen, aber das ist sehr Theme-spezifisch, da muss jeder selber rumdoktern, das versuche ich zu vermeiden wo es nur geht. In der Praxis wird man sich wahrscheinlich einen benutzerdefinierten Post Type anlegen und dort die entsprechenden Erg\u00e4nzungen vornehmen, aber davon la\u00df ich hier mal die Finger, das sieht wie gesagt in jedem Theme anders aus. Mir reicht mein funktionaler Shortcode, der ist universell einsetzbar.<\/p>\n<h2>Ja, aber was ist jetzt mit dem Anlegen neuer Mitglieder?<\/h2>\n<p>Machen wir das echt im alten Excel?<br \/>\nGute Frage, und ich glaube, dazu brauchts einen neuen Beitrag.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Erstmal eine Hypothese Ich habs ja sonst nicht so mit theoretischen Konstrukten, ich bin eher praktisch veranlagt. Aber der Turnverein Wei\u00df-Blau m\u00f6chte seine Mitgliederstammdaten in Zukunft mit WordPress verwalten, also an die Arbeit. Ich gehe mal davon aus, da\u00df der Import zumindest der Adressdaten mit Custom Fields geklappt hat und unser bestehender Mitgliederstamm jetzt sauber [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,18,4,14,2],"tags":[],"_links":{"self":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/546"}],"collection":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/comments?post=546"}],"version-history":[{"count":6,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/546\/revisions"}],"predecessor-version":[{"id":553,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/546\/revisions\/553"}],"wp:attachment":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/media?parent=546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/categories?post=546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/tags?post=546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}