web-dev-qa-db-fra.com

Problème lors de l’enregistrement des menus - Que faire lorsque d’autres solutions ne fonctionnent pas?

Je ne parviens pas à enregistrer les menus de navigation - et je ne sais pas quoi essayer d'autre lorsque les solutions publiées ne fonctionnent pas?

J'ai essayé la solution dans cet article: register_nav_menus () ne va pas enregistrer les menus

Et j'ai également suivi les instructions dans: http://codex.wordpress.org/Function_Reference/register_nav_menus et http://wptuts.org/how-to-add-menu-twordword-theme/

Je n'arrive pas à faire fonctionner cela - je reçois toujours ce message:

"Le thème actuel ne prend pas en charge les menus de manière native, mais vous pouvez utiliser le widget" Menu personnalisé "pour ajouter les menus que vous créez ici à la barre latérale du thème."

Actuellement dans mon fichier functions.php (en gardant les choses simples - mais ne fonctionne pas):

register_nav_menu('primary_navigation', 'Primary Navigation');
add_action('after_setup_theme', 'hchw_setup');

Cela ne fonctionne pas pour moi non plus (hchw est mon nom de thème):

register_nav_menus(array(
    'primary_navigation' => __('Primary Navigation', 'hchw'),
    'sub_navigation' => __('Sub Navigation', 'hchw'),
));
add_action('after_setup_theme', 'hchw_setup');

Mon modèle de navigation (header-top-navbar.php):

if (has_nav_menu('primary_navigation')) {
    wp_nav_menu(array('theme_location' => 'primary_navigation', 'menu_class' => 'nav'));
}

Le comprennent: <?php get_template_part('templates/header-top-navbar'); ?>

L'ensemble du fichier functions.php:

// Use 'static' instead of 'wp-content'
function rename_wp_content($path) {
  return str_replace('wp-content', 'static', $path);
}
add_filter('template_directory_uri', 'rename_wp_content');

// Is this an auth page?
function is_auth_page() {
  return in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'));
}

// Change login logo
function login_css() {
  wp_enqueue_style('login_css', get_template_directory_uri() . '/css/login.css');
}
add_action('login_head', 'login_css');

if (!defined('__DIR__')) { define('__DIR__', dirname(__FILE__)); }

require_once locate_template('/lib/utils.php');           // Utility functions
require_once locate_template('/lib/config.php');          // Configuration and constants
require_once locate_template('/lib/activation.php');      // Theme activation
require_once locate_template('/lib/cleanup.php');         // Cleanup
require_once locate_template('/lib/htaccess.php');        // Rewrites for assets, H5BP .htaccess
require_once locate_template('/lib/widgets.php');         // Sidebars and widgets
require_once locate_template('/lib/scripts.php');         // Scripts and stylesheets
require_once locate_template('/lib/post-types.php');      // Custom post types
require_once locate_template('/lib/metaboxes.php');       // Custom metaboxes
require_once locate_template('/lib/custom.php');          // Custom functions
//require_once locate_template('/lib/wp-admin-menu-classes.php'); // Load the Admin Menu Classes


/** 
* Load the Options Panel
**/
if ( !function_exists( 'optionsframework_init' ) ) {
    define( 'OPTIONS_FRAMEWORK_DIRECTORY', get_bloginfo('template_directory') . '/admin/' );
    require_once dirname( __FILE__ ) . '/admin/options-framework.php';
}

function hchw_setup() {

// Make theme available for translation
load_theme_textdomain('hchw', get_template_directory() . '/lang');

// Register wp_nav_menu() menus (http://codex.wordpress.org/Function_Reference/register_nav_menus)
//register_nav_menus(array(
//    'primary_navigation' => __('Primary Navigation', 'hchw'),
//    'sub_navigation' => __('Sub Navigation', 'hchw'),
//));


register_nav_menu('primary_navigation', 'Primary Navigation');
add_action('after_setup_theme', 'hchw_setup');


// Add post formats (http://codex.wordpress.org/Post_Formats)
// add_theme_support('post-formats', array('aside', 'gallery', 'link', 'image', 'quote', 'status', 'video', 'audio', 'chat'));

// Tell the TinyMCE editor to use a custom stylesheet
add_editor_style('assets/css/editor-style.css');

/**
 * Custom images size
**/  
// Add post thumbnails (http://codex.wordpress.org/Post_Thumbnails)
// This is then pulled through to your theme useing the_post_thumbnail('custombig'); 
add_theme_support('post-thumbnails');
  set_post_thumbnail_size(150, 150, false);
  add_image_size('category-thumb', 300, 9999); // 300px wide (and unlimited height)
  add_image_size('postfull', 504, 334); // Blog Post Full-Size
  add_image_size('customfeatins', 248, 165, true); //hp featured inset
  add_image_size('customfeatblg', 290, 192, true); //int featured inset
  add_image_size('customfeed', 136, 90, true); //feed thumbnails
  add_image_size('customparade', 176, 98, true); //logo parade

}

// Remove the link and 'Powered by WordPress' from the login page
function login_header_unlink() {
  return null;
}
add_filter('login_headerurl', 'login_header_unlink');
add_filter('login_headertitle', 'login_header_unlink');


/**
 * Add class to body tag if has sidebar
**/
function wpfme_has_sidebar($classes) {
    if (is_active_sidebar('sidebar')) {
        // add 'class-name' to the $classes array
        $classes[] = 'has_sidebar';
    }
    // return the $classes array
    return $classes;
}
add_filter('body_class','wpfme_has_sidebar');

Quelqu'un peut-il me dire ce qui me manque ou si quelque chose ne va pas dans mon code?

Merci d'avance pour toute aide ou direction!

3
ByteMyPixel

En ce qui concerne ce commentaire:

Je vois - j'ai eu des choses imbriquées de manière incorrecte dans mon functions.php file - J'ai constaté que l'appel register_nav_menus() ne devrait pas être imbriqué dans la fonction de configuration du thème (function hchw_setup())

Au contraire, à l'intérieur d'un rappel relié à after_setup_theme se trouve exactement au bon endroit pour les appels vers register_nav_menus().

Votre problème est une erreur de syntaxe. Vous avez placé votre appel add_action()insidele rappel qu'il tente de raccrocher et, en tant que tel, le rappel ne sera jamais ajouté au raccroché:

function hchw_setup() {

// Make theme available for translation
load_theme_textdomain('hchw', get_template_directory() . '/lang');

// Register wp_nav_menu() menus (http://codex.wordpress.org/Function_Reference/register_nav_menus)
//register_nav_menus(array(
//    'primary_navigation' => __('Primary Navigation', 'hchw'),
//    'sub_navigation' => __('Sub Navigation', 'hchw'),
//));


register_nav_menu('primary_navigation', 'Primary Navigation');
add_action('after_setup_theme', 'hchw_setup');


// Add post formats (http://codex.wordpress.org/Post_Formats)
// add_theme_support('post-formats', array('aside', 'gallery', 'link', 'image', 'quote', 'status', 'video', 'audio', 'chat'));

// Tell the TinyMCE editor to use a custom stylesheet
add_editor_style('assets/css/editor-style.css');

/**
 * Custom images size
**/  
// Add post thumbnails (http://codex.wordpress.org/Post_Thumbnails)
// This is then pulled through to your theme useing the_post_thumbnail('custombig'); 
add_theme_support('post-thumbnails');
  set_post_thumbnail_size(150, 150, false);
  add_image_size('category-thumb', 300, 9999); // 300px wide (and unlimited height)
  add_image_size('postfull', 504, 334); // Blog Post Full-Size
  add_image_size('customfeatins', 248, 165, true); //hp featured inset
  add_image_size('customfeatblg', 290, 192, true); //int featured inset
  add_image_size('customfeed', 136, 90, true); //feed thumbnails
  add_image_size('customparade', 176, 98, true); //logo parade

}

Notez comme ceci estinsidethe hchw_setup()?

add_action('after_setup_theme', 'hchw_setup');

Vous devez le déplaceroutsidela fonction:

function hchw_setup() {

// Make theme available for translation
load_theme_textdomain('hchw', get_template_directory() . '/lang');

// Register wp_nav_menu() menus (http://codex.wordpress.org/Function_Reference/register_nav_menus)
//register_nav_menus(array(
//    'primary_navigation' => __('Primary Navigation', 'hchw'),
//    'sub_navigation' => __('Sub Navigation', 'hchw'),
//));


register_nav_menu('primary_navigation', 'Primary Navigation');


// Add post formats (http://codex.wordpress.org/Post_Formats)
// add_theme_support('post-formats', array('aside', 'gallery', 'link', 'image', 'quote', 'status', 'video', 'audio', 'chat'));

// Tell the TinyMCE editor to use a custom stylesheet
add_editor_style('assets/css/editor-style.css');

/**
 * Custom images size
**/  
// Add post thumbnails (http://codex.wordpress.org/Post_Thumbnails)
// This is then pulled through to your theme useing the_post_thumbnail('custombig'); 
add_theme_support('post-thumbnails');
  set_post_thumbnail_size(150, 150, false);
  add_image_size('category-thumb', 300, 9999); // 300px wide (and unlimited height)
  add_image_size('postfull', 504, 334); // Blog Post Full-Size
  add_image_size('customfeatins', 248, 165, true); //hp featured inset
  add_image_size('customfeatblg', 290, 192, true); //int featured inset
  add_image_size('customfeed', 136, 90, true); //feed thumbnails
  add_image_size('customparade', 176, 98, true); //logo parade

}
// Move me outside the function
add_action('after_setup_theme', 'hchw_setup');
2
Chip Bennett