Ich arbeite an einer WP Installation mit mehreren Standorten und muss Inhalte von anderen Wordpress-Sites (.wxr
-Dateien) importieren. Wenn ich das WordPress importieren Plugin benutze, habe ich folgendes:
Die maximal zulässige Upload-Größe ist nur 1MB
, während ich 100MB
in meinem php.ini
festgelegt habe. Ein Aufruf von phpinfo()
teilt mit, dass die .ini
-Werte sollte gelten:
Was ist da los? Ich habe die meisten Suchergebnisse für upload_max_filesize
auf dieser Site gelesen , aber keiner funktioniert.
Hinweis: Dies passiert nur mit Wordpress. Ich habe Symfony2-Sites und kann Dateien mit einer Größe von 100 MB und mehr hochladen. Ja, es sind die richtigen php.ini
-Einstellungen, und der Apache-Server wendet sie ordnungsgemäß an.
MU Wordpress Plugin schreiben
Nach @kaiser suggestion habe ich eine /wp-content/mu-plugins/uploadSizeLimit.php
Datei erstellt und diese darauf geschrieben:
/** 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;
}
);
Wie verwende ich das, um das zu erreichen, was ich brauche?
Danke @kaiser aber ich muss deine Lösung nicht durchgehen Ich habe eine einfache gefunden und ich werde sie hier für Neulinge teilen, die mich mögen.
Wenn Sie an einer WP -Netzwerksite arbeiten, sind die folgenden Schritte auszuführen:
Indem ich diesen Wert auf 500000
gesetzt habe, habe ich 500M
als max_file_size-Upload erhalten. Credits ist für Benutzer hier
Es gibt einen Filter mit dem Namen 'upload_size_limit'
, in dem Sie sollten den Wert ändern können. Füge einfach ein kleines mu-Plugin für diesen Job hinzu:
<?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;
} );
Wie Sie sehen, überprüfe ich auch, ob eine get_current_screen()
s-Eigenschaft namens base
vorhanden ist. Sie können auch nach verschiedenen Eigenschaften suchen, aber stellen Sie sicher, dass Sie die Bildschirme einschränken, in denen das Entfernen/Ändern des Standardgrenzwerts für die Bildschirme gilt, in denen Sie ihn wirklich benötigen.