Warning: Please do not give out any FTP or ssh credentials to anyone, unless you trust them completely. Giving out login details is dangerous.
If the asker does not get an answer then they have 10 days to request a refund.
$10
regex
i use this function
add_action( 'init', 'register_navmenus' );
function register_navmenus() {
global $blog_id;
global $cat1_link;
if ( !is_nav_menu( 'menuonglet'.$blog_id )) {
$menu_id = wp_create_nav_menu( 'menuonglet'.$blog_id );
$menu1 = array(
'menu-item-object-id' => '',
'menu-item-object' => '',
'menu-item-parent-id' => 0,
'menu-item-position' => 1,
'menu-item-type' => 'custom',
'menu-item-title' => 'Appareils auditifs' ,
'menu-item-url' => $cat1_link,
'menu-item-description' => '',
'menu-item-attr-title' => '',
'menu-item-status' => 'publish'
);
wp_update_nav_menu_item( $menu_id, 0, $menu1 );
}
}when i create a new site, this menu is automatically created.
I need another function like that :
"if a custom menu with a name like 'menuonglet'.$number exist delete this menu, except if $number==$blog_id"
This question has been answered.
jevusi | 04/21/11 at 6:37am
Edit
(3) Possible Answers Submitted...
See a chronological view of answers?
Warning: Please do not give out any FTP or ssh credentials to anyone, unless you trust them completely. Giving out login details is dangerous.
-

Last edited:
04/21/11
6:49amPeter Michael says:
if ( is_nav_menu( 'menuonglet'.$blog_id ) && $number != $blog_id )
{
wp_delete_nav_menu( 'menuonglet'.$blog_id )
}
- 04/21/11 7:02am
Peter Michael says:Thanks Adam ;-)
- 04/21/11 7:37am
jevusi says:i had try, that didn't work.
- 04/21/11 7:39am
Peter Michael says:How did you try? Can we see your full code?
- 04/21/11 8:33am
jevusi says:add_action( 'init', 'register_navmenus' );
function register_navmenus() {
global $blog_id;
global $cat1_link;
if ( is_nav_menu( 'menuonglet'.$blog_id ) && $number != $blog_id )
{
wp_delete_nav_menu( 'menuonglet'.$blog_id )
}
if ( !is_nav_menu( 'menuonglet'.$blog_id )) {
$menu_id = wp_create_nav_menu( 'menuonglet'.$blog_id );
$menu1 = array(
'menu-item-object-id' => '',
'menu-item-object' => '',
'menu-item-parent-id' => 0,
'menu-item-position' => 1,
'menu-item-type' => 'custom',
'menu-item-title' => 'Appareils auditifs' ,
'menu-item-url' => $cat1_link,
'menu-item-description' => '',
'menu-item-attr-title' => '',
'menu-item-status' => 'publish'
);
wp_update_nav_menu_item( $menu_id, 0, $menu1 );
}
} - 04/21/11 8:34am
jevusi says:sorry, mistake
i use this code
add_action( 'init', 'register_navmenus' );
function register_navmenus() {
global $blog_id;
global $cat1_link;
if ( is_nav_menu( 'menuonglet'.$number ) && $number != $blog_id )
{
wp_delete_nav_menu( 'menuonglet'.$number )
}
if ( !is_nav_menu( 'menuonglet'.$blog_id )) {
$menu_id = wp_create_nav_menu( 'menuonglet'.$blog_id );
$menu1 = array(
'menu-item-object-id' => '',
'menu-item-object' => '',
'menu-item-parent-id' => 0,
'menu-item-position' => 1,
'menu-item-type' => 'custom',
'menu-item-title' => 'Appareils auditifs' ,
'menu-item-url' => $cat1_link,
'menu-item-description' => '',
'menu-item-attr-title' => '',
'menu-item-status' => 'publish'
);
wp_update_nav_menu_item( $menu_id, 0, $menu1 );
}
} - 04/21/11 8:37am
Peter Michael says:$number is not assigned a value, so $number is NULL
You should add maybe
global $blog_id, $cat1_link;
$number = 1;
...
- 04/21/11 8:39am
Peter Michael says:Change $number value accordingly:
add_action( 'init', 'register_navmenus' );
function register_navmenus()
{
global $blog_id, $cat1_link;
$number = 1;
if ( is_nav_menu( 'menuonglet'.$number ) && $number != $blog_id )
{
wp_delete_nav_menu( 'menuonglet'.$number )
}
if ( !is_nav_menu( 'menuonglet'.$blog_id ))
{
$menu_id = wp_create_nav_menu( 'menuonglet'.$blog_id );
$menu1 = array
(
'menu-item-object-id' => '',
'menu-item-object' => '',
'menu-item-parent-id' => 0,
'menu-item-position' => 1,
'menu-item-type' => 'custom',
'menu-item-title' => 'Appareils auditifs' ,
'menu-item-url' => $cat1_link,
'menu-item-description' => '',
'menu-item-attr-title' => '',
'menu-item-status' => 'publish'
);
wp_update_nav_menu_item( $menu_id, 0, $menu1 );
}
}
- 04/21/11 8:39am
jevusi says:if i use $number = 1
if ( is_nav_menu( 'menuonglet'.$number ) && $number != $blog_id )
means
if ( is_nav_menu( 'menuonglet1' ) && 1 != $blog_id )
No ?
but if the menu is menuonglet44 ? - 04/21/11 8:40am
Peter Michael says:Fixed, missing ;
add_action( 'init', 'register_navmenus' );
function register_navmenus()
{
global $blog_id, $cat1_link;
$number = 1;
if ( is_nav_menu( 'menuonglet'.$number ) && $number != $blog_id )
{
wp_delete_nav_menu( 'menuonglet'.$number );
}
if ( !is_nav_menu( 'menuonglet'.$blog_id ))
{
$menu_id = wp_create_nav_menu( 'menuonglet'.$blog_id );
$menu1 = array
(
'menu-item-object-id' => '',
'menu-item-object' => '',
'menu-item-parent-id' => 0,
'menu-item-position' => 1,
'menu-item-type' => 'custom',
'menu-item-title' => 'Appareils auditifs' ,
'menu-item-url' => $cat1_link,
'menu-item-description' => '',
'menu-item-attr-title' => '',
'menu-item-status' => 'publish'
);
wp_update_nav_menu_item( $menu_id, 0, $menu1 );
}
}
- 04/21/11 8:57am
jevusi says:that doesn't work.
It's normal, no ? If number = 1 and the menu is menuonglet44... non ? - 04/21/11 9:01am
Peter Michael says:Set $number to 44 and it will delete the menu except if the blog_id is 44 too.
So, maybe there was a misunderstanding, let me try to rephrase your question:
"delete all custom menus with a name pattern like 'menuonglet'.$anynumber except if $anynumber == $blog_id"
Is this correct? - 04/21/11 9:17am
jevusi says:yes : if the menu is menuonglet125 i want remove it, except if 125 is the blog_id
In attchment an image with your function - 04/21/11 9:23am
Peter Michael says:This works:
add_action( 'init', 'register_navmenus' );
function register_navmenus()
{
global $blog_id, $cat1_link;
$allmenus = wp_get_nav_menus();
if($allmenus)
{
foreach($allmenus as $menu)
{
$needle = 'menuonglet';
$needle_length = strlen($needle);
if(strstr($menu->name, $needle) !== false)
{
$menu_id = substr($menu->name, $needle_length);
$menu_id = (int)$menu_id;
if($menu_id != $blog_id)
{
wp_delete_nav_menu($menu->name);
}
}
}
}
if ( !is_nav_menu( 'menuonglet'.$blog_id ))
{
$menu_id = wp_create_nav_menu( 'menuonglet'.$blog_id );
$menu1 = array
(
'menu-item-object-id' => '',
'menu-item-object' => '',
'menu-item-parent-id' => 0,
'menu-item-position' => 1,
'menu-item-type' => 'custom',
'menu-item-title' => 'Appareils auditifs',
'menu-item-url' => $cat1_link,
'menu-item-description' => '',
'menu-item-attr-title' => '',
'menu-item-status' => 'publish'
);
wp_update_nav_menu_item( $menu_id, 0, $menu1 );
}
}
Raise price money a little ;-) - 04/21/11 9:23am
jevusi says:i ty this:
i use this function
$number = 999;
if ( is_nav_menu( 'menuonglet'.$number ) && $number != $blog_id )
{
wp_delete_nav_menu( 'menuonglet'.$number );
}
i create a menu menuonglet999
i refresh the page, and the menu menuonglet999 is removed (nice!)
So
could i not use a code like this ? :
if ((preg_match ('^[0-9]+$' , $number))
AND ($number != $blog_id)
AND is_nav_menu( 'menuonglet'.$number )) {wp_delete_nav_menu('menuonglet'.$number);} - 04/21/11 9:45am
Peter Michael says:Did you see my answer from 9:23am ?
- 04/21/11 10:13am
jevusi says:no i didn't ^^ :-)
but i try this immediatly - 04/21/11 10:20am
jevusi says:it seems that works !! :-)
- 04/23/11 1:00am
Peter Michael says:Does it work? If yes please close the question.
- 04/21/11 7:02am
-

Last edited:
04/21/11
6:56amAdamGold says:Fix for Peter's code:
if ( is_nav_menu( 'menuonglet' . $number ) && $number != $blog_id )
{
wp_delete_nav_menu( 'menuonglet' . $number );
}- 04/21/11 7:37am
jevusi says:i had try, that didn't work.
- 04/21/11 7:40am
AdamGold says:It should be:
if( is_nav_menu( 'menuonglet' . $number ) && $number != $blog_id ) {
do_action('wp_delete_nav_menu', 'menuonglet' . $number );
}
make sure you defined $number. - 04/21/11 8:31am
jevusi says:that doesn't work :-/
make sure you defined $number.
what does it mean ? - 04/21/11 8:38am
jevusi says:must i declare the variable $number before ?
But how ?
$number can be all numbers except $blog_id... - 04/21/11 9:23am
jevusi says:could you look at my response to Peter please ?
Thanks - 04/21/11 11:33am
AdamGold says:Like this:
$number = 3;
if( is_nav_menu( 'menuonglet' . $number ) && $number != $blog_id ) {
do_action('wp_delete_nav_menu', 'menuonglet' . $number );
}
change 3 to your desired number.
- 04/21/11 7:37am
-

Last edited:
04/22/11
5:57amChristianto says:Why you want to do it??
If you want to register different menu to each site, the your original function is enough, since each time php parse your original function, it will register nav with different id, the ID refer to global $blog_id or $current_blog->blog_id and it change depending which content/site is being show, there will be no duplication isn't it??
But if you want to register specific menu with different param for specific site/blog. Then the ID of that site/blog should be declared in variable $MainBlogMenu for example and check the variable against currently show site/blog ID...
edit: sorry, you want to update registered menu ^_^ not register it.. ignore my comment..Previous versions of this answer: 04/22/11 at 5:57am
This question has expired.
jevusi voted on this question.
Current status of this question: Completed
Warning: Please do not give out any FTP or ssh credentials to anyone, unless you trust them completely. Giving out login details is dangerous.
If the asker does not get an answer then they have 10 days to request a refund.
