워드 프레스 테마를 활성화하면, 어떤 파일을 변경해야하는지 알아내는 것이 항상 번거 롭습니다. 일을 단순화하는 방법에 대한 아이디어가 있습니까?
그러나 get_template_part 기능을 고려하면 불가능할 수도 있습니다. 당신은 무엇을 말합니까?
워드 프레스 테마를 활성화하면, 어떤 파일을 변경해야하는지 알아내는 것이 항상 번거 롭습니다. 일을 단순화하는 방법에 대한 아이디어가 있습니까?
그러나 get_template_part 기능을 고려하면 불가능할 수도 있습니다. 당신은 무엇을 말합니까?
답변:
에 연결 template_include
하고 테마로 설정된 템플릿을 기록하도록 전역을 설정 한 다음 해당 값을 바닥 글이나 머리글로 다시 읽어 특정보기에 어떤 템플릿이 호출되는지 확인합니다.
현재 템플릿 파일의 이름 가져 오기 에서이 필터 후크에 대해 이야기 했지만 해당 코드 의 사본을 가져 와서 테마 functions.php
파일 로 복사 하십시오.
그런 다음 열 테마의 header.php
나 footer.php
(또는 당신이 좋아하는 곳)와 현재 서식 파일을 인쇄하려면 다음과 같은 것을 사용합니다.
<div><strong>Current template:</strong> <?php get_current_template( true ); ?></div>
프로덕션 사이트에서이 정보를 사용하고 해당 정보를 관리자가 아닌 사용자로부터 멀리 두려면 약간의 조건부 논리를 추가하십시오.
<?php
// If the current user can manage options(ie. an admin)
if( current_user_can( 'manage_options' ) )
// Print the saved global
printf( '<div><strong>Current template:</strong> %s</div>', get_current_template() );
?>
이제 방문자로부터 정보를 멀리 유지하면서 어떤 템플릿을 사용하고있는 조회수를 추적 할 수 있습니다.
get_page_template
글쎄, 현재 페이지를 생성하는 데 사용 된 템플릿 파일을 확인하는 것이라면 코드로 손을 더럽힐 필요가 없습니다.)
이 편리한 플러그인 인 Debug Bar가 있습니다. 그것은 당신을 포함한 많은 상황에서 훌륭한 도우미입니다. 당신은 확실히 그것을 확인해야합니다-저와 다른 많은 사람들에게 그것은 모든 WP 개발을위한 필수 동반자입니다.
사랑에 빠질 수있는 스크린 샷을 첨부했습니다 ...
디버그 표시 줄이 작동 하게하려면 wp_debug
및 wp_savequeries
옵션 을 활성화해야합니다 . 이 옵션은 기본적으로 비활성화 상태입니다.
그래도 변경하기 전에 명심해야 할 몇 가지 사항이 있습니다.
변경하려면 다음을 수행하십시오.
wp_config.php
ftp 클라이언트를 통해 파일을 엽니 다 .wp_debug
옵션을 검색하십시오 . 로 수정하십시오 define( 'WP_DEBUG', true );
. 줄이 없으면 파일에 추가하십시오.define( 'SAVEQUERIES', true );
파일을 편집하거나 줄 을 추가 하십시오.더 많은 정보 : Codex
WP_DEBUG
하고 SAVEQUERIES
이되지만, 강화 된 그들에 의해.
최고 관리자에게만 현재 템플릿을 표시하는이 편리한 기능을 사용합니다.
function show_template() {
if( is_super_admin() ){
global $template;
print_r($template);
}
}
add_action('wp_footer', 'show_template');
희망이 도움이됩니다. :)
내가 찾은 가장 쉬운 방법은 bodyPress에 WordPress 기능을 포함시키는 것입니다. 보고있는 페이지 (전면의 홈, 페이지의 페이지 등)에 따라 여러 클래스가 추가됩니다.
여기에서 확인하십시오 : http://codex.wordpress.org/Function_Reference/body_class
또한 해당 페이지에서 CSS를 사용하여 요소를 타겟팅하는 데 도움이됩니다.
David R이 언급 한 템플릿 계층 구조 (http://codex.wordpress.org/Template_Hierarchy)를 아는 것도 좋은 생각입니다.
이 목적을 위해 특별히 또 다른 베어 본 플러그인이 있습니다. 다른 기능이 유용하게 보이기 때문에 디버그 표시 줄을 설치하려고합니다.하지만이 기능은 더 기본적이고 구체적 으로이 목적을 위해 사용됩니다 : http://wordpress.org/extend/plugins/what-the-file/
내가하는 매우 간단한 일은 테마의 각 관련 파일에 템플릿 파일을 식별하는 HTML 주석을 삽입하는 것입니다 (예 : index.php의 상단에 있음)
<!-- index -->
그리고 front-page.php의 상단에
<!-- front -->
그러나 분명히 테마를 수정해야합니다. footer.php 파일 또는 header.php에 사용자 정의 함수를 추가하여 어떤 파일이 사용되고 있는지 알 수 있다고 생각합니다. 위의 방법과 참조 차트 http://codex.wordpress.org/Template_Hierarchy 는 내가 사용하는 경향이 있습니다.
정확하게 수행하는 Theme Check 라는 플러그인 이 있습니다. HTML 주석으로 사용중인 현재 템플릿 파일의 이름을 표시합니다.
여기 있습니다 :
플러그인, 하위 테마 및 / 또는 상위 테마 조합의 모든 템플릿 부분을 포함 하여 현재 랜딩 페이지에 사용중인 모든 템플릿 파일이 포함 된 HTML 목록은 모두 한 줄의 코드로 표시됩니다.
echo '<ul><li>'.implode('</li><li>', str_replace(str_replace('\\', '/', ABSPATH).'wp-content/', '', array_slice(str_replace('\\', '/', get_included_files()), (array_search(str_replace('\\', '/', ABSPATH).'wp-includes/template-loader.php', str_replace('\\', '/', get_included_files())) + 1)))).'</li></ul>';
서버 가 경로에 더빙 슬래시를 반환하지 않는지 확인 해야 할 수도 있습니다 . footer.php에서와 같이 모든 템플릿 파일이 실제로 사용 된 후 관리자 막대가 렌더링되기 전에이를 배치해야합니다 .
경우 admin-bar stuff
경로는 정상, 또는 다른 파일에 표시되고, 파일 이름을 변경 template-loader.php
하면에서 휴식 할 필요가 무엇 filname : 코드 줄에. 자주:class-wp-admin-bar.php
관리자 표시 줄에서이 옵션이 필요한 경우 올바른 목록 (가장 빠른 시간) 을 사용 하여이 목록 의 끝에 파일이 입력되지 않도록 하십시오. 예를 들면 다음과 같습니다.
add_action('admin_bar_menu', 'my_adminbar_template_monitor', -5);
우선 -5
로드해야합니다. 열쇠는 get_included_files()
적절한 순간 에 전화 하는 것입니다. 그렇지 않으면 일부 어레이 팝핑이 필요합니다!
이것을 해체하려면 :
당신은 할 수없는 PHP 역 추적없이 포함 된 모든 템플릿 파일을 수집합니다. 내부의 슈퍼 글로벌 template_include
은 그것들을 모두 모으지 않을 것 입니다. 다른 방법은 각 템플릿 파일에 "마커를 배치"하는 것입니다. 그러나 먼저 파일과 상호 작용해야하는 경우 시간과 전체 아이디어로 혼란을 겪습니다.
1) 현재 Wordpress 요청에 사용 된 모든 파일을 확인해야합니다. 그리고 그들은 많다! functions.php를 등록하기 전에 300 개의 파일을 사용하는 경우 놀라지 마십시오.
$included_files = str_replace('\\', '/', get_included_files());
PHP 네이티브 get_included_files ()를 사용하여 대부분의 Wordpress 반환 경로와 일치하도록 백 슬래시를 슬래시로 변환합니다.
2) template-loader.php가 등록 된 곳에서 해당 배열을 자릅니다. 그런 다음 채워진 get_included_files ()에는 템플리트 파일 만 채워 져야합니다.
/* The magic point, we need to find its position in the array */
$path = str_replace('\\', '/', ABSPATH);
$key = $path.'wp-includes/template-loader.php';
$offset = array_search($key, $included_files);
/* Get rid of the magic point itself in the new created array */
$offset = ($offset + 1);
$output = array_slice($included_files, $offset);
3) 결과를 줄이면 사용중인 템플릿 이 플러그인, 테마 또는 하위 테마 폴더에서 혼합 될 수 있으므로 테마 폴더 또는 플러그인 폴더까지 경로가 필요하지 않습니다.
$replacement = $path.'wp-content/';
$output = str_replace($replacement, '', $output);
4) 마지막으로 배열에서 멋진 HTML 목록으로 변환하십시오.
$output = '<ul><li>'.implode('</li><li>', $output).'</li></ul>';
마지막 수정이 필요할 수 있습니다 파트 3)에 -replacement , 당신이 경우 그나마 원하는 요구가 포함 플러그인에 의해. class-files
템플릿 출력 처리 중에 늦게 호출 하고 "절편" 할 수 있습니다 .
그러나, 이 단계에서 출력을 렌더링하는 "템플릿"이 아니더라도 로드 된 내용을 추적하는 것이기 때문에 그것들을 보이게하는 것이 합리적이라는 것을 알았습니다 .