Zoals zoveel voorbeelden van WordPress-terminologie, kan de term 'berichten' verwarrend zijn, omdat het verwijst naar een berichttype en een inhoudstype dat is opgeslagen in een specifieke databasetabel.
Hier zal ik het verschil tussen beide verduidelijken en de berichttypen in detail bekijken.
In het vorige deel van deze serie heb ik de verschillende inhoudstypen in WordPress onderzocht, die zijn opgeslagen in een aantal verschillende databasetabellen. Dit zijn:
In deze zelfstudie zal ik berichten in meer detail bekijken en de berichttypen, de onderlinge relaties en hoe dit alles begrijpt, u helpen om met hen te werken..
Ten eerste zal ik beginnen met het definiëren van berichten en hoe ze verschillen van berichten (ja, het is verwarrend en het toevoegen van een hoofdletter maakt de dingen niet zo veel duidelijker!):
post
is een inhoudsitem opgeslagen in de wp_posts
tafel. Elk heeft een post_type
toegewezen, wat zou kunnen zijn post
, pagina
of iets anders.De wp_posts
tabel wordt getoond in de onderstaande afbeelding.
Heb je zin? Zo niet, lees verder, alles zal duidelijk worden!
WordPress wordt geleverd met vijf ingebouwde berichttypen:
Daarnaast kunt u uw eigen aangepaste berichttypen toevoegen met behulp van de register_post_type ()
functie, wat betekent dat uw WordPress-installatie zoveel posttypen kan bevatten als u maar wilt. Elk berichttype heeft dezelfde status als de ingebouwde berichttypen - af en toe heb ik gehoord dat mensen denken dat 'aangepast berichttype' een berichttype zelf is. Dat is het niet!
Ik zal dat illustreren met een voorbeeld. Wanneer u een aangepaste zoekopdracht voor berichten schrijft, voegt u het volgende toe aan de argumenten van uw query:
'post_type' => 'plaatsen'
Maar als je een aangepast berichttype hebt gemaakt met de naam my_post_type
, u zou het met het volgende vragen:
'post_type' => 'mijn_post_type'
Je kunt dit gebruiken post_type
argument om elk type bericht te ondervragen, en inderdaad kunt u meerdere berichttypen opvragen als u dat wenst. Ik zal hier niet in detail op ingaan, omdat het buiten het bestek van deze tutorial valt, maar u kunt meer lezen op de WordPress Codex-pagina voor WP_Query
.
Laten we snel kijken naar elk van de ingebouwde berichttypen, hoe ze op elkaar lijken en hoe ze verschillen. Merk op dat ik in de onderstaande tabel de term bericht in algemene zin gebruik om de inhoud van alle berichttypen te beschrijven.
Berichttype | Gebruikt voor | Notes |
---|---|---|
Post | Blogberichten of iets dergelijks | Core berichttype - vermeld op hoofd blogpagina |
Pagina | Statische pagina's | Ontworpen om afzonderlijk te worden weergegeven - niet algemeen gebruikt in archieven (hoewel ze dat wel kunnen zijn). Pagina's kunnen ouders bevatten, die zijn gedefinieerd met behulp van de post_parent veld in de record voor de onderliggende pagina.Elke pagina kan meerdere kinderen hebben, maar slechts één ouder. |
gehechtheid | Documenten en afbeeldingen (die al dan niet aan een bericht zijn gekoppeld) | Media die naar een bericht is geüpload, hebben de ID van dat bericht in de map post_parent veld. Afbeeldingen geüpload via het Media-scherm in het dashboard hebben dat veld leeg. De GUID veld wordt gebruikt om de url van het mediabestand op te slaan. |
Herziening | Individuele herzieningen van elk bericht | Elke revisie is gekoppeld aan een post: de ID kaart van die post zal worden opgeslagen in de revisies post_parent veld-. |
Navigatiemenu-items | Individuele items van het navigatiemenu | Elk menu bevat een aantal navigatie-items, die elk als een bericht worden opgeslagen. De menu_order veld wordt gebruikt om informatie over de volgorde van navigatiemenu-items op te slaan en aanvullende gegevens zoals het doel en het bovenliggende menu-item worden opgeslagen als records in de wp_postmeta tafel. |
Aangepaste berichttypen kunnen worden geregistreerd om zich op dezelfde manier te gedragen als elk van de ingebouwde berichttypen (behalve gehechtheid
), maar de standaardinstelling is post
. Elk van de berichttypen heeft een eigen interface.
Zoals u aan de bovenstaande tabel kunt zien, is de post_parent
veld is een belangrijk veld, omdat het informatie over relaties tussen verschillende berichten opslaat. Waaronder:
U kunt de post_parent
veld op verschillende manieren in uw vragen. Als u bijvoorbeeld wilt zoeken naar onderliggende pagina's van een bepaalde pagina, gebruikt u het volgende, waar ID kaart
is de ID van de bovenliggende pagina:
'post_parent' => 'ID'
U kunt een vergelijkbare query gebruiken om bijlagen weer te geven die naar een bepaalde post zijn geüpload, of u kunt als alternatief bijlagen met geen bovenliggend item opvragen (dat wil zeggen die welke rechtstreeks naar het mediascherm in het dashboard zijn geüpload).
Om dit te doen, zou je het volgende argument gebruiken:
'post_parent' => '0'
Het is hoogst onwaarschijnlijk dat u ooit revisies zou moeten doorzoeken, omdat u alleen wilt dat bezoekers uw gepubliceerde inhoud te zien krijgen.
Je kan ook gebruiken post_parent_in
met een reeks ID's om de kinderen van een reeks berichten of pagina's te identificeren.
Inzicht in de wp_posts
tabel en wat deze opslaat is een essentieel onderdeel van het begrijpen van de WordPress-database. Zoals je hebt gezien, de wp_posts
tabel wordt gebruikt om berichten op te slaan, waaronder vijf ingebouwde berichttypen (inclusief berichten) en elk aantal aangepaste berichttypen dat u zelf toevoegt.
De tabel slaat ook gegevens op over relaties tussen berichten, in de post_parent
veld-.