WordPress: mime-type-uri şi articole private


Zilele trecute am avut o problemă pe un sit realizat cu WordPress. Am dorit să public un fişier MS Publisher pentru a descoperi că… nu pot. Formatul a fost găsit ca suspect şi drept urmare încărcarea refuzată. Desigur, aş fi putut publica via FTP (în wp-content/uploads/…), dar e enervant să faci aşa de fiecare dată. Se poate ca şi Dvs – dacă lucraţi cu WordPress – să fi întâlnit restricţii similare pentru alte fişiere. Dacă îmi amintesc bine şi SVG e blocat şi multe alte extensii.

Din fericire există o soluţie simplă, pe care am găsit-o chiar în Codexul WordPress şi am sintetizat-o mai jos. E simplu să adăugaţi noi extensii care să poată fi încărcate (upload-ate), respectiv, dacă e un blog cu mai mulţi autori să introduceţi restricţii pentru alte extensii.

[PHP]function custom_upload_mimes($existing_mimes=array()){
//Adăugaţi extensii şi tipul de media internet (mime type)
//$existing_mimes[‘extension’] = ‘mime/type’;
//$existing_mimes[‘doc’] = ‘application/msword’;
$existing_mimes[‘pub’] = ‘application/mspublisher’;
//Eliminaţi ce nu doriţi
//unset($existing_mimes[‘exe’]);
return $existing_mimes;
}
add_filter(‘upload_mimes’, ‘custom_upload_mimes’);[/PHP]

Şi acum o altă problemă: tot pe un sit realizat cu WordPress, unde înscrierea membrilor e interzisă (deci adaug eu membri), am dorit ca membrii să poată să citească articolele private. Ei bine, am avut două probleme. În primul rând membrii simpli (abonaţii sau subscribers) nu au drept de citire pentru articolele private. Se rezolvă însă cu cele două linii de cod de mai jos. A doua problemă este că articolele private apar prefixate cu „Privat” – ceea e OK că sună la fel şi în română. Dar la articolele protejate cu parolă apare „Protected”. Ambele texte pot fi „traduse” cu trucul de mai jos.

[PHP]$subRole = get_role(‘subscriber’);
$subRole->add_cap(‘read_private_posts’);

function titlu_adaptat($title){
$pattern[0] = ‘/Protected:/’;
$pattern[1] = ‘/Privat:/’;
$replacement[0] = ‘Protejat:’;
$replacement[1] = ‘Exclusiv:’;
return preg_replace($pattern, $replacement, $title);
}
add_filter(‘the_title’, ‘titlu_adaptat’);[/PHP]

Sunt nişte probleme cu care nu se confruntă prea mulţi… dar poate unora le vor prinde bine cele două coduri.


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (Neevaluat încă)
Loading...Loading...

1 comentariu

  1. Cosmin spune:

    Referitor la mime-type-uri eu am intalnit chiar un „bug” de Firefox care nu a fost inca rezolvat. Fisierele .eps sunt cateodata raportate la upload ca necunoscute si astfel refuzate de server. Problema se rezovla usor client-side, pentru ca si acolo este generata coruperea unui fisier de catre servere configurate gresit.
    Mai mult pe aceasta tema pentru cei interesati: http://techblog.procurios.nl/k/n618/news/view/15872/14863/Mimetype-corruption-in-Firefox.html


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *