web-dev-qa-db-fra.com

Quel est le problème si j'utilise CDN dans mon thème parent WordPress (construit avec l'aide de bootstrap)?

Lorsque j'exécute "themes check", il est déconseillé d'utiliser CDN. J'utilise Bootstrap CDN de cette façon

function underscore_bootstrap_wp_scripts() {

/*   bootstrap and font awesome and animate css  */
wp_enqueue_style( 'bootstrap_cdn', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css' );
wp_enqueue_style( 'fontawesome_cdn', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css' );

/*   default underscores styles  */
wp_enqueue_style( 'underscore_bootstrap_wp-style', get_stylesheet_uri() );

/*  bootstrap js  */
wp_enqueue_script('bootstrap_js_cdn', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js',array('jquery'),'',true);

/*   default underscores js  */
//wp_enqueue_script( 'underscore_bootstrap_wp-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '20151215', true );
wp_enqueue_script( 'underscore_bootstrap_wp-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20151215', true );

/* my stylesheet and js */
wp_enqueue_style( 'custom_style_css', get_template_directory_uri(). '/css/main.css' );
wp_enqueue_script('custom_js', get_template_directory_uri(). '/js/main.js',array('jquery','bootstrap_js_cdn'),'',true);

if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
    wp_enqueue_script( 'comment-reply' );
  }
}

Le plugin "Themes Check" montre -

RECOMMANDÉ: trouvé l'URL d'un CDN dans le code: maxcdn.bootstrapcdn.com/font-awesome. Vous ne devez pas charger de ressources CSS ou Javascript à partir d'un CDN. Veuillez les regrouper avec le thème.

RECOMMANDÉ: L'URL d'un CDN a été trouvée dans le code: maxcdn.bootstrapcdn.com/bootstrap. Vous ne devez pas charger de ressources CSS ou Javascript à partir d'un CDN. Veuillez les regrouper avec le thème.

3
Walid Omonos

Votre thème ne doit dépendre d'aucune bibliothèque de liens externes. Il n'y a aucune garantie que cette bibliothèque puisse être retirée. C’est la raison pour laquelle tous vos actifs de thème doivent être associés à un thème afin d’éviter les risques futurs.

5
daniyalahmad

Comme le dit daniyalahmad, il est préférable de ne pas inclure de liens vers des ressources externes dans votre thème. Un bon exemple de cela récemment. J'utilise un thème de MyThemeShop et ils sont liés à html5shim externe. Google vient tout juste de cesser d'héberger cette application et j'ai donc commencé à installer un 404 sur mon site Web. Il était facile pour moi de simplement commenter, mais pour les utilisateurs typiques, c'est un gros problème.

Il existe désormais 1,5 million d'instances d'une URL googlecode morte sur GitHub: https://www.reddit.com/r/programming/comments/4u47ak/15m_instances_of_a_dead_html5shim_googlecode_url/

Lorsque vous empaquetez un thème, emballez-le toujours avec lui. Et si vous ne souhaitez pas l'inclure, écrivez un didacticiel à l'intention de vos utilisateurs sur la manière de le déployer ultérieurement. S'ils veulent créer un lien externe, c'est très bien, mais pas dans le thème de base. Je recommande de vérifier font awesome CDN . C'est gratuit et est livré à partir de plus de 25 POP via HTTP/2.

2
Brian Jackson