2016-12-15 1 views
0

J'ai eu des problèmes avec ce plugin un autre développeur fait pour injecter du code dans le fichier function.php dans WordPress sans manipuler celui dans le thème. J'ai ajouté la ligne if (!is_admin()) { qui a résolu quelques problèmes avec les contrôles du tableau de bord mais maintenant quand j'essaie de me connecter à wordpress.com pour activer Jetpack, il m'amène à la première page de mon site avec ce message d'erreur dans le corps de mon site:add_action ('init') dans WordPress functions.php extension semble rompre l'activation de Jetpack?

Non trouvé, erreur 404 La page que vous recherchez n'existe plus. Peut-être que vous pouvez revenir à la page d'accueil du site et voir si vous pouvez trouver ce que vous cherchez. Ou, vous pouvez essayer de le trouver en utilisant le formulaire de recherche ci-dessous.

Si je désactive ce plugin, l'activation de Jetpack fonctionnera, mais je veux savoir quel est le problème. Assez sûr qu'il a à faire avec la partie add_action('init', 'check_user_logged_in'); du code mais je ne sais pas quoi remplacer avec. J'ai essayé de remplacer init avec wp_head mais ça casse le style dans un autre plugin sur ma page. Des idées? Voici le code ci-dessous.

<?php 

/* Your code goes below here. */ 

ob_start(); 

function check_user_logged_in(){ 
    if (!is_admin()) { 
    if (is_user_logged_in()) { ?> 
     <style type="text/css" media="screen"> 
     #theme-my-login-2 .widget-wrap .widget-title { display: block !important; } 
     </style> 
    <?php 
    } else { ?> 
     <style type="text/css" media="screen"> 
     table.sidebar_result{margin-top:-10px;} 
     </style> 
<?php 
    } 
    } 
} 

add_action('init', 'check_user_logged_in'); 

/* Add Read More Link to Excerpts */ 
add_filter('excerpt_more', 'get_read_more_link'); 
add_filter('the_content_more_link', 'get_read_more_link'); 

function get_read_more_link() { 
    return '...&nbsp;<a href="' . get_permalink() . '">[Read&nbsp;More]</a>'; 
} 

/* Your code goes above here. */ 
?> 

Répondre

0

La fonction check_user_logged_in() est écrit avec beaucoup de stupidité à l'esprit car il definitly détruire un site Web WordPress comme les extraits CSS sont imprimés à l'écran dans la phase de WordPress init (l'une des premières phases de chargement).

Cela va détruire toutes les redirections du crochet template_redirect et également détruire la vue. Je ne ferais probablement pas confiance aux auteurs d'un tel plugin.

Cependant, votre approche de l'ajout de cette action avec wp_head était tout à fait raison (vous pouvez également utiliser l'action wp_footer). Pourtant, c'est une mauvaise approche puisque les styles doivent être mis en file d'attente avec wp_register_style() et wp_enqueue_style().

Si le code CSS détruit votre thème, vous supprimez simplement la ligne add_action ou vous modifiez le CSS pour l'adapter à vos besoins.