get_template_directory_url() не работает ни на одной странице, кроме index.php

avatar
santi
1 июля 2021 в 16:16
177
1
-1

В настоящее время я пытаюсь преобразовать веб-сайт html в веб-сайт WordPress; в настоящее время возникла проблема с функцией get_template_directory_url(), которая будет работать на странице index.php, но по какой-то причине выдает фатальную ошибку на других страницах .php.

Это код:

<link href="<?php echo get_template_directory_uri(); ?>/css/style.css" rel="stylesheet">

Это ошибка:

<b>Fatal error</b>:  Uncaught Error: Call to undefined function get_template_directory_uri() in C:\xampp\htdocs\wp-content\themes\EdinsVerbouw\projecten.php:35
Stack trace:
#0 {main}
  thrown in <b>C:\xampp\htdocs\wp-content\themes\EdinsVerbouw\projecten.php</b> on line <b>35</b><br />
Источник
Mihail Minkov
1 июля 2021 в 16:17
0

Вы уверены, что файл wp-functions.php включен или?

santi
1 июля 2021 в 17:03
0

@MihailMinkov Да, это образец файла functions.php из шаблона темы WordPress.

Mihail Minkov
1 июля 2021 в 17:04
0

Ну, дело в том, что Wordpress всегда использует index.php в качестве базового файла, а потом включает все подряд. Ваши постоянные ссылки работают нормально или есть проблемы с файлом .htaccess?

Mihail Minkov
1 июля 2021 в 17:16
0

Вот что я имею в виду, ваш основной файл Wordpress - index.php, все остальное проходит через него и все загружается через него, поэтому, если вы попытаетесь открыть что-то внутреннее, вы получите этот тип ошибок. По какому URL вы пытаетесь получить доступ?

santi
1 июля 2021 в 17:18
0

@MihailMinkov, это еще одна страница .php в том же каталоге.

santi
1 июля 2021 в 17:19
0

@MihailMinkov, и когда я захожу на страницу, она вылетает, если указанный код включен; если я удалю эту строку кода, страница загрузится;

santi
1 июля 2021 в 17:20
0

@MihailMinkov также пытался использовать связанные функции.

Ответы (1)

avatar
Mihail Minkov
1 июля 2021 в 17:24
0

Хорошо, взяв за основу мои комментарии выше и исходя из того, что вы пытаетесь сделать, я думаю, вы упускаете из виду суть. Как я объяснял ранее, ваш основной файл Wordpress — /index.php. Что это значит?

Это означает, что при открытии:

  • yourwordpresssite.com/
  • yourwordpresssite.com/about
  • yourwordpresssite.com/contact

Каждый из этих вызовов направляется на /index.php с определенными параметрами, такими как имя раздела или какой-либо другой параметр URL. Как это работает, можно настроить через /wp-admin/options-permalink.php в админке Wordpress.

Если вы попытаетесь открыть что-то вроде

  • yourwordpresssite.com/testfile.php

Это полностью независимый файл, в котором вам придется воспроизвести способ работы /index.php, а Wordpress для этого не предназначен.

Я думаю, что вы пытаетесь получить прямой доступ к файлам своей темы, но это не работает таким образом, вам нужно включить тему от администратора и работать соответственно.

Я рекомендую вам ознакомиться с Документацией Wordpress по разработке тем

santi
1 июля 2021 в 17:37
0

Если я правильно понимаю, нет способа просто связать страницы (как это делается с обычной html-структурой) в каталоге (темы)? Должна ли быть папка темы для каждой (под)страницы?

Mihail Minkov
1 июля 2021 в 18:37
0

Нет, вы должны подготовить разные типы шаблонов для разных типов сообщений, будь то шаблон сообщений, шаблон одного сообщения, шаблон страницы и т. д. А затем в своем администраторе Wordpress вы просто создаете страницу, используя шаблон темы. Он предназначен для создания многоразовых шаблонов для различных вариантов использования, вы не создаете свое меню в своей теме, если только не хотите, чтобы оно было исправлено для этого конкретного сайта и не могло быть воспроизведено. Вы можете сделать это, но ваши страницы и все остальное должны быть созданы в Wordpress.

santi
1 июля 2021 в 19:00
0

Тогда я знаю, что мне нужно делать; большое спасибо за ваше время :) ценю это

Mihail Minkov
1 июля 2021 в 23:56
0

Вы можете принять ответ или проголосовать за него, если он работает для вас :)

santi
2 июля 2021 в 11:06
0

Я сделал, что в конечном итоге сработало, так это просто прочитал всю файловую иерархию WordPress и выяснил, какие файлы ищет движок (изменил projecten.php на page-projecten.php и использовал echo get_site_url() 'path/to/file/ file.php», который исправил это), но лучше понял wp в целом.

Mihail Minkov
3 июля 2021 в 02:28
0

Рад, что вы смогли решить эту проблему, Wordpress может быть занозой в заднице: D