Hi Guys,
I’m new to using this plugin. Can someone help me on this?
What is the proper code for this
this is the after import code from One Click Demo Import
$main_menu = get_term_by( 'name', 'Main Menu', 'nav_menu' );
set_theme_mod( 'primary-menu', array( 'main-menu' => $main_menu->term_id, ) );
and this is my register_nav_menus() code
register_nav_menus( array( 'primary-menu' => esc_html__( 'Primary Menu', 'textdomain' ) ) );
The menu does not automatically assign the menu locations after the import. What I’m doing wrong?
Thank you!
primary-menu is menu location
main-menu is the name of the menu
What have I done wrong? Can anyone help?
Thank you!
I don’t use One Click Demo importer, but I know that there was a bug with default WordPress import plugin - the same like your problem, menu was not imported if you are using PHP 7.
I think this is fixed with last update in WordPress Importer - maybe is the same/similar problem with One Click Demo importer.
Hope someone will provide you more info.
Maybe my code example will be useful:
// Register Navigation
register_nav_menu('main_navigation', 'Main Navigation');
register_nav_menu('bottom_navigation', 'Bottom Navigation');
// One Click Demo Import plugin
if(class_exists('OCDI_Plugin')) {
//Setup basic demo import
function taunita_import_files() {
return array(
array(
'import_file_name' => 'taunita',
'categories' => array( 'Category 1', 'Category 2' ),
'local_import_file' => get_parent_theme_file_path( 'framework/ocdi/taunita.xml' ),
'local_import_widget_file' => get_parent_theme_file_path( 'framework/ocdi/taunita.wie' ),
'local_import_customizer_file' => get_parent_theme_file_path( 'framework/ocdi/taunita.dat' ),
'local_import_redux' => array(
array(
'file_path' => get_parent_theme_file_path( 'framework/ocdi/taunita.json' ),
'option_name' => 'smof_data',
),
),
'import_preview_image_url' => get_parent_theme_file_uri( '/screenshot.png' ),
'preview_url' => 'http://themeperfect.me/taunita/',
),
);
}
add_filter( 'pt-ocdi/import_files', 'taunita_import_files' );
//Setup front page and menus
function taunita_after_import_setup() {
// Assign menus to their locations
$main_menu = get_term_by( 'name', 'Main Menu', 'nav_menu' );
$bottom_menu = get_term_by( 'name', 'Bottom Menu', 'nav_menu' );
set_theme_mod( 'nav_menu_locations', array(
'main_navigation' => $main_menu->term_id,
'bottom_navigation' => $bottom_menu->term_id,
)
);
// Assign front page and blog page.
$front_page_id = get_page_by_title( 'Home' );
$blog_page_id = get_page_by_title( 'Blog' );
update_option( 'show_on_front', 'page' );
update_option( 'page_on_front', $front_page_id->ID );
update_option( 'page_for_posts', $blog_page_id->ID );
update_option( 'posts_per_page', '4' );
}
add_action( 'pt-ocdi/after_import', 'taunita_after_import_setup' );
//Remove Branding
add_filter( 'pt-ocdi/disable_pt_branding', '__return_true' );
//Save customize options
add_action( 'pt-ocdi/enable_wp_customize_save_hooks', '__return_true' );
}
1 Like
Thanks, man. I tested this and unfortunately, it’s not working. I’m using register_nav_menus() not register_nav_menu(). Below is my updated code.
register_nav_menus( array( 'primary-menu' => esc_html__( 'Primary Menu', 'textdomain' ) ) );
$main_menu = get_term_by( 'name', 'Main Menu', 'nav_menu' );
set_theme_mod( 'nav_menu_locations', array(
'primary-menu' => $main_menu->term_id,
)
);
Not sure if this is a bug or code issue above?
Does the “Main Menu” label is the menu name? If yes, then I should change it to “main-menu”
It works fine now. I just change the “Main Menu” label to “main-menu” which is the name of my menu.
register_nav_menus( array( 'primary-menu' => esc_html__( 'Primary Menu', 'textdomain' ) ) );
$main_menu = get_term_by( 'name', 'main-menu', 'nav_menu' );
set_theme_mod( 'nav_menu_locations', array(
'primary-menu' => $main_menu->term_id,
)
);
Thanks for the help @themeperfect