Възможност за изпълнение в WordPress - WP Magazine
За WordPress на руски език
Таблицата с опции в WordPress съдържа всички настройки за вашия уебсайт, теми и приставки. Той може да съхранява както прости знамена (да/не), така и по-големи данни, понякога дори регистрационни файлове. API за работа с опции в WordPress е много прост, може да бъде обобщен в два реда:
Но това е само повърхност, тъй като вътрешният механизъм за работа с опции е много по-сложен и поради това много, дори опитни разработчици, правят редица критични грешки, които могат да доведат до забавяне на WordPress сайтовете и прекомерна памет консумация.
Фатална грешка: Разрешеният размер на паметта от 134217728 байта е изчерпан
Разбира се, можете да се свържете с вашия доставчик на хостинг, да поискате да увеличите лимита на паметта до 256 мегабайта, след което дори повече, повече и повече. Но по този начин временно скривате проблема, а не го решавате.
Как работят опциите в WordPress
WordPress има таблица wp_options, структурата му е съвсем проста:
Когато извикаме функцията get_option () в WordPress, получаваме стойността на опцията по ключ от базата данни, но тук си струва да запомним едно много важно нещо: опции с флага за автоматично зареждане зарежда се автоматично в паметта при зареждане на ядрото на WordPress за това отговаря вътрешната функция wp_load_alloptions ().
Това означава, че при достъп до опцията siteurl в нашата тема или приставка WordPress, резултатът ще бъде върнат директно от кеша на обекта, а не от базата данни MySQL.
Този подход е категоричен плюс за опциите, които ние (ядрото, нашата тема, нашите приставки) възнамеряваме да използваме за показване на текущата страница в WordPress. Това предотвратява ненужните посещения на базата данни MySQL за всяка необходима опция.
Но какво да кажем за опциите, които заредихме в паметта, но никога не ги използвахме? Те просто консумират нашите ресурси.
Какво да направя по въпроса?
Едва ли има страница, която да изисква абсолютно всички опции за автоматично зареждане, и повечето от страниците на вашия сайт на WordPress вероятно ще използват много по-малко от половината от всички опции за автоматично зареждане и това е нормална практика.
Проблемите с производителността не се дължат на техния брой. Нека се върнем към нашия API за работа с опциите на WordPress, нека вземем прост плъгин, който реши да напише лентата на стойността в опцията foo:
Много разработчици дори не се замислят дали такава опция ще се зареди автоматично. Необходима ли е тази опция за показване на повечето страници на сайта и колко "допълнителна" памет ще консумира тази опция.
Не забравяйте, че когато използвате update_option () или add_option (), флагът за автоматично зареждане е зададен по подразбиране за нови опции. И когато деактивирате или изтриете тема или приставка, опцията (като правило) не изчезва никъде. Ако трябва да създадете опция без автоматично зареждане, използвайте четвъртия аргумент на функцията add_option ().