Как получить путь к текущей теме?
2 ответ
- голосов
-
- 2012-04-05
Я думаю,вам нужно быть немного осторожным,потому что это зависит от того,что вы пытаетесь сделать.
Если вы используете дочернюю тему,
get_template_directory();
все равно перейдет к родительской теме. Однакоget_stylesheet_directory();
перейдет к текущей теме,дочерней или родительской. Кроме того,обе эти функции возвращают абсолютные пути к серверу.Если вам нужен полностью сформированный URI для ссылок или изображений,вы должны использовать
get_template_directory_uri();
илиget_stylesheet_directory_uri();
,используя правильный по указанным причинам .Резюме
-
get_stylesheet_directory()
: путь к файлу в текущем каталоге тем. -
get_stylesheet_directory_uri()
: URL-адрес текущего каталога тем. -
get_template_directory()
: путь к файлу в родительском каталоге тем -
get_template_directory_uri()
: URL-адрес родительского каталога тем.
I think you have to be a little careful because it depends on what you are trying to do.
If you are using a child theme
get_template_directory();
will still go to the parent theme. Howeverget_stylesheet_directory();
will go to the current theme, child or parent. Also, both these functions return absolute server paths.If you wanted a fully formed URI, for links or images, you should use
get_template_directory_uri();
orget_stylesheet_directory_uri();
using the correct one for the reasons stated.Summary
get_stylesheet_directory()
: file path to current Theme directoryget_stylesheet_directory_uri()
: url path to current Theme directoryget_template_directory()
: file path to parent Theme directoryget_template_directory_uri()
: url path to parent Theme directory
-
+1.* Всегда * используйте путь к файлу/url таблицы стилей для ссылки на * текущую * тему и зарезервируйте путь к файлу/url шаблона для ссылки на * родительскую тему.+1. *Always* use `stylesheet` filepath/url to reference the *current* Theme, and reserve `template` filepath/url to reference the *parent* Theme.
- 3
- 2012-04-05
- Chip Bennett
-
К сожалению,get_template_directory () возвращает весь путь к серверу,например `/var/www/the/path/of/actual/wp-content/themes/mytheme`,что вам не подходит для работы с $ wp_filesystem,если WP подключается через FTP..Unfortunately get_template_directory() returns the entire server path like `/var/www/the/path/of/actual/wp-content/themes/mytheme` which is not what you want for doing stuff with $wp_filesystem if WP is connecting through FTP.
- 0
- 2014-09-11
- NoBugs
-
@NoBugs - я тоже получал весь путь к серверу,но использованиеget_stylesheet_directory_uri () вместоget_stylesheet_directory () решило проблему.@NoBugs - I was getting the entire server path as well but using get_stylesheet_directory_uri() instead of get_stylesheet_directory() solved the issue.
- 0
- 2015-02-04
- TheLibzter
-
Спасибо!большинство ответов,которые я нашел,помогли мне частично пройти путь с помощьюget_stylesheet_directory (),но затем я остался в корневом каталоге моего сервера.get_stylesheet_directory_uri () был ответом на мои молитвы!Thank you! most answers i found got me part of the way there with using get_stylesheet_directory() but then I was left in the root directory of my server. get_stylesheet_directory_uri() was the answer to my prayers!
- 0
- 2020-08-07
- sigmapi13
-
- 2012-04-05
get_stylesheet_directory_uri
- это то,что вам нужно. он возвращает URL-адрес текущей темы.get_stylesheet_directory
вернет путь к файлу на сервере.Например:
<img src="<?php echo get_stylesheet_directory_uri(); ?>/assets/image.png" />
Если вам нужна родительская тема,
get_template_directory
иget_template_directory_uri
являются эквивалентами.Если родительской темы нет,обе вернут одно и то же значение.
Дополнительная литература:
-
get_stylesheet_directory
- абсолютный путь к папке текущей темы
- например
/var/www/yoursite/wp-content/themes/child_theme
-
get_template_directory
- абсолютный путь к папке родительской темы
- например
/var/www/yoursite/wp-content/themes/parent_theme
-
get_stylesheet_directory_uri
- полный URL-адрес текущей темы
- например
https://example.com/wp-content/themes/child_theme
-
get_template_directory_uri
- полный URL родительской темы
- например
https://example.com/wp-content/themes/parent_theme
get_stylesheet_directory_uri
is what you want. it returns the URL of the current theme.get_stylesheet_directory
will return the file path on the server.For example:
<img src="<?php echo get_stylesheet_directory_uri(); ?>/assets/image.png" />
If you need the parent theme,
get_template_directory
andget_template_directory_uri
are the equivalents.If there is no parent theme then both will return the same value.
Further reading:
get_stylesheet_directory
- absolute folder path of current theme
- e.g.
/var/www/yoursite/wp-content/themes/child_theme
get_template_directory
- absolute folder path of parent theme
- e.g.
/var/www/yoursite/wp-content/themes/parent_theme
get_stylesheet_directory_uri
- full URL of current theme
- e.g.
https://example.com/wp-content/themes/child_theme
get_template_directory_uri
- full URL of parent theme
- e.g.
https://example.com/wp-content/themes/parent_theme
-
get_stylesheet_directory () - правильный ответ.get_template_directory () будет указывать на родительскую тему,если дочерняя тема используется.`get_stylesheet_directory()` is the correct answer. `get_template_directory()` will point to the parent theme if a child theme is being used.
- 0
- 2020-07-11
- Lucas Bustamante
-
Я скорректировал ответ соответственноI adjusted the answer accordingly
- 0
- 2020-08-25
- Tom J Nowell
Этот код используется для получения каталога текущего подключаемого модуля:
plugin_dir_url( __FILE__ )
.Что мне следует использовать,чтобы получить каталог текущей темы?