2013-05-28 1 views
0

이 문제는 나를 미치게합니다.자료 Wordpress : functions.php 표준 WP 기능 깨기

오늘 아침, 내가 만들고있는 Wordpress 테마에는 매우 간단한 functions.php 파일이 포함되어 있으며 사이트가 제대로 작동했습니다. 오늘, 카테고리를 반복하고 특정 게시물을 나열하는 새로운 함수를 작성했습니다. 이것이 함수에 대한 유일한 변경 사항입니다 .php.

개정 된 기능 파일을 서버에 업로드 한 후 내 사이트에 액세스 할 때마다 500 오류가납니다. 그래도 "좋아, 내 새 기능이 무언가 망가 졌어. 그냥 함수에서 제거하고 다시 시작해." 그러나 원래 버전의 파일 (오늘 아침에 작동 한 버전)으로 되 돌린 후에도 여전히 500 오류가 발생합니다.

서버에서 functions.php를 제거하면 내 페이지가로드되고 (사이드 바가 없어도로드됩니다.) 파일을 다시 업로드하자마자 (오늘 아침에 작동 한 동일한 버전), 나는 500 오류를 얻습니다.

에러 로그를 확인한 결과, 서버에 functions.php가있을 때 Wordpress (또는 php)가 더 이상 get_template_directory_uri() 함수를 찾을 수 없다는 것을 발견했습니다. 나는 표준 Wordpress 함수를 변경하기 위해 아무 것도하지 않았으며, 이것은 functions.php가 업로드되었을 때만 발생합니다.

functions.php가 표준 기능을 손상시킬 수있는 원인은 무엇입니까?

가 여기 내 functions.php 파일 : 당신은 500 수준의 오류, 빈 흰색 화면 또는 다른 이상하거나 예기치 않은 동작을 얻을 때

<?php 

/* ********************************************* 
* Create left-hand sidebar for single.php 
* 
* TODO: Finalize $sricks_single_left_sidebar. 
* ********************************************/ 
$sricks_single_left_sidebar = array(
    'name'   => 'Left Sidebar', 
    'id'   => 'lt-single', 
    'description' => 'This is the sidebar on the left side of the single.php template page.', 
    'before_widget' => '<!-- Left-Single Sidebar --><div class="lt-single">', 
    'after_widget' => '</div> <!-- End Left-Single Sidebar -->', 
    'before_title' => '<h1>', 
    'after_title' => '</h1>', 
); 
register_sidebar($sricks_single_left_sidebar); 

/* ********************************************* 
* Create header_search sidebar to be used on 
* all pages 
* ********************************************/ 
$sricks_header_search_sidebar = array(
    'name'   => 'Header Search', 
    'id'   => 'header-search', 
    'description' => 'This is the search box in the page header.', 
    'before_widget' => '<!-- Header-Search Sidebar --><div class="header-search">', 
    'after_widget' => '</div> <!-- End Header-Search Sidebar -->', 
    'before_title' => '<h1>', 
    'after_title' => '</h1>', 
); 
register_sidebar($sricks_header_search_sidebar); 
?> 
+0

'functions.php' 파일에는 아무 문제가 없습니다. 그것은 다른 것이되어야합니다. 디버깅을 켜고 출력 내용을 알려줍니다. 'wp-config.php'를 편집하고 이것을 넣으십시오 :'define ('WP_DEBUG', true); ' –

+0

고마워, 스펜서 카메론. 디버깅을 활성화 한 후에는 문제의 원인을 발견했습니다. 나는 새로운 사람이기 때문에 7 시간 더 내 자신의 질문에 대답 할 수는 없지만 그 때 대답으로 업데이트 할 것입니다. – sricks3

+0

도움이 된 것을 기쁘게 생각합니다. 문제의 원인을 밝혀 준 이후로'WP_DEBUG'에 대한 답을 줄 것입니다. –

답변

1

모두에게 감사드립니다. 특히 스펜서 카메론. 내 새 함수 선언문에서 열린 괄호와 닫는 괄호를 잊어 버렸습니다. Wordpress는 built-in 함수 앞에 function.php를 읽습니다. 그래서 막 막혔습니다.

코드를 제출할 때 함수 본문에서 모든 것을 삭제했기 때문에 새 함수를 생략했습니다. 무엇이 잘못 될 수 있습니까? 학습 한 내용 ...

2

워드 프레스에서 문제의 원인을 찾으려면을 정의 WP_DEBUG 상수는 wp-config.php입니다. 이처럼

:

define('WP_DEBUG', true);

당신이 개발 또는 사이트로 변경하는 경우, 그것은 일반적으로 편집 완료 될 때까지이 기능을 사용하는 것이 좋습니다. 그렇지 않으면 수 시간 동안 지장을 초래할 수있는 실수를 찾아 내고 바로 잡는 것을 매우 쉽게 할 수 있습니다.