{"id":238,"date":"2017-02-19T09:30:34","date_gmt":"2017-02-19T08:30:34","guid":{"rendered":"http:\/\/evileu.de\/zum-schwarzen-pinguin\/?p=238"},"modified":"2017-02-19T09:30:34","modified_gmt":"2017-02-19T08:30:34","slug":"kommt-auf-den-wunschzettel-eine-eigene-bildertabelle-fuer-wordpress","status":"publish","type":"post","link":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/2017\/02\/19\/kommt-auf-den-wunschzettel-eine-eigene-bildertabelle-fuer-wordpress\/","title":{"rendered":"Kommt auf den Wunschzettel: eine eigene Bildertabelle f\u00fcr WordPress"},"content":{"rendered":"<h2>Der Attachment-Kuddelmuddel in der wp_posts<\/h2>\n<p>Wie wir gesehen haben, war es ein ganz sch\u00f6ner Aufwand, alle relevanten Informationen f\u00fcr die Ausgabe aller Bilder zusammenzutragen. Ich habe an anderer Stelle schon angemeckert, da\u00df es aus aus Sicht eines alten Datenbankers nicht OK ist, so unterschiedliche Entit\u00e4ten wie Posts und Attachments in der selben Tabelle, n\u00e4mlich der wp_posts, zu verwalten. Ich la\u00df jetzt mal die anderen Attachment-Typen (ZIP, Wav, Doc&#8230;) weg und werfe nur einen gezielten Blick auf die Bilder. Das ist auch semantisch sinnvoll, weil Bilder eine ganz spezielle Art von MIME-Types darstellen. Korrekterweise mu\u00df man sagen, da\u00df wir hier von Inline-Bildern sprechen, die vom Browser im Dokument innerhalb des Textflusses direkt dargestellt werden. Externe Bilder w\u00e4ren dann die, die erst geladen werden wenn man auf einen Link oder ein Vorschaubild klickt, aber ich schweife ein bi\u00dfchen ab. Wer mehr wissen will: ein interessanter Artikel zu dem Thema ist <a href=\"http:\/\/www.rz.uni-passau.de\/Dokumentation\/partl\/hein4.html#img\">hier bei der Uni Passau<\/a> zu finden.<\/p>\n<p>Begn\u00fcgen wir uns mit den ganz normalen Bildern auf Seiten und in Beitr\u00e4gen, und ich geh mal lieber direkt ran an meine Wunschtabelle.<\/p>\n<h2>Die neue Bilder-Tabelle: ein Vorschlag<\/h2>\n<p>Wie k\u00f6nnte das jetzt aussehen, wenn man die Bilder aus der wp_posts auslagert und eine eigene Tabelle f\u00fcr sie anlegt? Ganz einfach so:<\/p>\n<div id=\"attachment_240\" style=\"width: 1272px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-240\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-240\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/02\/neue_bildertabelle.jpg\" alt=\"neue_bildertabelle\" width=\"1262\" height=\"75\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/02\/neue_bildertabelle.jpg 1262w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/02\/neue_bildertabelle-300x18.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/02\/neue_bildertabelle-768x46.jpg 768w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/02\/neue_bildertabelle-1024x61.jpg 1024w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/02\/neue_bildertabelle-624x37.jpg 624w\" sizes=\"(max-width: 1262px) 100vw, 1262px\" \/><p id=\"caption-attachment-240\" class=\"wp-caption-text\">neue_bildertabelle<\/p><\/div>\n<h2>Feldliste der neuen Tabelle<\/h2>\n<p>Ich geh mal die Felder der Reihe nach durch:<\/p>\n<ol>\n<li>bild_id: AutoIncrement, die eindeutige Identifikationsnummer des Datensatzes.<\/li>\n<li>beitrag_ix: der Fremdschl\u00fcssel f\u00fcr die ID des zugeh\u00f6rigen Beitrags, das &#8222;<strong>ix&#8220;<\/strong> steht f\u00fcr<strong> &#8222;i<\/strong>d e<strong>x<\/strong>tern&#8220;<\/li>\n<li>bild_url: der vollst\u00e4ndige Pfad zur Bilddatei<\/li>\n<li>bild_titel: selbsterkl\u00e4rend<\/li>\n<li>bild_beschriftung: selbsterkl\u00e4rend<\/li>\n<li>bild_alt_text: selbsterkl\u00e4rend<\/li>\n<li>bild_beschreibung: selbsterkl\u00e4rend<\/li>\n<\/ol>\n<h2>Wo sind denn all die anderen Felder geblieben?<\/h2>\n<p>Brauchen wir nicht mehr.<\/p>\n<ul>\n<li>Der post_type attachment ist \u00fcberfl\u00fcssig, weil wir hier in der neuen Tabelle nur noch Attachments verwalten.<\/li>\n<li>Der post_mime_type image\/ ist \u00fcberfl\u00fcssig, weil wir nur noch Bilder verwalten.<\/li>\n<li>Es ist sogar \u00fcberfl\u00fcssig, nach MIME-Type jpeg oder andere Bildformate zu unterscheiden, weil im img src-Tag auch png, gif, ico usw, zul\u00e4ssig sind, genaueres zu den zul\u00e4ssigen Bildtypen steht<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/get_allowed_mime_types\"> im Codex.<\/a><\/li>\n<li>Der post_status ist \u00fcberfl\u00fcssig, aber der hat uns ohnehin f\u00fcr die Bildausgabe nicht die Bohne interessiert.<\/li>\n<li>die Verkn\u00fcpfung auf die wp_postmeta ist \u00fcberfl\u00fcssig, weil wir hier f\u00fcr den alt-Text das eigene Feld bild_alt_text haben<\/li>\n<\/ul>\n<p>Alles klar soweit?<\/p>\n<h2>Das neue SQL Statement<\/h2>\n<p>Wie lautet also das neue SQL f\u00fcr die Ausgabe aller Bilder? Gehen wir mal davon aus, da\u00df die Tabelle schlicht wp_bilder heissen soll. Dann schreibt sich das so:<\/p>\n<pre>Select * from wp_bilder;<\/pre>\n<p>Das wars.<\/p>\n<p>Und das m\u00f6chte ich jetzt erstmal etwas einwirken und sacken lassen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der Attachment-Kuddelmuddel in der wp_posts Wie wir gesehen haben, war es ein ganz sch\u00f6ner Aufwand, alle relevanten Informationen f\u00fcr die Ausgabe aller Bilder zusammenzutragen. Ich habe an anderer Stelle schon angemeckert, da\u00df es aus aus Sicht eines alten Datenbankers nicht OK ist, so unterschiedliche Entit\u00e4ten wie Posts und Attachments in der selben Tabelle, n\u00e4mlich der [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,9,11,7,2],"tags":[],"_links":{"self":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/238"}],"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=238"}],"version-history":[{"count":2,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/238\/revisions"}],"predecessor-version":[{"id":241,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/238\/revisions\/241"}],"wp:attachment":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/media?parent=238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/categories?post=238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/tags?post=238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}