2011-01-06 8 views
0

저는 플러그인을 해킹하고 있습니다. 나는 짹짹을 게시하는 플러그인 안에 있기 때문에 나는 에코 나 프린트 같은 것을 사용한다. 문제점을 일으키는 한 줄을 찾아 냈지만 인쇄 나 반향이 없기 때문에 정확히 무엇인지 모릅니다.PHP 디버깅 도움말

$tagarray = wp_get_post_tags($post_id); //returns an array 
$tags = "tag:"; 
if (count($tagarray) > 0){ 
    foreach ($tagarray as $tag){ 
     //$tags .= "mytag "; // This line works when quotes are removed. 
     //$tags = strval($tag); //This doesn't. 
    } 
} 

캐스팅과 같은 $ tag의 다양한 조작을 시도했지만 아무런 효과가 없습니다. 디버깅하는 방법에 대한 아이디어? 마지막 수단은 인쇄 값을 파일에 게시하는 것입니다. 다른 아이디어? 정확히 $ 태그와 어떤 콘텐츠를 어떤 유형

var_dump($tag); 
die(); 

당신은 볼 수 있어야합니다 : 당신에 사용 위해서 var_dump 또는

+0

이것은 백엔드에서 서버 측에서 실행되는 플러그인입니다. 따라서 var_dump 등은 내 브라우저에 게시되지 않습니다. – Neo

+1

여전히 print_r 또는 다른 것을 할 수 있습니다. 다르게해야합니다. 텍스트 파일을 열어 그 결과를 출력합니다. – Phoenix

답변

1

귀하의 코드입니다 불완전한.

예, wp_get_post_tags() 태그 목록을 반환하지만 그 목록의 각 태그는 다음과 같은 포함하는 객체 자체

:

  • 이 term_id
  • 이름
  • 슬러그
  • term_group
  • term_taxonomy_id을
  • 택 소노 미
  • d escription
  • 부모
  • 그래서 대신이 작업을 수행 할 필요가

:

$tagarray = wp_get_post_tags($post_id); //returns an array 
$tags = "tag:"; 
if (count($tagarray) > 0){ 
    foreach ($tagarray as $tag){ 
     $tags .= strval($tag->name); 
    } 
} 
0

루프의 사용입니다. 루프는 첫 번째 값 이후에 즉시 중지됩니다.

1

인 print_r을 디버깅

1

PHP를 디버깅하는 데 매우 유용한 FirePHP (addon)을 발견했습니다. 헤더가 전송되기 전에 방화 광 콘솔에 메시지, 배열, 변수를 보낼 수 있습니다. 코드 FirePHP 디버깅을 찾고 있다면 당신은 두 번째 줄

$tagarray = wp_get_post_tags($post_id); //returns an array 
$tags = "tag:"; 
if (count($tagarray) > 0){ 
    foreach ($tagarray as $tag){ 
     //$tags .= "mytag "; // This line works when quotes are removed. 
     $tags .= strval($tag); //This will work Changed = to .= 
    } 
} 

에 연산자 (.) concatation을 놓친 때문에 작동하지 않고

0

또한 당신이 어떤 PHP IDE를 사용할 수있는 좋은 도구입니다 Eclipse와 같은 디버깅 기능이 내장되어 있습니다.

그리고 출력 브라우저에 디버깅 정보의 모든 종류는,이, 또는 이와 유사한하지 않을 것이기 때문에 워드 프레스에 당신은 디버깅에 WP-Debug Plugin

+0

나는 의도적으로 "." 내 코드를 단순화하기 위해. 기쁨이 없습니다. : ( – Neo

+0

WP-Debug 버전은 최신 버전의 WP에서 작동하며, 2007 년에 마지막으로 업데이트되었습니다. – Neo

0

를 사용할 수 있습니다

$logger = fopen('debug.log','a'); 
fwrite($logger,"Begin Debug - " . time() . "\n------------\n"); 
$tagarray = wp_get_post_tags($post_id); //returns an array 
$tags = "tag:"; 
if (count($tagarray) > 0){ 
    foreach ($tagarray as $tag){ 
     //$tags .= "mytag "; // This line works when quotes are removed. 
     //$tags = strval($tag); //This doesn't. 
     fwrite($logger,$tag . "\n"); 
    } 
} 
fwrite($logger,$tags . "\n"); 
fwrite($logger,print_r($tagarray) . "\n"); 
fwrite($logger,"----------\n End Debug \n\n"); 
fclose($logger); 
1

을 내가 그렇게, 수정없이 을 코드에 중단 점을 설정할 수 있습니다 PhpED 를 사용하는 PHP 디버깅 코드에 에코를 남길 기회는 없습니다.