Begrip en werken met berichten in WordPress

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:

  • posts
  • gebruikers
  • opmerkingen
  • koppelingen

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..

Posten definiëren

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!):

  • EEN 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.
  • Bericht is een berichttype dat wordt gebruikt voor blogposts of nieuwsitems, afhankelijk van het type site dat u aan het ontwikkelen bent.

De wp_posts tabel wordt getoond in de onderstaande afbeelding.

Heb je zin? Zo niet, lees verder, alles zal duidelijk worden!

Berichttypen in WordPress

WordPress wordt geleverd met vijf ingebouwde berichttypen:

  • Post
  • Pagina
  • gehechtheid
  • Herziening
  • Navigatiemenu-item

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.

De standaard berichttypen begrijpen

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.

Relaties tussen berichten

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:

  • ouder- en kindpagina's
  • herzieningen en de functie waar ze betrekking op hebben
  • bijlagen en het bericht waarnaar ze zijn geüpload

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.

Samenvatting

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-.