Предупреждение при использовании <?php include 'thefile.php'; ?>

20 нояб. 2011 г., 06:13:47
Просмотры: 24K
Голосов: 1

Нужна дополнительная помощь с следующим вопросом.

Я задавал вопрос о том, как импортировать код с помощью PHP, в данном случае это сайдбар, который будет использоваться на некоторых страницах сайта. Это WordPress, и он может выполнять PHP из постов/страниц, что я также протестировал непосредственно в основном коде.

Когда я задал вопрос, самым простым решением было создать файл и использовать include.

Я создал thefile.php и поместил его в директорию темы, где находятся все остальные используемые .php файлы. В файле я просто разместил базовый HTML код:

<div id=the-id"> 
      <p> тестовый текст </p>
</div> 

Затем я добавил код include в мой шаблон следующим образом:

<?php include 'thefile.php'; ?>

При этом я вижу мой текст "тестовый текст", но также получаю несколько предупреждений:

Warning: include(/wp-content/themes/thetheme/thefile.php) [function.include]: failed to open stream: No such file or directory in /home/cplac/public_html/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()'d code on line 22

И также это:

Warning: include() [function.include]: Failed opening '/wp-content/themes/thetheme/thefile.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php:/home/cplac/public_html/wp-content/plugins/wpsyndicator:/home/cplac/public_html/wp-content/plugins/wp-external-links/includes/phpQuery/:/home/cplac/public_html/wp-content/plugins/wp-external-links/includes/phpQuery/plugins/') in /home/cplac/public_html/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()'d code on line 22

Кто-нибудь может помочь с этим? Я тестировал как на страницах, так и в файлах темы!

php
0
Все ответы на вопрос 3
1

Метод WordPress для включения php-файлов заключается в использовании этой функции:

<?php get_template_part('myfile'); ?>

Она подключит файл myfile.php, который находится в той же директории шаблона.

Другие параметры смотрите на http://codex.wordpress.org/Function_Reference/get_template_part.

20 нояб. 2011 г. 07:08:59
Комментарии

Учитывая, что автор вопроса (@Mathias) использует WordPress в качестве фреймворка, этот метод действительно будет наилучшим.

Johannes Pille Johannes Pille
20 нояб. 2011 г. 08:32:16
2

Вам необходимо добавить /home/cplac/public_html/ в ваш путь подключения (include path).

20 нояб. 2011 г. 06:19:32
Комментарии

Спасибо, это действительно помогло :D

User User
20 нояб. 2011 г. 06:24:33

@MathiasÅsberg, Вам следует отметить этот ответ как принятый, если он решил вашу проблему. Пожалуйста, ознакомьтесь с FAQ: http://stackoverflow.com/faq

User User
20 нояб. 2011 г. 06:45:39
3

Директива include работает следующим образом:

include = 'thefile.php';

Также необходимо указывать корректный путь к файлу относительно корневого уровня или соседней директории, где расположен файл.

Например, если я помещу файл в папку "images" на сервере, то путь к файлу будет выглядеть как /images/thefile.php

Таким образом, директива include будет выглядеть так:

include = '/images/thefile.php';

Примечание: работа с WordPress иногда может быть сложной... но в целом WP использует PHP, поэтому всё, что работает в PHP, будет работать и в WordPress.

Исходя из вашей ошибки, возможно вам нужно указать путь вида:

include = '/wp-content/themes/thetheme/thefile.php';

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

20 нояб. 2011 г. 06:18:36
Комментарии

1) Синтаксис include корректный без скобок. 2) Относительно чего указан путь "/images"?

User User
20 нояб. 2011 г. 06:20:45

Вы правы.. Просто я привык писать в другом синтаксисе из-за MVC-фреймворков, с которыми работаю в последнее время. А images был просто для примера.. не более того

User User
20 нояб. 2011 г. 06:23:32

Насколько я знаю, это совершенно неверно! Это вызовет синтаксическую ошибку в PHP. include - это ключевое слово, вы не можете присваивать ему значения.

Mike Mike
5 окт. 2018 г. 09:06:54