WordPress: „Forgot The Category“ für Custom Post Types

Ich erweitere gerade ein relativ umfangreiches Blog um einen Custom Post Type, um neben News auch Artikel darstellen und beide Beitragsvarianten unabhängig voneinander layouten zu können. Zudem wollte ich für die Artikel nicht die Standardkategorien nutzen, sondern neue Taxonomien.

Die Einrichtung des entsprechenden Custom Post Type war mit dem Plugin „Custom Post Type UI“ ein Kinderspiel (die Erstellung des Themes unter Einbindung der CPTs ist es nicht, aber dazu ein andermal).

Beim Test stieß ich dann allerdings auf ein unerwartetes Problem: ich habe das Plugin „Forgot The Category“ installiert, das mich darauf hinweist, eine Kategorie anzugeben, was ich schonmal vergessen hatte und das ist ärgerlich, wenn man es nicht merkt. Mit den bereits vorhandenen Beiträgen klappt das ohne Probleme, nur bei der selbst eingerichteten Taxonomie für den CPT zickte das Plugin und bemängelte nicht gewählte Kategorien.

Ein schneller Blick ins Plugin und via Firebug in den Quellcode der Kategorie-Box im WP-Backend zeigte mir schnell, wo das Problem lag, aber auch wie die Lösung auszusehen hatte:

Der Quelltext des Plugins (Auszug):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class DC_ForgotTheCategory {
  function AddToEditPage() {
    <script type="text/javascript"><!--
    jQuery("form#post").submit(function(){
      if ( jQuery("ul#categorychecklist input:checkbox:checked").length < 1 ) {
        alert("Oops! You forgot to select a category.");
        jQuery("#publish").removeClass("button-primary-disabled");
        jQuery("#ajax-loading").css("visibility", "hidden");
        return false;
      } else {
        return true;
      }
    });
    //--></script>
  }
}
 
add_action("edit_form_advanced", array("DC_ForgotTheCategory", "AddToEditPage"));

In Zeile fünf entdeckt man den jQuery-Selektor

1
ul#categorychecklist

das Element mit der ID #categorychecklist gibt es allerdings in der Liste der Custom Taxonomy nicht. Der Quelltext zeigte mir aber dass dasselbe UL-Element auch eine Klasse namens

1
.categorychecklist

besaß und die war auch in der Liste der selbsterstellen Taxonomie vorhanden. Der Rest war einfach, Zeile fünf musste nur in

?View Code JAVASCRIPT
1
if ( jQuery("ul.categorychecklist input:checkbox:checked").length < 1 ) {

geändert werden (Raute gegen Punkt austauschen), und schon wurden korrekt mit einem Haken versehene Taxonomie-Begriffe nicht mehr bemängelt.

Keinen verwandten Inhalt gefunden.

Ihnen hat dieser Artikel gefallen oder geholfen? Prima! Dann denken Sie doch an mich, wenn Sie eine Webseite benötigen!

Dieser Eintrag wurde veröffentlicht in CSS, jQuery, php, Wordpress und getagged , , , , . Bookmarken: Permanent-Link. Kommentieren oder ein Trackback hinterlassen: Trackback-URL.

Ein Kommentar

  1. Thomas Wiese
    Erstellt am 7. Juli 2011 um 09:38 | Permanent-Link

    Yippie endlich! forgot the category ist ein pulgin welches ich schon seit drei tagen suche und dank Ihrem Blog habe ich es jetzt gefunden :-)

Ein Trackback

  1. […] den Originalbeitrag weiterlesen: WordPress: “Forgot The Category” für Custom Post Types Medien zum Thema   Medien by […]

Ihr Kommentar

Ihre E-Mail-Adresse wird niemals veröffentlicht oder verteilt.

Du kannst diese HTML Tags und Attribute verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Time limit is exhausted. Please reload CAPTCHA.

Durch die weitere Nutzung der Seite stimmen Sie der Verwendung von Cookies und eingebundenen Skripten zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn Sie diese Website ohne Änderung der Cookie-Einstellungen verwenden (Navigation) oder auf "Akzeptieren" klickst, erklären Sie sich damit einverstanden. Dann können auch Cookies von Drittanbietern wie Youtube oder Google gesetzt werden. Wenn Sie das nicht wollen, sollten Sie entweder nicht auf "Akzeptieren" klicken und die Seite nicht weiter nutzen, oder Ihren Browser im Inkognito-Modus betreiben, und/oder Anti-Tracking- und Scriptblocker-Plugins nutzen.

Mit einem Klick auf "Akzeptieren" werden zudem extern gehostete Javascripte freigeschaltet, die weitere Informationen, wie beispielsweise die IP-Adresse an Dritte weitergeben können. Welche Informationen das genau sind liegt nicht im Einflussbereich des Betreibers dieser Seite, das bitte bei den Anbietern (jQuery, Google, Youtube, Amazon, Twitter *) erfragen. Wer das nicht möchte, klickt nicht auf "akzeptieren" und verlässt die Seite.

Wer wer seine Identität im Web schützen will, nutzt Browser-Erweiterungen wie beispielsweise uBlock Origin oder ScriptBlock und kann dann Skripte und Tracking gezielt zulassen oder eben unterbinden.

* genauer: eingebettete Tweets, eingebundene jQuery-Bibliotheken, Amazon Artikel-Widgets, Youtube-Videos, Vimeo-Videos

Schließen