elcontraption/wp-post-inspector

Tools for interacting and inspecting WordPress post objects.

0.1.5 2018-05-03 16:30 UTC

This package is not auto-updated.

Last update: 2024-05-12 20:18:39 UTC


README

Tools for interacting and inspecting WordPress post objects.

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();