The $mod Variable

The $mod variable is defined early in the WPSSO load process (in WpssoHead->show_head(), which is hooked to the 'wp_head' action) and is passed to most WPSSO methods and filters.

$wpsso =& Wpsso::get_instance();

// Maybe prefer the global $post object.
$use_post = apply_filters( 'wpsso_use_post', false );

// Get information about the current webpage.
$mod = $wpsso->page->get_mod( $use_post );

The $mod variable name stands for module and defines important reference values for the current WPSSO object type. The WPSSO object type can be a comment, post, term, or user. An archive does not have an object type since an archive page is a collection of object types. For example, a monthly archive is a collection of posts for that month. In this case, $mod[ 'obj' ] would be false and other properties would be true, like $mod[ 'is_archive' ], $mod[ 'is_date' ], and $mod[ 'is_month' ].

The WpssoPage->get_mod() method can be used to determine the current webpage module. If you need to setup a $mod variable for a specific comment, post, term, or user, you can call the get_mod() methods from those class objects directly.

$wpsso =& Wpsso::get_instance();

// Get information for comment ID 123.
$mod = $wpsso->comment->get_mod( 123 );

// Get information for post ID 123.
$mod = $wpsso->post->get_mod( 123 );

// Get information for term ID 123.
$mod = $wpsso->term->get_mod( 123 );

// Get information for user ID 123.
$mod = $wpsso->user->get_mod( 123 );

Here is a $mod array for an example post:

Array (
    [id] => 123
    [name] => post
    [name_transl] => post
    [obj] => object WpssoPost
    [wp_obj] => object WP_Post
    [query_vars] => Array ()
    [paged] => false
    [paged_total] => 1
    [is_404] => false
    [is_archive] => false
    [is_comment] => false
    [is_date] => false
    [is_day] => false
    [is_home] => false
    [is_home_page] => false
    [is_home_posts] => false
    [is_month] => false
    [is_post] => true
    [is_post_type_archive] => false
    [is_public] => false
    [is_search] => false
    [is_term] => false
    [is_user] => false
    [is_year] => false
    [use_post] => false
    [post_slug] => the-post-slug
    [post_type] => post
    [post_type_label_plural] => Posts
    [post_type_label_single] => Post
    [post_mime] => ''
    [post_status] => publish
    [post_author] => 123
    [post_coauthors] => Array ()
    [post_time] => 2013-03-15T22:23:27+00:00
    [post_modified_time] => 2021-01-31T00:16:46+00:00
    [tax_slug] => ''
    [tax_label_plural] => false
    [tax_label_single] => false
    [user_name] => ''
)

An example to retrieve custom post meta:

if ( $mod[ 'is_post' ] && $mod[ 'id' ] ) {

    $value = get_post_meta( $mod[ 'id' ], '_example_meta_name', $single = true );
}

The 'obj' element can be used to call object methods. Here's an example to get a custom Open Graph description value (if one has been defined):

$og_desc = $mod[ 'obj' ]->get_options( $mod[ 'id' ], 'og_desc' );

Function wrappers for the WPSSO get_mod() methods are also available:

// Get information about the current webpage (post, term, user, archive page, etc.).
$mod = wpsso_get_page_mod();

// Get information for a comment ID.
$mod = wpsso_get_comment_mod( $comment_id );

// Get information for a post ID.
$mod = wpsso_get_post_mod( $post_id );

// Get information for a term ID.
$mod = wpsso_get_term_mod( $term_id );

// Get information for a user ID.
$mod = wpsso_get_user_mod( $user_id );

Leave a Review