Hi @Anjum:
I think the function get_nav_menu_id_by_page_template()
is what you are looking for? You can place the code for this function in your theme’s functions.php
file, or in a .php
for a plugin you are writing:
function get_nav_menu_id_by_page_template($template) {
static $nav_menu_id;
if (!isset($nav_menu_id)) {
global $wpdb;
$sql = <<<SQL
SELECT
menu.post_id AS menu_id
FROM
{$wpdb->postmeta} AS template
INNER JOIN {$wpdb->postmeta} AS menu_id ON menu_id.meta_key='_menu_item_object_id'
AND menu_id.meta_value=template.post_id
INNER JOIN {$wpdb->postmeta} AS menu ON menu_id.post_id=menu.post_id
WHERE 1=1
AND menu.meta_key='_menu_item_object' AND menu.meta_value="page"
AND template.meta_key='_wp_page_template' AND template.meta_value="%s"
SQL;
$nav_menu_id = $wpdb->get_var($wpdb->prepare($sql,$template));
}
return $nav_menu_id;
}
Once you have the get_nav_menu_id_by_page_template()
function in your code you can call it in your theme template file like so:
<?php $nav_menu_id = get_nav_menu_id_by_page_template('store.php'); ?>