code ne marche plus après mise à jour

  • WordPress :5.2
  • Statut : non résolu
3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #2280739
    sigma2008
    Participant
    Initié WordPress
    30 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 7.0.8/mysqlnd 5.0.12-dev
    • Thème utilisé : Twenty Nineteen.
    • Extensions en place : aucune
    • Nom de l’hébergeur : localhost (mamp)
    • Adresse du site : localhost/plugin

    Problème(s) rencontré(s) :

    J’utilise ce code sur mes anciennes versions wordpress, mais aujourd’hui en l’essayant sur WordPress 5 il n’affiche aucun résultat, auriez vous une idée ?

    add_filter('wp_terms_checklist_args', 'display_custom_checklist');
    function display_custom_checklist( $args ){
        if ( $args['taxonomy'] == 'category' )
        $args['walker'] = new my_custom_walk;
        return $args;
    }
    class my_custom_walk extends Walker {
        var $tree_type = 'category';
        var $db_fields = array ('parent' => 'parent', 'id' => 'term_id'); //TODO: decouple this
    
        function start_lvl( &$output, $depth = 0, $args = array() ) {
            $indent = str_repeat("\t", $depth);
            $output .= "$indent<ul class='children'>\n";
        }
    
        function end_lvl( &$output, $depth = 0, $args = array() ) {
            $indent = str_repeat("\t", $depth);
            $output .= "$indent</ul>\n";
        }
    
        function start_el( &$output, $category, $depth, $args, $id = 0 ) {
            extract($args);
            if ( empty($taxonomy) )
                $taxonomy = 'category';
    
            if ( $taxonomy == 'category' )
                $name = 'post_category';
            else
                $name = 'tax_input['.$taxonomy.']';
    
            $class = in_array( $category->term_id, $popular_cats ) ? ' class="popular-category"' : '';
            $output .= "\n<li id='{$taxonomy}-{$category->term_id}'$class>" . '<label class="selectit"><input value="' . $category->term_id . '" type="checkbox" name="'.$name.'[]" id="in-'.$taxonomy.'-' . $category->term_id . '"' . checked( in_array( $category->term_id, $selected_cats ), true, false ) . disabled( empty( $args['disabled'] ), false, false ) . ' /> ' . esc_html( apply_filters('the_category', $category->name.' - '.$category->slug )) . '</label>';
        }
    
        function end_el( &$output, $category, $depth = 0, $args = array() ) {
            $output .= "</li>\n";
        }
    }

    • Ce sujet a été modifié le il y a 1 mois et 4 semaines par sigma2008.
    #2280751
    ferman
    Participant
    Maître WordPress
    1483 contributions

    Bonjour,

    Comment avoir une idée? Le code date d’il y a presque 6 ans et des tas de choses ont évolué pendant ce temps. Il faudrait un codeur chevronné et connaissant à fond l’évolution de wordpress  pour voir ce qui ne va pas. Et vous n’avez même pas de message pour vous aiguiller? Mieux vaut rechercher soit un plugin soit un code plus récent avec les mêmes propriétés.

    • Cette réponse a été modifiée le il y a 1 mois et 4 semaines par ferman.
    #2280786
    ferman
    Participant
    Maître WordPress
    1483 contributions

    Bonjour, j’ai quand même installé le code et lu le message d’erreur. Comme c’était prévisible, il est dû à un changement de php. Voir ici pour un problème analogue et la façon de cacher le message (mais pas d’apporter une solution pérenne). Et pour des pistes pour tenter de résoudre le problème.

    Edit: le message est:

    Warning: declaration of custom_walker::start-el (&$output, $category, $depth, $args, $id=0) should be compatible with walker:start-rl(&$output,$object, $depth=0, $args = array,$current_object_id=0) …etc

    Si vous avez le même format pour custom_walker::start-el et walker::start-el, càd:

    Warning: declaration of custom_walker::start-el (&$output,$object, $depth=0, $args = array,$current_object_id=0). should be compatible with walker:start-rl(&$output,$object, $depth=0, $args = array,$current_object_id=0)…etc

    Le message disparaît. Vous pouvez mettre d’autres valeurs pour $depth et $current_object_id.

    ( &$output, $category, $depth=0, $args=array(), $id = 0 ) supprime aussi le message.

    Donc beaucoup de possibilités de modifications qui suppriment le message. Et parmi ces possibilités, certaines devraient pouvoir rétablir la fonction du code. Laquelle ou lesquelles? A étudier. Pour ma part, je ne vois pas à quoi sert le code; donc pour vérifier…

    Bon courage.

     

     

     

    • Cette réponse a été modifiée le il y a 1 mois et 4 semaines par ferman.
    • Cette réponse a été modifiée le il y a 1 mois et 4 semaines par ferman.
    • Cette réponse a été modifiée le il y a 1 mois et 4 semaines par ferman.
3 sujets de 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.