Function
Set up TML action nav menu items.
tml_setup_nav_menu_item( object $menu_item )
Parameters
-
$menu_itemobject - The menu item object.
Return
object
The menu item object.
Source
function tml_setup_nav_menu_item( $menu_item ) {
// Item to be added
if ( $menu_item instanceof Theme_My_Login_Action ) {
$menu_item = (object) array(
'ID' => 0,
'db_id' => 0,
'menu_item_parent' => 0,
'post_parent' => 0,
'type' => 'tml_action',
'type_label' => __( 'TML Action', 'theme-my-login' ),
'object' => $menu_item->get_name(),
'object_id' => -1, // Needed for AJAX save to work
'title' => $menu_item->get_title(),
'url' => $menu_item->get_url(),
'target' => '',
'attr_title' => '',
'description' => '',
'classes' => array(),
'xfn' => '',
);
// Existing menu item
} elseif ( 'tml_action' === $menu_item->type ) {
$menu_item->object_id = $menu_item->ID;
$menu_item->type_label = __( 'TML Action', 'theme-my-login' );
$action = tml_get_action( $menu_item->object );
if ( ! $action ) {
$menu_item->_invalid = true;
} else {
$menu_item->url = $action->get_url();
if ( 'logout' === $menu_item->object ) {
$menu_item->url = wp_nonce_url( $menu_item->url, 'log-out' );
}
if ( ! is_admin() && ! $action->show_nav_menu_item ) {
$menu_item->_invalid = true;
}
}
// Legacy menu item
} elseif ( 'page' === $menu_item->object ) {
$slug = get_post_field( 'post_name', $menu_item->object_id );
$action = tml_get_action( $slug );
if ( $action ) {
if ( 'logout' === $action->get_name() ) {
$menu_item->url = wp_nonce_url( $action->get_url(), 'log-out' );
}
if ( ! is_admin() && ! $action->show_nav_menu_item ) {
$menu_item->_invalid = true;
}
}
}
return $menu_item;
}
Uses
Changelog
| Version | Description |
|---|---|
| 7.0 | Introduced. |