elcontraption / wp-post-inspector
Tools for interacting and inspecting WordPress post objects.
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2025-03-31 00:08:45 UTC
README
Tools for interacting and inspecting WordPress post objects.
- Installation
- Retrieving a post object
- Methods
- Accessing post attributes
- Traversing the post hierarchy
Installation
Install as a dependency of your theme via composer:
composer require elcontraption/wp-post-inspector
Retrieving a post object
use \WpPostInspector\PostInspector; // Get the current post object: $currentPost = new PostInspector(); // Get a specific post object by ID $post1 = new PostInspector(1); // Get a specific post object by slug: $helloWorldPost = new PostInspector('hello-world');
Methods
ancestors
Returns array of ancestors as PostInspector objects.
$currentPost->ancestors();
descendants
Returns array of descendants as PostInspector objects.
$currentPost->descendants();
parent
Access parent PostInspector object.
$currentPost->parent();
permalink
Shortcut for get_permalink($currentPost->id())
.
$currentPost->permalink();
siblings
Returns array of siblings as PostInspector objects.
$currentPost->siblings();
top
Access the top ancestor as a PostInspector object.
$currentPost->top();
Accessing post attributes
You may either use standard WP_Post attributes (as methods) or any of the shortcut methods built in to this class.
// Display the current post title using a shortcut method: echo $currentPost->title(); // "Hello world!" // Using a standard WP_Post attribute name: echo $currentPost->post_title(); // "Hello world!"
Attribute name | Shortcut method |
---|---|
ID | id |
post_author | author |
post_date | date |
post_date_gmt | gmt or dateGmt |
post_content | content |
post_title | title |
post_excerpt | excerpt |
post_status | status |
comment_status | commentStatus |
ping_status | pingStatus |
post_password | password |
post_name | name or slug |
to_ping | toPing |
pinged | pinged |
post_modified | modified |
post_modified_gmt | modifiedGmt |
post_content_filtered | contentFiltered |
post_parent | parent |
guid | guid |
menu_order | menuOrder |
post_type | type |
post_mime_type | mimeType |
comment_count | commentCount |
filter | filter |
Traversing the post hierarchy
You may traverse the post hierarchy using the parent
, top
, ancestors
, descendants
, and siblings
methods:
// Get the parent of the current post object: $parent = $currentPost->parent(); // Accessing attributes on the parent object: echo $parent->slug(); // Display the title of the top ancestor post object echo $currentPost->top()->title(); // The 'ancestors', 'descendants', and 'siblings' methods all return arrays of PostInspector objects: $ancestors = $currentPost->ancestors(); foreach ($ancestors as $ancestor) { var_dump($ancestor->title()); } // Method chaining is possible: $grandParent = $currentPost->parent()->parent(); $grandAunts = $currentPost->parent()->parent()->siblings();