PHP에서 테마 URL은 어떻게 얻습니까?
4 대답
- 투표
-
- 2010-08-21
이 함수는 테마 디렉토리 URL을 반환 하므로 다른 함수에서 사용할 수 있습니다.
get_bloginfo('template_directory');
또는이 함수는 테마 디렉토리 URL을 브라우저에 반향 합니다.
bloginfo('template_directory');
따라서 테마
images/headers
폴더에있는 이미지의 예는 다음과 같습니다.<img src="<?php bloginfo('template_directory'); ?>/images/headers/image.jpg" />
This function will return the theme directory URL so you can use it in other functions:
get_bloginfo('template_directory');
Alternatively, this function will echo the theme directory URL to the browser:
bloginfo('template_directory');
So an example for an image in the themes
images/headers
folder would be:<img src="<?php bloginfo('template_directory'); ?>/images/headers/image.jpg" />
-
참고 : 활성 하위 테마가 아닌 현재 하위 테마를 사용중인 경우 *parent * 테마에 대한 경로를 제공합니다.아래에 더 긴 답변이 더 자세히 설명되어 있습니다.NOTE: this will give you the path to the *parent* theme if you are currently using a child theme, and not the active child theme. A longer answer below explains this in more detail.
- 0
- 2016-10-19
- Jason
-
간단히`get_template_directory_uri ()`를 사용할 수 있습니다.You can simply use `get_template_directory_uri()`
- 2
- 2018-06-20
- Pei
-
- 2010-08-21
@EAMann 이 말한 내용 (주의 사항). Eric은 일반적인 접근 방식과
bloginfo ()
및get_bloginfo ()
함수의 작동 방식 및 매개 변수'template_directory'
전달 방법에 대해 옳습니다. (대부분의) 테마에 필요한 가치를 얻으려면하지만주의 할 점이 있으며 주의 사항 은 최신 하위 테마 에 있습니다. 하위 테마를 사용하는 경우 실제로 상위 테마 디렉토리에있는 이미지를 참조하려고하지 않는 한
<인용구>'template_directory'
는 아마도 원하는 것이 아닐 것입니다. 대신에 당신이 원하는 것은stylesheet_directory
를 전달하는 것입니다. (알아요,저도 알고 있습니다. 이름은 그들이 무엇인지 알려주지 않지만 헤이,그것이 바로 그 방법입니다!)stylesheet_directory
를 사용하는 Eric의 답장은 다음과 같습니다 (예를 래핑하지 않도록 줄였습니다).& lt;img src="& lt;?phpbloginfo ( 'stylesheet_directory');? >/images/header.jpg"/>
빠른 독립 실행 형 파일을 작성한 요점을 설명하기 위해 웹 사이트의 루트에
test.php
를 입력하고 실행하여 출력 내용을 확인할 수 있습니다. 먼저 TwentyTen과 같은 일반 테마로 실행 한 다음 하위 테마로 실행 :& lt;?php /* *test.php-일반 테마와 하위 테마의 차이점 테스트 * */ "wp-load.php"포함; $bloginfo_params=배열 ( 'admin_email', 'atom_url', '문자셋', 'comments_atom_url', 'comments_rss2_url', '기술', '집', 'html_type', '언어', '이름', 'pingback_url', 'rdf_url', 'rss2_url', 'rss_url', 'siteurl', 'stylesheet_directory', 'stylesheet_url', '템플릿 _ 디렉터리', '템플릿 _URL', '텍스트 _ 방향', 'URL', '버전', 'wpurl', ); echo '& lt;tableborder="1">'; foreach ($bloginfo_params as $param) { $info=get_bloginfo ($param); echo "& lt;tr > & lt;th > {$param} : & lt;/th > & lt;td > {$info} & lt;/td > & lt;/tr >"; } echo '& lt;/table >';
알면
bloginfo ()
및get_bloginfo ()
에 전달할 수있는 항목이 훨씬 더 많다는 것을 알 수 있습니다. 아이디어를 얻으려면 아래 코드와 스크린 샷을 살펴보십시오.스크린 샷을 보면
stylesheet_directory
가 일반 테마에 대해'template_directory'
와 동일한 값을 반환하지만 다른 값을 반환한다는 것을 알 수 있습니다. 어린이 테마
(출처 : mikeschinkel.com )이 스크린 샷의 명확성을 위해
wp30.dev
는 내 로컬 컴퓨터에서. 현재 WordPress 3.0.1 인스턴스 및127.0.0.1
에서 구성됩니다 (localhost
)를 내 노트북에서 사용하고 있습니다. 이와 같은 임시 예제를 테스트하기 위해. Mac OS X에서 편리하게 VirtualHostX 를 사용하여 라우팅 할 수없는 개인.dev
도메인이지만 누구나 수동으로 할 수 있습니다. 컴퓨터의 호스트 파일을 편집하고 ? httpd.conf 파일.그런데 도움이 될만한 다른 두 개의 WordPress 답변이있는 하위 테마 에 익숙하지 않은 경우 :
What @EAMann said, with a caveat. Eric is right about the general approach and how the functions
bloginfo()
andget_bloginfo()
work and about how to pass the parameter'template_directory'
to get the value you need for (most) themes.However there is a caveat and that caveat is with the newer Child Themes. If you are using a child theme then
'template_directory'
is probably not what you want unless you are actually trying to refer to an image that is in the parent theme directory. Instead for child themes what you probably want is to passstylesheet_directory
(I know, I know, the names don't tell you what they are but hey, that's just the way it is!) Borrowing somewhat from Eric's reply usingstylesheet_directory
would look like this (I shortened the example so it would not wrap):<img src="<?php bloginfo('stylesheet_directory'); ?>/images/header.jpg" />
To illustrate the point I wrote a quick standalone file you can drop in your website's root as
test.php
and run to see what it outputs. First run with a regular theme like TwentyTen then run with a child theme:<?php /* * test.php - Test the difference between Regular and Child Themes * */ include "wp-load.php"; $bloginfo_params = array( 'admin_email', 'atom_url', 'charset', 'comments_atom_url', 'comments_rss2_url', 'description', 'home', 'html_type', 'language', 'name', 'pingback_url', 'rdf_url', 'rss2_url', 'rss_url', 'siteurl', 'stylesheet_directory', 'stylesheet_url', 'template_directory', 'template_url', 'text_direction', 'url', 'version', 'wpurl', ); echo '<table border="1">'; foreach($bloginfo_params as $param) { $info = get_bloginfo($param); echo "<tr><th>{$param}:</th><td>{$info}</td></tr>"; } echo '</table>';
If you notice things you might notice that there's a lot more to what you can pass to
bloginfo()
andget_bloginfo()
; study the code and the screenshot below for ideas.Looking at the screenshot you can see that
stylesheet_directory
returns the same thing as'template_directory'
for a regular theme but a different value, and probably the value you need for a child theme.
(source: mikeschinkel.com)For clarity on this screenshot,
wp30.dev
is a domain that runs only on my local computer. It is currently an instance of WordPress 3.0.1 and it is configured at127.0.0.1
(same aslocalhost
) on my laptop and I use it for testing ad-hoc examples like this. I used VirtualHostX as a convenience on the Mac OS X to help me set up those private non-routable.dev
domains but anyone can do it manually by editing the computer's hosts file and the ? httpd.conf file.By the way, in case you are not familiar with Child Themes where are two other WordPress Answers that might help:
-
와,좋은 대답입니다.지금 작업중인 테마에 게으르고 자식 테마를 설정하지 않았는데 앞으로는 큰 도움이 될 것입니다.대본도 축하합니다.잘 코딩되었습니다.감사!Wow, great answer. I was lazy with the theme I'm working on now and didn't set up a child theme, but this will be very helpful in the future. Congratulations on that script too. Well-coded. Thanks!
- 0
- 2010-08-21
- Michael Crenshaw
-
안녕하세요,좋은 답변입니다!저는 보통`get_stylesheet_directory_uri ()`를 사용합니다.일반 ol '`get_stylesheet_directory ()`를 사용해야합니까?Hi, nice answer! I usually use `get_stylesheet_directory_uri()`. Should I be using plain ol' `get_stylesheet_directory()`?
- 0
- 2012-01-18
- djb
-
- 2012-03-26
테마의 전체 구조는
템플릿
(상위 테마 폴더 이름 포함) 및스타일 시트
(하위 테마 폴더namr 포함)의 두 가지 옵션 위에 구축됩니다. 사용 된 하위 테마가없는 경우 동일합니다.옵션에 직접 액세스하는 대신 필터의 유연성을 갖기 위해
get_template ()
및get_stylesheet ()
.이제 빠진 유일한 것은 테마 폴더 위치와 결합하는 것입니다.
get_theme_root_uri ()
를 사용하여이 작업을 수행 할 수 있으며 다시get_template_directory_uri ()
및 < code>get_stylesheet_directory_uri () .template_directory
가있는[get_]bloginfo ()
또는stylesheet_directory
인수는 단순히 이들을 래핑하며 그렇게 사용할 이유가 거의 없습니다. 디렉토리 (일반적으로 로컬 경로와 관련이 있음)라는 인수가 있지만 URL을 반환하는 것은 혼란 스러울뿐입니다.요약 :
- 전용 또는 상위 테마를 참조하려면
get_template_directory_uri ()
를 사용합니다. - 전용 또는 하위 테마에
get_stylesheet_directory_uri ()
사용
The whole structure of theme builds on top of two options -
template
(holding parent theme folder namre) andstylesheet
(holding child theme folder namr). If there is no child theme used these are the same.To have flexibility of filters, rather than access option directly, there are accordingly
get_template()
andget_stylesheet()
.Now the only thing is missing is to combine those with themes folder location. This can be done with
get_theme_root_uri()
and again conveniently wrapped inget_template_directory_uri()
andget_stylesheet_directory_uri()
.[get_]bloginfo()
withtemplate_directory
orstylesheet_directory
arguments merely wraps these and there is little reason to use it like that. I'd say it is only confusing by having argument saying directory (commonly relates to local paths), but returning URLs.Sumary:
- use
get_template_directory_uri()
to refer to only or parent theme - use
get_stylesheet_directory_uri()
to only or child theme
-
-
이것이 다른 솔루션보다 나은 이유에 대한 설명이 없습니까?No explanation why this is better than the other solutions?
- 1
- 2012-11-05
- fuxia
-
테마의 이미지/헤더 디렉토리에있는 이미지를 참조하려면 테마 디렉토리의 URL을 가져와야합니다.PHP에서 어떻게 이루어 지나요?