각 옵션마다 메모리에 모든 옵션이로드됩니까?


25

모든 옵션 변수가 데이터베이스에서 페치되고 각 요청에서 캐시되도록로드됩니까?

답변:


24

예, 일종의 get_option호출 되면 WordPress는이라는 함수를 실행합니다.이 함수 wp_load_alloptions는 모든 자동로드 된 옵션의 캐시 된 사본을 가져 오거나 해당 옵션을 모두 캐시에로드합니다. 그런 다음 wp_load_alloptions모든 자동로드 옵션의 배열을 반환합니다. 옵션이 자동로드 된 경우 ( add_option함수 를 사용할 때 지정됨 )이 배열의 일부가되어 반환됩니다.

옵션이 자동으로로드되지 않은 경우 WordPress는 캐시에서 해당 옵션을 찾아보고 해당 옵션이 있으면 값을 반환합니다. 누락 된 경우 최종 폴백은 데이터베이스로 이동하여 값을 가져 와서 캐시를 설정 한 다음 반환하는 것입니다.

마지막으로, 옵션이 전혀없는 경우 (예 : 옵션 이름이 유효하지 않은 경우) WordPress는 해당 옵션의 이름을이라는 캐시 된 배열에 저장합니다 notoptions. 비 옵션에 대한 후속 호출이 이루어지면 WP는 notoptions 배열을 먼저 확인하므로 존재하지 않는 항목을 확인하는 데 시간을 낭비하지 않습니다.

get_option페이지로드 당 여러 번 호출 하는 것에 대해 걱정이 되더라도 걱정 하지 마십시오. WordPress는 get_option자동로드 여부에 관계없이 첫 번째 호출 후 옵션 값을 캐시합니다 .

진행 상황을 확인 하려면 소스를get_option 확인하십시오 .


3

아니,

자동로드가 true로 설정되어 특별히로드 된 옵션 만

http://codex.wordpress.org/Function_Reference/add_option을 참조하십시오 .

따라서 모든 페이지에 필요한 옵션 인 경우 db에 추가 할 때 autoload = true를 설정하십시오.

그 후 get_option을 정상적으로 사용하십시오-wp는 캐싱 등을 처리합니다.


1
WP는 자동로드와 상관없이 캐싱을 처리합니다.
chrisguitarguy

0

예,

자동로드를 yes / true로 설정할 필요가 없습니다. 기본적으로 yes로 설정됩니다. http://codex.wordpress.org/Function_Reference/add_option- 마지막 함수 매개 변수 ($ autoload) :

이 옵션은 wp_load_alloptions () 함수에 의해 자동으로로드되어야합니까 (각 페이지로드시 옵션을 객체 캐시에 넣음)? 유효한 값 : 예 또는 아니요 기본값 : 예

그러나 no로 설정하면 옵션이 캐시에 저장되지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.