J'utilise un plugin WordPress. Tout fonctionne bien. Exect quand ouvrir une page 404, j'ai eu cette notification:
Avis: essayer d'obtenir la propriété de non-objet dans D:\MYWEB\InstantWP_4.3.1\iwpserver\htdocs\wordpress\wp-content\plugins\sama-author-review\user-rate.php à la ligne 49
La ligne 49 ressemble à ceci:
'nonce' => wp_create_nonce('ajax-user-rate-nonce-'. $post->ID)
Voici le code:
/**
* enqueue scripts used in frontend
*
*/
function sama_enqueue_scripts() {
global $post, $sama_author_review;
$ajax_vars = array(
'url' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce('ajax-user-rate-nonce-'. $post->ID)
);
// see author-review.php
wp_localize_script( 'review', 'ajax_user_rate', $ajax_vars );
}
Existe-t-il une solution rapide pour résoudre cette erreur?
Le $post
global n'est pas défini sur les pages 404
, ce qui conduit à l'erreur que vous obtenez.
Vous pouvez soit vérifier si
$post
est défini ou
caution si la page en cours est une page 404 ou
faire tout ce qui précède
/**
* enqueue scripts used in frontend
*
*/
function sama_enqueue_scripts() {
global $post, $sama_author_review;
if ( !isset( $post ) )
return;
$ajax_vars = array(
'url' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce('ajax-user-rate-nonce-'. $post->ID)
);
// see author-review.php
wp_localize_script( 'review', 'ajax_user_rate', $ajax_vars );
}
ou
/**
* enqueue scripts used in frontend
*
*/
function sama_enqueue_scripts() {
global $post, $sama_author_review;
if ( is_404() )
return;
$ajax_vars = array(
'url' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce('ajax-user-rate-nonce-'. $post->ID)
);
// see author-review.php
wp_localize_script( 'review', 'ajax_user_rate', $ajax_vars );
}