web-dev-qa-db-fra.com

Comment savoir si un plugin est compatible multisite?

En tant que débutant dans l’administration de WordPress, je viens de passer par ma première mise à jour non automatique de WordPress.

J'ai mis à niveau cinq différentes installations WordPress de 4.1.3 à 4.2.

Ils font tous référence à différents sites Web hébergés sur le même hôte Web en tant que domaine principal et quatre domaines complémentaires.

Sur chacun des sites Web, j'utilise les plug-ins suivants:

  • Akismet;
  • Google Analytics de Yoast;
  • Google adsense;
  • Google Sitemaps XML et
  • Jetpack par WordPress.com.

Afin de rationaliser davantage l'administration, j'ai envisagé de regrouper les cinq installations en une seule installation multisite.

Jusqu'à présent, j'ai trouvé assez difficile de trouver des réponses définitives sur la compatibilité de chacun de ces plugins avec une installation multisite sur les sites Web du plugin.

La page du plugin est-elle le bon endroit pour rechercher ceci?

Y a-t-il un emplacement central où cette information peut être trouvée?

9
Alfred Myers

Il existe deux types de compatibilité multisite:

  1. Compatibilité passive: ne rien faire de spécifique multisite, fonctionne sans casser quoi que ce soit.
  2. Compatibilité active: modification ou extension du comportement spécifique à plusieurs sites.

Je suppose que vous êtes absent pour 1. Voir mes diapositives de WordCamp Prague 2015 pour la deuxième partie.

Les plugins qui ne disent rien à propos du multisite ne doivent pas être activés en tant que plugins de réseau. WooCommerce, par exemple, crée des tables personnalisées lors de l'installation. Si vous l'activez à l'échelle du réseau, les sous-sites ne recevront pas ces tables et le ciel vous tombera sur la tête.

Malheureusement, la plupart des plugins ne vérifient pas leur type d’activation, ils vous permettent donc de faire la mauvaise activation.

des problèmes liés à UX tels que les pointeurs d’administrateur ou des pages spéciales "À propos de" sur lesquelles vous devez cliquer sur un sous-site dans des plug-ins non compatibles. Le WP de Yoast est un exemple . Ce sera bientôt résolu dans ce plugin, je suppose. :)

D'autres problèmes dépendent de ce que vous faites avec ce multisite. Si vous construisez un site Web multilingue où chaque site est écrit dans une langue et que les sites sont connectés les uns aux autres, vous souhaitez synchroniser les publications lorsque vous écrivez du contenu. Cela signifie que vous appelez switch_to_blog() au crochet save_post et sauvegardez également les publications connectées. save_post sera appelé plusieurs fois au cours d’une même demande. De nombreux plugins ne sont pas conscients d'une telle situation, aussi écrasent-ils les méta-informations postales des publications connectées, en pensant qu'elles figurent toujours sur la première publication.

Recherchez les plugins qui traitent de post meta et qui n'ont pas de contrôle comme celui-ci:

if ( is_multisite() && ms_is_switched() )
    return FALSE;

Ces plugins ne sont pas compatibles.

Des problèmes similaires, bien que plus difficiles à spécifier, sont des problèmes lorsque les plug-ins touchent des champs méta d'utilisateurs ou des règles de réécriture.

Certains plug-ins essaient d'écrire du contenu dans des fichiers sans inclure l'ID de site dans le nom du fichier. Ils sont très probablement cassés aussi.

Comme Tom l'a dit: Créez une installation de test, exécutez tous les cas d'utilisation imaginables. Vous ne pouvez pas faire confiance à la page du plugin, et généralement, il n’ya pas assez d’informations de toute façon.

6
fuxia

À moins qu'un plugin ne déclare sa compatibilité, le seul moyen fiable de le savoir est de créer une installation multisite locale et de la tester.

Vous pouvez parfois rechercher des signes, mais ceux-ci sont toujours le symptôme d'un code incorrect, par exemple. Les noms de table de base de données codés en dur plutôt que d'utiliser le préfixe de $wpdb, auquel cas je recommanderais d'éviter le plug-in, même si vous n'utilisez pas le multisite

2
Tom J Nowell