Für Ent­wick­ler bringt die neue WordPress Ver­si­on 4.6 eine ver­bes­ser­te Mög­lich­keit mit dem WP_Term_Query, Terms aus der Daten­bank abzufragen.

Was sind Terms?

Ein Term ist ein Begriff der zu einer Taxo­no­mie gehört. Eine Taxo­no­mie besteht aus einem bis meh­re­ren Terms. Ein oder meh­re­re die­ser Terms kön­nen mit einem Bei­trag ver­knüpft wer­den. Das Ziel die­ser Ver­knüp­fung ist es, Bei­trä­ge zu Kate­go­ri­sie­ren um spä­ter schnel­ler nach Bei­trä­gen fil­tern zu können.

Ein Bei­spiel dafür ist die Taxo­no­mie Fahr­zeug­ty­pen die alle ver­wen­de­ten Fahr­zeug­ty­pen beinhal­tet. Der Fahr­zeug­typ wie Klein­wa­gen, Mit­tel­klas­se, Kom­bi oder Gelän­de­wa­gen ist ein Term.
Ein Bei­trag über einen VW Polo kann dann mit einem Klein­wa­gen und einer über einen Golf mit den Fahr­zeug­ty­pen Klein­wa­gen und Mit­tel­klas­se ver­knüpft werden.

Neue Taxo­no­mien wie die aus dem Bei­spiel kön­nen zu allen Bei­trags­ty­pen hin­zu­ge­fügt wer­den. Die bestehen­den Kate­go­rien von Bei­trä­gen sind im Hin­ter­grund nichts ande­res als Terms inner­halb der Taxo­no­mie “cate­go­ry” und die Schlag­wor­te nichts ande­res als Terms inner­halb der Taxo­no­mie “post_tag”.

Abfragen von Terms

Die Klas­se WP_Term_Query hilft uns WordPress Ent­wick­lern Terms wie schon die Bei­trä­ge (WP_Query), Nut­zer (WP_User_Query) und Kom­men­ta­re (WP_Comment_Query) aus der Daten­bank abzufragen.

Die­se WordPress-Klas­sen brin­gen vie­le Mög­lich­kei­ten mit, ein Ele­ment auf einem stan­dar­di­sier­ten Weg aus der Daten­bank zu fil­tern. Das hat den Vor­teil das nicht jeder Ent­wick­ler eige­ne Daten­bank­ab­fra­gen schrei­ben muss. Inner­halb die­ser Klas­sen wird die Caching-API von WordPress ver­wen­det wel­che die Daten­bank­ab­fra­gen redu­ziert und die Anwen­dung schnel­ler macht.
Wei­ter­hin sind die­se Klas­sen gene­rell siche­rer in der Ver­wen­dung. Das liegt einer­seits dar­an, dass die Fil­te­rung von Ein­ga­ben durch den Benut­zer berück­sich­tigt wird und vie­le Ent­wick­ler über die­sen Quell­code geschaut haben (Stich­wort Code­re­view). Ande­rer­seits kön­nen durch WordPress-Updates Feh­ler inner­halb die­ser Klas­sen ein­fach und schnell beho­ben werden.
Mit der Stan­dar­di­sie­rung fällt es Ent­wick­lern auch viel leich­ter den Quell­code für Feh­ler­ana­ly­sen zu verstehen.
Eige­ne Abfra­gen zu schrei­ben lässt sich in bestimm­ten Fäl­len nicht ver­mei­den. Hier muss dann jedoch auf die Effi­zi­enz (Inte­gra­ti­on der Caching API) und die Sicher­heit geach­tet werden.

Fazit

Mit dem der Ein­füh­rung der Klas­se WP_Term_Query wird der Quell­code für die eige­ne Ent­wick­lung wei­ter stan­dar­di­siert. Kom­ple­xe und schlecht Wart­ba­re und damit feh­ler­an­fäl­li­ge Daten­bank­ab­fra­gen wer­den redu­ziert. Die Ver­ständ­lich­keit für das Lesen von Quell­code wird erhöht.