- Statut : non résolu
- Ce sujet contient 5 réponses, 2 participants et a été mis à jour pour la dernière fois par Interned, le il y a 12 années et 4 mois.
-
AuteurMessages
-
25 mai 2012 à 12 h 16 min #510052
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 3.3.2 (site de dev.)
– Version de WordPress : 3.1.4 (site de prod.)
– Version de PHP/MySQL : 5.2.4 (site de dev.)
– Version de PHP/MySQL : 5.2.0 (site de prod.)Dans le cadre de l’importation d’une BDD sur un serveur mutualisé possédant les caractéristiques PHP/MySQL ci-dessus, des erreurs d’importations sont causées sur plusieurs tables, notamment celle des auteurs et des custom post type (d’après la liste donnée par WP).
Evidemment, le changement de version n’aide pas (j’en suis bien conscient ! 😕) mais est-ce que cette erreur d’importation est due à ça ?
De plus, à chaque fois qu’une extension est activée, ce message s’affiche : Warning: Cannot modify header information – headers already sent by (…) /wp-includes/pluggable.php on line 897. Normalement, c’est lié à l’encodage. Or, ça ne semble pas être le cas, le fichier wp-config.php est bien en UTF8-sans BOM. Et il n’y a pas d’espaces en trop.
Je remarque enfin que sur le serveur de prod les autorisations sont différentes de celles du serveur de dev : par exemple, le dossier wp-includes a une valeur 755 sur le site de dev mais de 770 sur le site de prod. Est-ce que ça pourrait être la cause de ce erreur dans le transfert ?
Le service informatique me pose la question suivante : « Tout nos autres sites fonctionnent en écriture groupe, est ce que wordpress fait une vérification des droits pour chaque fichier ? » Mais comment le savoir ? 😐
26 mai 2012 à 7 h 39 min #834914Il faut séparer les problèmes et les prendre un par un. L’import SQL n’a rien à voir avec les droits ou le headers already sent by.
Concernant MySQL il faudrait savoir si tu importes les données seulement ou la structure et les données et quels sont les messages d’erreurs données par SQL. Dans tous les cas il est toujours mieux de travailler avec les mêmes versions, c’est plus simple en cas de problème.
28 mai 2012 à 12 h 19 min #834915Je sais bien que travailler avec les mêmes versions est essentiel. Hélas !
Le cafouillage n’a pas trop d’intérêt à être expliqué ici, et ce qui compte c’est de pouvoir régler le problème (si on peut le résoudre ! :o)Tu me donnes déjà quelques pistes, fge, et c’est heureux.
Je regarde de plus près et reviens pour donner plus d’info.
2 juin 2012 à 17 h 25 min #834916Après vérificiation dans phpMyAdmin que j’ai installé sur le serveur de prod, je retrouve bien toute la base de données avec les mêmes tables. Donc où est-ce que ça coince ?
Car aucun custom post types ne s’affiche (j’utilise le plugin Custom Post Type UI qui fonctionne avec les versions WP 3.0+), ni sur le site, ni dans le panneau d’admin. Par ailleurs, il semblerait que le chemin des fichiers JS n’arrive pas à être lu :
function bootstrapwp_js_loader() {
wp_enqueue_script(‘prettify’, get_template_directory_uri().’/js/prettify.js’, array(‘jquery’),’1.0′, true );
Même le bandeau du header (qui est une image) n’arrive pas être affiché.Je me doute que c’est un problème de compatibilité de version de PHP mais comment faudrait-il prendre le problème ? Dans mon fichier wp-config, le debug est sur true.
Voici, par exemple, les messages d’erreurs de PHP (mais il n’y sont pas tous !)
Certains CPT sont tagués par des mots-clés (donc des Custom Post Type) pour une recherche plus simple. Normalement, ce devrait être fait par la fonction wp_dropdown_categories. Or, un bug de WordPress depuis deux ans a été signalé sur cette fonction qui date donc de la 3.0. Du coup, un développeur a sorti une alternative que j’ai utilisée pour les besoins de mon site.Mais la version 3.1.4 n’en tient pas compte et j’ai ces messages sur les pages web où est appelée la fonction :
Notice: Trying to get property of non-object in …/wp-includes/class-wp-walker.php on line 127
Notice: Trying to get property of non-object in …/wp-content/themes/la-mars/functions.php on line 736, 738, 741, 758Les lignes mentionnées sont en gras :
/* Forked version of Walker_CategoryDropdown */
class amr_walker_taxonomy_dropdown extends Walker {
var $tree_type = ‘category’;
var $db_fields = array (‘parent’ => ‘parent’, ‘id’ => ‘term_id’);
function start_el( &$output, $category, $depth, $args ) {
$pad = str_repeat( ‘ ‘, $depth * 3 );
[b]$cat_name = apply_filters( ‘list_cats’, $category->name, $category );[/b]
if( $category->taxonomy === ‘category’ )
$value = esc_attr( $category->term_id );
else
[b]$value = esc_attr( $category->slug );[/b]
$output .= « ttaxonomy === ‘category’ )[/b] {
if ( $category->term_id == $args[‘selected’] )
$output .= ‘ selected= »selected »‘;
}
else {
if ( $category->slug == $args[‘selected’] )
$output .= ‘ selected= »selected »‘;
}
}
$output .= ‘>’;
$output .= $pad . $cat_name;
if ( $args[‘show_count’] )
[b]$output .= ‘ (‘. $category->count .’)’;[/b]
if ( $args[‘show_last_update’] ) {
$format = ‘Y-m-d’;
$output .= ‘ ‘ . gmdate( $format, $category->last_update_timestamp );
}
$output .= « n »;
}
}Et le walker :
//display this element
if ( is_array( $args[0] ) )
[b]$args[0][‘has_children’] = ! empty( $children_elements[$element->$id_field] );[/b]
$cb_args = array_merge( array(&$output, $element, $depth), $args);
call_user_func_array(array(&$this, ‘start_el’), $cb_args);
[b]$id = $element->$id_field;[/b]Si vous avez quelques pistes, suis preneur !
2 juin 2012 à 17 h 27 min #834917Après vérificiation dans phpMyAdmin que j’ai installé sur le serveur de prod, je retrouve bien toute la base de données avec les mêmes tables. Donc où est-ce que ça coince ?
Car aucun custom post types ne s’affiche (j’utilise le plugin Custom Post Type UI qui fonctionne avec les versions WP 3.0+), ni sur le site, ni dans le panneau d’admin. Par ailleurs, il semblerait que le chemin des fichiers JS n’arrive pas à être lu :
function bootstrapwp_js_loader() {
wp_enqueue_script(‘prettify’, get_template_directory_uri().’/js/prettify.js’, array(‘jquery’),’1.0′, true );
Même le bandeau du header (qui est une image) n’arrive pas être affiché.Je me doute que c’est un problème de compatibilité de version de PHP mais comment faudrait-il prendre le problème ? Dans mon fichier wp-config, le debug est sur true.
Voici, par exemple, les messages d’erreurs de PHP (mais il n’y sont pas tous !)
Certains CPT sont tagués par des mots-clés (donc des Custom Post Type) pour une recherche plus simple. Normalement, ce devrait être fait par la fonction wp_dropdown_categories. Or, un bug de WordPress depuis deux ans a été signalé sur cette fonction qui date donc de la 3.0. Du coup, un développeur a sorti une alternative que j’ai utilisée pour les besoins de mon site.Mais la version 3.1.4 n’en tient pas compte et j’ai ces messages sur les pages web où est appelée la fonction :
Notice: Trying to get property of non-object in …/wp-includes/class-wp-walker.php on line 127
Notice: Trying to get property of non-object in …/wp-content/themes/la-mars/functions.php on line 736, 738, 741, 758Les lignes mentionnées sont avec *** :
/* Forked version of Walker_CategoryDropdown */
class amr_walker_taxonomy_dropdown extends Walker {
var $tree_type = ‘category’;
var $db_fields = array (‘parent’ => ‘parent’, ‘id’ => ‘term_id’);
function start_el( &$output, $category, $depth, $args ) {
$pad = str_repeat( ‘ ‘, $depth * 3 );
***$cat_name = apply_filters( ‘list_cats’, $category->name, $category );***
if( $category->taxonomy === ‘category’ )
$value = esc_attr( $category->term_id );
else
***$value = esc_attr( $category->slug );***
$output .= « ttaxonomy === ‘category’ )*** {
if ( $category->term_id == $args[‘selected’] )
$output .= ‘ selected= »selected »‘;
}
else {
if ( $category->slug == $args[‘selected’] )
$output .= ‘ selected= »selected »‘;
}
}
$output .= ‘>’;
$output .= $pad . $cat_name;
if ( $args[‘show_count’] )
***$output .= ‘ (‘. $category->count .’)’;***
if ( $args[‘show_last_update’] ) {
$format = ‘Y-m-d’;
$output .= ‘ ‘ . gmdate( $format, $category->last_update_timestamp );
}
$output .= « n »;
}
}Et le walker :
//display this element
if ( is_array( $args[0] ) )
***$args[0][‘has_children’] = ! empty( $children_elements[$element->$id_field] );***
$cb_args = array_merge( array(&$output, $element, $depth), $args);
call_user_func_array(array(&$this, ‘start_el’), $cb_args);
***$id = $element->$id_field;***Si vous avez quelques pistes, suis preneur !
P.S : on ne peut plus rééditer ???
3 juin 2012 à 22 h 06 min #834918J’ai réglé en partie les problèmes mais il reste que :
– les custom post type ne sont pas rappatriés (y en plus de 800…)
– les fichiers JS ne veulent pas se charger via la fonction suivante dans functions.php :
function bootstrapwp_js_loader() {
wp_enqueue_script(‘transition’, get_template_directory_uri().’/js/bootstrap-transition.js’, array(‘jquery’),’1.0′, true ); -
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.