Wp-content / install.php est-il un Drop-in?

9

Je ne trouve pas de documentation ou de discussions sur ce qu'est et comment utiliser les plugins Drop-in.
La question a été soulevée dans ce Q & A, remplir le contenu lors de l'installation .

Un wp-content/install.phpfichier qui redéfinit la fonction enfichable est-il wp_install_defaultsun plug -in Drop-in ou non?

Mes résultats de recherche

La liste suivante est extraite de l'article de hakre (qui semble être à l'origine de toutes les autres copies dans les interwebs) .

File                Type of Plugin                          Loaded                          Context
advanced-cache.php  Advanced caching plugin.                on WP_CACHE value               Single
db.php              Custom database class                   always                          Single
db-error.php        Custom database error message           on error                        Single
install.php         Custom install script                   on install                      Single
maintenance.php     Custom maintenance message              on maintenance                  Single
object-cache.php    External object cache                   always                          Single
sunrise.php         Executed before Multisite is loaded     on SUNRISE value                Multi
blog-deleted.php    Custom blog deleted message             on deleted blog                 Multi
blog-inactive.php   Custom blog inactive message            on inactive blog                Multi
blog-suspended.php  Custom blog suspended message           on archived or spammed blog     Multi

Source: Data taken from global function _get_dropins() in wp-admin/includes/plugin.php.

Dans le Codex, un Drop-in est défini comme :

Le fichier PHP concret


Au début, il n'y a rien sur la liste [wp-hackers]. Et en recherchant "drop-in + wordcamp", je n'ai trouvé que cela de la pertinence de mon accent :

L'une des grandes forces de WordPress est son système de plugins. Dans la prochaine version 2.1, il y a très peu de choses que vous ne pouvez pas faire en tant que plug-in . Cela facilite l'utilisation de WordPress en tant que CMS et garde vos personnalisations distinctes de la ligne de code principale; ce qui à son tour simplifie les mises à niveau et la maintenance.

brasofilo
la source
1
N'est-ce pas juste de la sémantique? N'étant pas un locuteur natif anglais, je ne vois pas la distinction implicite entre "plugin drop-in" et "plugin"
Mark Kaplun
@MarkKaplun: Non, non, il ne s'agit pas de sémantique. La question est sur la 3ème phrase: est un fichier wp-content / install.php qui redéfinit [...]
brasofilo
Je ne comprends pas pourquoi tu es dehors. Vous savez déjà que les drop-ins sont des fichiers chargés comme des plugins mu, juste sans en-tête de plugin. Qu'est-ce qui est ouvert?
fuxia
@toscho, au fait: Wyck a dit que ce wp-content/intall.phpn'était pas un Drop-in. Faisant confiance à ses connaissances, j'ai pensé qu'une question était nécessaire pour clarifier cela. Sinon, je supprimerai volontiers ceci. Je ne veux pas créer d'autre sujet polémique.
brasofilo
Cela ferait une meilleure question: est-ce install.phpun rendez-vous?
fuxia

Réponses:

9

Pour répondre à ta question, oui

En fait, il existe de nombreuses autres fonctions que vous pouvez remplacer dans ce fichier, il est inclus en tant que première ligne de "wp-admin / includes / upgrade.php" et il y a de nombreuses fonctions à l'intérieur à remplacer

Malheureusement, il n'y a pas trop d'informations disponibles concernant les plugins de connexion mais j'essaierai de mettre quelques points

  1. Ils sont distincts des plugins normaux dans le sens où ils ne peuvent pas être empaquetés et installés via admin wordpress.
  2. Leur utilisation signifie que le propriétaire a téléchargé manuellement le plugin au bon endroit. Il est donc supposé qu'il est écrit et ajouté par le propriétaire lui-même.
  3. Ces plugins sont uniquement destinés à avoir un code spécifique au site wordpress particulier.
  4. Puisqu'ils sont ajoutés par le propriétaire, ils ne peuvent pas être contrôlés (activés / désactivés) depuis le panneau d'administration. L'instruction include est codée en dur dans le noyau.
  5. Ils n'ont pas besoin d'avoir d'en-tête de fichier.

Pour résumer, ce sont des fichiers php codés en dur pour être inclus (s'ils existent), chaque fois que la fonctionnalité correspondante est chargée par wordpress.

Pour les utiliser, créez simplement un fichier php avec ce nom dans le répertoire "wp-content" et il sera automatiquement inclus. Ce fichier peut bien sûr inclure autant de fichiers que vous le souhaitez.

ÉDITER

Comme l'a souligné toscho,
1) Les drop-ins (si disponibles) sont également répertoriés dans le panneau d'administration de wordpress avec tous les autres plugins. Bien que contrairement aux autres plugins, vous n'avez pas le contrôle pour les désactiver à partir de là.
2) Wordpress, lors de sa mise à niveau (mise à niveau principale), ne modifie pas le répertoire "wp-content". Pour cette raison, ces plugins ne changent jamais entre les mises à niveau.
3) Vous pouvez définir une constante dans le wp-config.phppour changer le répertoire "wp-content" en un autre. La constante que vous devez définir est WP_CONTENT_DIR. Cela modifie également les valeurs par défaut pour d'autres constantes telles que le répertoire des plugins, vous devrez donc vous en occuper également si nécessaire

Mridul Aggarwal
la source
2
Vous pouvez ajouter qu'ils survivent à une mise à jour de WordPress, sont répertoriés dans la page d'administration du plug-in et vous pouvez définir des chemins d'accès supplémentaires dans wp-config.php.
fuxia
Beau résumé, Mridul. Je viens de chercher le cœur et oui, vous traduisez presque en anglais ce que dit le code.
brasofilo
1

Comment ça wp-content/install.phpmarche;

Le processus d'installation de WP s'exécute wp-admin/install.php

Sur la ligne 39 de l'installation, il s'exécute wp-admin/includes/upgrade.php

require_once( dirname( __FILE__ ) . '/includes/upgrade.php' );

Ce fichier , puis vérifier pour un utilisateur généré install.php premier et si non trouvé exécute l'installation par défaut comme on le voit par ce code;

( file_exists(WP_CONTENT_DIR . '/install.php') )
    require (WP_CONTENT_DIR . '/install.php');
Wyck
la source
De quelle manière ce flux de travail affecte install.php-t-il ou non notre rôle de halte-accueil?
brasofilo
C'est toujours un "drop-in" que je voulais juste faire une distinction avec un que mu-pluginj'ai commenté ci-dessus, désolé pour la confusion, je pense que Mridul Aggarwal a raison.
Wyck
Pas de problème, je suis vraiment confus. Mais, si le système appelle Must-use un type et Drop-in un autre type, nous devons nous en tenir à la convention. A
bientôt
Ya les conventions de nommage devraient être plus claires, mais la plupart des gens ne connaissent pas la coutumeinstall.php
Wyck