word press get_option이 false를 반환함
다음과 같은 설정을 등록하는 워드프레스 플러그인이 있습니다.
register_settings("myplugin_settings","myplugin_option1");
플러그인 활성화 시 다음과 같은 옵션이 추가됩니다.
add_option("myplugin_option1","");
그런 다음 옵션을 업데이트하면 다음과 같이 됩니다.
update_option("myplugin_option1","something else");
나중에 데이터베이스에서 가져오기를 시도합니다.
$myoption = get_option("myplugin_option1");
get_option()은 false, 짝수 옵션이 존재하며 값이 갱신됩니다.
옵션을 얻기 위해 쿼리를 실행하면 다음과 같은 값이 표시되므로 값이 업데이트되고 옵션이 존재함을 알고 있습니다.
global $wpdb;
$query = 'SELECT * FROM wp_options WHERE option_name = "myplugin_option1";
$result = $wpdb->get_results($query);
이 값은 "다른 것"을 반환합니다.
예를 들어 다음 코드입니다.
$option = get_option("myplugin_option1");
if(false == $option){
global $wpdb;
$query = 'SELECT * FROM wp_options WHERE option_name = "myplugin_option1"';
$result = $wpdb->get_results($query);
}
이 코드가 실행된 후 $result에는 다음 값이 포함됩니다.
Array
(
[0] => stdClass Object
(
[option_id] => 11752
[option_name] => myplugin_option1
[option_value] => something else
[autoload] => yes
)
)
따라서 옵션이 존재하며 값이 있지만 get_option()은 false를 반환합니다.
이 문제는 플러그인이 설치되어 있는 사이트와 3가지 옵션에서만 발생합니다.get_option() returns false even 옵션이 데이터베이스에 있고 값이 "other"인 이유를 알고 있는 사람이 있습니까?
문제가 된 3가지 옵션이 wp 캐시에 2번 캐시되어 있는 것이 문제였습니다.
따라서 1개의 옵션은 2회 캐시되었으며 update_options()는 항상 이 2개의 옵션 중 하나를 갱신하고 get_option()은 항상 빈 값으로 캐시된 다른 옵션을 가져옵니다.
어떻게 이런 일이 일어났는지는 모르겠지만 캐시를 지우면 문제가 해결되었습니다.
파일을 포함시켜야 합니다.wp-blog-header.php
Wordpress 기능을 사용할 수 있습니다.이 파일은 워드프레스 루트 폴더에 있습니다.
언급URL : https://stackoverflow.com/questions/29909572/wordpress-get-option-returning-false
'programing' 카테고리의 다른 글
WooCommerce AJAX 배송 방법 업데이트 후 jQuery 실행 (0) | 2023.02.28 |
---|---|
"Warning: useLayoutEffect does nothing on server?"를 수정하는 방법 (0) | 2023.02.23 |
redux-thunk와 redux-promise의 차이점은 무엇입니까? (0) | 2023.02.23 |
Visual Studio 코드 포맷 변경(React-JSX) (0) | 2023.02.23 |
Visual Studio 코드의 JSX 또는 HTML 자동 완성 (0) | 2023.02.23 |