Aha hər bir template-in içində eyni if else yazmaq bir az düz çıxmır, SOLID prinsipinə də zidd kimi görünür. Amma sonralar optimizə edə bilərsiz. Ki mərkəzi detector olsun functions.php faylında, o yönləndirsin hər şeyi necə lazımdır mobilə və ya desktopa.
Aha. tam anladim bu dediklerinizi. Bes page template leri nece? onlar da ele page template ni yaradib tutaq ki Test adli page template var o page template in de icinde yene if edib uygun mobile veya desktop page template i include etmek?
Ama dediyiniz kimi bu da professional hell deyil de ? hele ki bele edim sonraliqca daha da tekmillesdirerem
Olar elə. Çoxdur həllər.
Məsələn elə ən sadəsi if(is_mobile()) else şərtinin template faylların hər birinin içində olması və müvafiq alt-template faylı yükləməsi.
Bu metodla olanda index, page, single və.s.-in içində yuxarıdakı if else ilə müvafiq papkadan müvafiq faylı çağırırsız, lazım olan librarylerin yüklənməsini isə functions.php-də yenə də eyni tip if else ilə edirsiz. Functions.php faylı index, single, page və.s. olmasından asılı olmayaraq həmişə birinci run olur. Deməli kitabxana və altyapı işlərini onun içində etməliyik, sonra da wordpress özü url-ə uyğun avtomatik template-i çağırır, tutalım səhifə açılır və page.php yüklənir. Bu zaman da sizdə page.php-in içində əlavə heç bir kod yoxdur, yalnız if require desktop else require mobile sətri var.
Beləliklə məsələ həll olur.
1 tema ile lap ela olar hell etmek, Zehmet deyilse dediyiniz 1 tema ile hell etmek ucun struktur, detect nece hansi faylda olmalidi bu kimi seyler haqinda qisaca melumat verersinizse ve ya hansisa bir source. esas function.php fayllarinin nece cagrilmasi ve diger index single page_template fayllarinin nece olacagi maraqlidi.
bele etsem sizce duzgun olar? tema qovlugu icinde 2 qovluq yaratsam biri mobile digeri desktop. heresinin icinde eyni fayllar olsa ozlerine uygun. temanin oz qovlugu icindeki tutaq ki index.php de yoxlayib mobile ve ya desktop qovluqdaki indexi include etmek. hemcinin page.php single.php de bu kimi.
wp-content/themes/test
wp-content/themes/test/mobile
wp-content/themes/test/desktop
wp-content/themes/test/index.php faylinde yazlniz
if(is_mobile())
include 'wp-content/themes/test/mobile/index.php';
else
include 'wp-content/themes/test/desktop/index.php';
diger butun fayllar da bele.
basqa daha optimal varianti varmi?
Dediklərinizin hər birinin həlli var. Amma ümumi konsept tamamilə yanlışdır deyə bu həllərə gərək yoxdur.
Qayda 1: Tema 1 dənə olmalıdır, mütləq və mütləq.
Mobile və desktop məsələsi temanın daxilində həll olmalıdır. Detektor qoy init-dən əvvəl detekt etsin, sonra ona uyğun lib-lər, template load olsun. Yəni yol init-dən əvvəl ayrılsın, amma temanın daxilində.
Qayda 2: plugin və theme xaricində heç bir lib, funksiya saxlanılmamalıdır heç bir halda.
Lib-i temanın daxilində rahat saxlamaq olar.
Əsas məntiq olaraq ona fokuslanmaq lazım ki: kod parçalarınız ON-DEMAND işləsin. Yəni nə lazımdır o çağırılsın. Bunu struktur olaraq həll etdikdən sonra heç bir problem qalmır
Demeli bele bir meqama rast geldim. men dizayni deyisende dediyim kimi kicik plugin ile deyisirem. pluginde userin device ni yoxladiqdan sonra uygun olaraq 2 tema desktop ve ya mobile arasinda uygun temani bu kodla aktiv edirem.
[code]
add_filter('stylesheet', function() { return 'mobile'; });
add_filter('template', function() { return 'mobile'; });
[/code]
eger admin panelden desktop theme secilibse ve men bu yuxardaki kodlarla mobile theme ni aktiv ediremse
her 2 add_filter ile stylesheet ve template. bu zaman tema tamamile aktiv olur mobil tema.
yox eger temani tekce add_filter('stylesheet', function() { return 'mobile'; }); ile aktiv ediremse o zaman ise desktop temanin functions.php si de cagrilir ve mobile theme de normal olaraq yuklenir.
sadece olaraq funksiyalari owerride elemir. gerek ki mobile ve desktop functions.php icinde eyniadli funksialar olmaya.
bir eterefden bu cox eladi demek olar ki sirf mene lazim olan bir weydi, qalir bir mesele ki bu yolla men deyen ki isetmek olar? duzgundur isletmek bu yolla? ve tekce functions.php ni merge edir goresen yoxsa diger her hansisa fayllari da?
eger yalniz temalar icinde olan functions.php leri merge etse o zaman tam men isteyendir.
Worpress üzərində qurulmuş saytın transfer olunması
WordPressde sayt yığıram əlaqə yerində xəritə açmır
WordPressdə şəkillərə logo vurmaq mümkündürmü ?