Wordpress: PHP 치명적 오류: 정의되지 않은 함수 get_option() 호출
거의 모든 곳을 찾아봤지만, 제안된 답변은 도움이 되지 않았다.
문제:Wordpress가 설치되어 있습니다.마지막 버전(3.6.1)입니다.클린 인스톨을 여러 번 실시해, 그 인스톨을 조사했습니다.wp-includes/option.php다른 파일들도 모두 작동하며 모두 올바른 내용을 가지고 있다고 확신합니다.
플러그인을 개발하고 있으며 워드프레스 정의 함수를 사용하고 있습니다.get_option내 코드가 그 함수를 호출할 때마다500: internal server error대답.이상합니다. Wordpress 프레임워크 내에서 플러그인의 코드를 호출해야 합니다.
한층 더 기묘하게 만들 수 있습니다.포함된 파일에 정의되어 있는 다른 기능, 예를 들어add_options_page완벽하게 작동하고 필요한 대로 행동합니다.
예를 들어 다음과 같이 동작합니다.
$pageTitle = "Title for my Options Page";
$menuLink = "Title for my Menu Link";
$userAccessLevel = 8; //that's admin
$pageSlug = "slug-to-my-plugin-options-page";
$callbackFunction = array($this, 'optionsPage');
add_options_page($pageTitle, $menuLink, $userAccessLevel,
$pageSlug, $callbackFunction);
하지만 이것은 아닙니다.
get_option("ntp_myoption");
둘다요.add_options_page그리고.get_option는, 같은 폴더의 소스 파일에 정의됩니다( ).wp-includes\option.php그리고.wp-includes\plugin.php두 함수는 모두 이들 파일에 포함되어 있습니다.위의 두 코드 블록은 모두 플러그인 내의 동일한 파일에 있습니다.파일을 포함하거나 필요로 하지 않습니다.
힌트 있는 사람?
요청하신 대로, 제가 전화하는 곳의 모든 코드 블록은get_option- 플러그인을 랩하는 클래스 컨스트럭터입니다.
function __construct() {
global $wpdb;
$this->table_iso = $wpdb->prefix . "ntp_iso";
$this->pluginUrl = get_option('siteurl') . '/wp-content/plugins/my-plugin';
}
또한 다음과 같은 사항을 언급할 필요가 있습니다.실제 플러그인을 랩하는 클래스가 있고, 그 .php 파일 하단에 (클래스 정의 외부에) 다음 코드가 있습니다.
global $tp;
$tp = new MyPlugin();
$plugin = plugin_basename(__FILE__);
register_activation_hook( __FILE__, array($tp, 'install'));
register_deactivation_hook( __FILE__, array($tp, 'deactivate'));
add_action('add_meta_boxes', array($tp, 'init'));
if (is_admin()) {
add_action('admin_menu', array($tp, 'addOptionsPage'));
add_filter("plugin_action_links_$plugin", array($tp, 'addSettingsLink'));
}
이것들은 모두 마법처럼 작동한다.
같은 Fatal Error가 발생하여 wp-config.php 파일을 관련 경로로 로드했습니다.
내 파일은 wp-content/plugins/myplugin/css/mystyle이었다.php
페이지 상단에 다음 코드를 추가했습니다.그 후 get_option() 함수는 완벽하게 동작했습니다.
require_once('../../../../wp-config.php');
아마 이게 도움이 될 거야.
안부 전해요
wp-includes 옵션이 의심됩니다.php가 로드되지 않았습니다.
greens의 경우 get_options() 추가 호출 직전
include_once('wp-includes\option.php');
또는 옵션에서 다른 것을 호출해 보십시오.php:update_option(null);
option.php내부로부터 포함되다wp-includes/functions.php하는 동안에plugin.php몇 가지 다른 장소 중 하나에 포함됩니다.
코드를 입력하면 현재 포함되거나 필요한 모든 파일을 볼 수 있습니다.
$includedStuff = get_included_files();
print_r($includedStuff);
행운을 빕니다.
옵션이 있는지 테스트할 수 있습니다.php는 동작하고 있습니다.
http://yourdomain.com/wp-admin/options.php
옵션이 저장된 경우 해당 옵션이 나열됩니다.
그렇지만.....
add_module_page는 대시보드 메뉴용입니다.
get_option을 사용하려면 add_option이 필요합니다.
http://codex.wordpress.org/Function_Reference/add_option
"PHP Fatal error: Call to undefined function apply_filter" 오류가 발생한 사용자를 위해 여기에 메모를 추가하려고 합니다.이 에러를 구글에서 검색해 본 결과, 이 질문이 나왔습니다.
메모: 함수 철자를 체크하여 "apply_filters" 단수가 아닌 "apply_filters"가 복수인지 확인해야 합니다.이것은 저의 문제이기 때문에, 이 투고에 액세스 할 수 있습니다.
Sumith's Code를 사용했지만 조금 편집했습니다.여기 언급된 코드 중 유일하게 동작하는 코드였습니다.
여기 제 것이 있습니다.
require_once(dirname(__FILE__).'../../../../wp-config.php');
언급URL : https://stackoverflow.com/questions/19326761/wordpress-php-fatal-error-call-to-undefined-function-get-option
'source' 카테고리의 다른 글
| AJAX 요청의 상대 URL (0) | 2023.02.26 |
|---|---|
| 「」의 삭제"「」의 삭제"「」의 삭제" ★★★★★★★★★★★★★★★★★」 ★★★★★★★★★★★★★★★★★」 ★★★★★★★★★★★★★★★★★」WordPress 시 word word word wordWord.. (0) | 2023.02.18 |
| 여러 번 호출되는 UseEffect (0) | 2023.02.15 |
| ajax가 사용할 수 있는 websocket/socket.io의 단점은 무엇입니까? (0) | 2023.02.15 |
| AWS: ID 풀 구성이 잘못되었습니다.이 풀에 대해 할당된 IAM 역할 확인 (0) | 2023.02.15 |