Je travaille sur une installation multisite WP et je dois importer du contenu à partir d'autres sites Wordpress (fichiers .wxr
). Quand j’utilise le plugin Import WordPress, j’obtiens ce qui suit:
La taille de téléchargement maximale autorisée est uniquement 1MB
, alors que j'ai défini 100MB
dans mon php.ini
. Un appel à phpinfo()
indique que les .ini
valeurs devraient s'appliquent:
Quel est le problème là-bas? J'ai lu la plupart des résultats de la recherche pour upload_max_filesize
sur ce site , mais aucun ne fonctionne.
Note: Cela ne se produit qu'avec Wordpress. J'ai des sites Symfony2 et je peux télécharger des fichiers d'une taille de 100 Mo et plus - alors oui, c'est le bon paramètre php.ini
et le serveur Apache les applique correctement.
Écrire MU Wordpress Plugin
Après @kaiser suggestion j'ai créé un fichier /wp-content/mu-plugins/uploadSizeLimit.php
et l'ai écrit dessus:
/** Plugin Name: (WPSE) #177620 Alter Upload Size Limit */
add_filter(
'upload_size_limit',
function ( $limit = 0, $u_bytes = 0, $p_bytes = 0 ) {
return
current_user_can( 'manage_options' )
? 1024 * 1024 * 10 // Divert by 1024 to get the value in kB
: $limit;
}
);
Comment puis-je l'utiliser pour réaliser ce dont j'ai besoin?
Merci @kaiser mais pas besoin de passer par votre solution, j'ai trouvé une solution facile que je partagerai ici car les débutants m'aiment bien.
Si vous travaillez sur un WP site réseau, les étapes sont les suivantes:
En définissant cette valeur sur 500000
, j'ai obtenu 500M
en tant que téléchargement max_file_size. Credits est pour l'utilisateur ici
Il existe un filtre nommé 'upload_size_limit'
où vous devriez pouvoir modifier la valeur. Ajoutez simplement un petit plugin mu pour ce travail:
<?php
/** Plugin Name: (WPSE) #177620 Alter Upload Size Limit */
add_filter( 'upload_size_limit', function( $limit = 0, $u_bytes = 0, $p_bytes = 0 )
{
return (
in_array( get_current_screen()->base, array( /* Add Screen "base"s here */ )
and current_user_can( 'manage_options' )
)
? 1024 * 1024 * 10 // Divert by 1024 to get the value in kB
: $limit;
} );
Comme vous pouvez le constater, je recherche également une propriété get_current_screen()
s nommée base
. Vous pouvez également rechercher différentes propriétés, mais veillez à limiter le nombre d'écrans pour lesquels la suppression/modification de la limite par défaut s'applique aux écrans où vous en avez réellement besoin.