Как добавить файл .php в WordPress

22 янв. 2012 г., 19:43:06
Просмотры: 60.8K
Голосов: 8

У меня есть php файл на сервере (например, www.example.com/up/up.php). Когда я пытаюсь получить доступ к этому файлу через URL, мой сайт говорит, что страница не найдена. Но мне нужно вызвать этот php файл, используя параметр URL. Я хочу вызвать этот файл для загрузки файла, используя доступ по URL (например, www.example.com/up/up.php?f=207). Может кто-нибудь помочь мне с этим. Как обычно, я искал решение своей проблемы несколько дней и пришел сюда, когда окончательно зашел в тупик.

Мой файл up.php содержит следующий код

<?php /* Название шаблона: Upload */ ?>


<?php
  $app_id = "12345678901234567890";
  $app_secret = "12345678901234567890";
  $post_login_url = "www.mysite.com";
  $album_id = "7777";
  $photo_url = "URL";
  $photo_caption = "классные фотки";

  $code = $_REQUEST["code"];

  //Получить access_token с разрешением publish_stream 
  if (!$code){ 
    $dialog_url= "http://www.facebook.com/dialog/oauth?"
      . "client_id=" .  $app_id
      . "&redirect_uri=" . urlencode( $post_login_url)
      .  "&scope=publish_stream";
    echo("<script>top.location.href='" . $dialog_url
      . "'</script>");
  } else {
    $token_url="https://graph.facebook.com/oauth/access_token?"
      . "client_id=" . $app_id
      . "&client_secret=" . $app_secret
      . "&redirect_uri=" . urlencode( $post_login_url)
      . "&code=" . $code;
    $response = file_get_contents($token_url);
    $params = null;
    parse_str($response, $params);
    $access_token = $params['access_token'];

    // POST запрос к конечной точке Graph API для загрузки фотографий
    $graph_url= "https://graph.facebook.com/" 
      . $album_id . "/photos?"
      . "url=" . urlencode($photo_url)
      . "&message=" . urlencode($photo_caption)
      . "&method=POST"
      . "&access_token=" .$access_token;

    echo '<html><body>';
    echo file_get_contents($graph_url);
    echo '</body></html>';
  }
?>

Я должен передать значение в URL, используя ссылку

10
Комментарии

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

Jared Jared
22 янв. 2012 г. 20:05:00

@Jared Я указал полный URL, но получаю ошибку "страница не найдена"... нужно ли добавлять какой-то код в function.php для этого внешнего файла??

Felix Felix
22 янв. 2012 г. 20:23:40

А где вы размещаете файл, в папке вашей активной темы?

Jared Jared
22 янв. 2012 г. 20:25:20

@Jared Я разместил его на своем сервере. www.mysite.com/up/up.php

Felix Felix
22 янв. 2012 г. 20:27:11

Можешь объяснить, что происходит при попытке вызова этого файла?

Jared Jared
22 янв. 2012 г. 21:36:13

@Jared он просто перенаправляет на другую страницу. По задумке он должен загружать файл и затем перенаправлять. Но сейчас происходит только перенаправление.

Felix Felix
22 янв. 2012 г. 22:06:37

Я думаю, это уже другой вопрос, который, вероятно, больше подходит для сообщества StackOverflow, так как он связан с кодом Facebook, а не с WordPress.

Jared Jared
22 янв. 2012 г. 22:17:08

@Jared разместил вопрос на stackoverflow. Мне бы хотелось узнать одно: могу ли я получить доступ к .php файлу (up.php, а не up) из WordPress??? Если смогу, то закончу эту работу сам.

Felix Felix
22 янв. 2012 г. 22:24:29

Ну, я думаю, это будет работать так же, даже если у вас есть расширение .php. Возможно, это конфликт с вашими правилами перезаписи (rewrite rules), потому что у меня никогда не было проблем с доступом к PHP-файлу внутри WordPress, используя путь к файлу.

Jared Jared
22 янв. 2012 г. 22:34:32

@Jared Но я видел сайты, которые используют расширение .php для этой работы, и они передают значение через URL, и это работало. Так что мне тоже нужно создать файл .php и затем передать значение. Можешь помочь??? Я так устал от поисков, потратил целую неделю. У меня есть только время, и я его тоже трачу впустую

Felix Felix
22 янв. 2012 г. 22:41:05
Показать остальные 5 комментариев
Все ответы на вопрос 3
13

Вот что вы можете сделать:

Поместите файл up.php в папку вашей активной темы и добавьте эту строку в начало файла up.php:

<?php /* Template Name: Up */ ?>

Создайте страницу с названием "Up" в панели управления WordPress, затем в правой части экрана редактирования страницы установите шаблон "Up".

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

Для получения дополнительной информации ознакомьтесь с соответствующей страницей WordPress Codex:

http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates

22 янв. 2012 г. 20:32:46
Комментарии

сейчас попробую :)

Felix Felix
22 янв. 2012 г. 20:34:00

@Felix Дай знать, если сработает!

Jared Jared
22 янв. 2012 г. 20:40:02

теперь я могу получить доступ к php-странице, но код не работает. Я использовал этот код в файле темы (single.php), и он работал. но сейчас не работает. нужно ли добавить какой-то дополнительный код для этого??? Кстати, php-файл содержит <?php / Template Name: Up / ?> <?php строки кода ?>

Felix Felix
22 янв. 2012 г. 20:44:18

@Felix Мне нужно увидеть весь файл up.php, чтобы понять, в чём проблема. Можешь обновить свой вопрос, приложив его?

Jared Jared
22 янв. 2012 г. 20:49:20

@Felix Кстати, тогда тебе нужно обращаться к файлу через URL страницы, а не через URL PHP-файла. Например, если slug твоей страницы — up, ты должен использовать его так: http://yoursite.com/up?f=207

Jared Jared
22 янв. 2012 г. 20:52:51

я попробовал указать полный URL в поле dat URL для проверки.так что я не хотел передавать значения. но это всё равно не сработало

Felix Felix
22 янв. 2012 г. 20:59:27

извините, я не знаю, как правильно оформить код :( всё выглядит так неаккуратно

Felix Felix
22 янв. 2012 г. 21:01:21

я попробовал вставить полный URL в поле dat URL просто для проверки, поэтому я не хотел передавать значения. но всё равно не сработало

Felix Felix
22 янв. 2012 г. 21:11:12

@Felix Можешь объяснить, по каким признакам ты определил, что это не работает? Я проверил на localhost, и файл вызывался корректно (но в коде были ошибки).

Jared Jared
22 янв. 2012 г. 21:11:44

Это не будет работать для вас. Это PHP-код для загрузки изображения в профиль пользователя Facebook с сайта после регистрации нашего приложения на FB. Для работы ему нужны apdi-код и секретный код. Я использовал этот код в файле шаблона моей темы (single.php), указав значение URL, и он работал. Но сейчас он не работает, когда я размещаю его отдельно.

Felix Felix
22 янв. 2012 г. 21:14:49

@Felix Возможно, вам нужно включить wp_head() и wp_footer() в ваш файл, попробуйте это и посмотрите, поможет ли.

Jared Jared
22 янв. 2012 г. 21:20:38

:( бесполезно, эти head и footer не помогают

Felix Felix
22 янв. 2012 г. 21:28:04

Этот код всё ещё работает, если я помещаю его в файл шаблона. Проверил уже три раза :( Но не знаю, почему он не работает в up.php Наверное, мне стоит создать отдельный PHP-файл вне WordPress и вызывать его

Felix Felix
22 янв. 2012 г. 21:36:29
Показать остальные 8 комментариев
0

Я нашел способ, который регулярно использую для добавления своего PHP-кода на страницу или запись через использование шорткодов.

Сначала создайте PHP-файл с именем example.php в корневой директории вашей темы.

Напишите в нем что-то вроде:

<?php
echo "Привет! Я PHP-файл в папке шаблона WordPress!";
?>

Теперь добавьте следующий код в ваш functions.php:

function exampleFormInclude()
{
include( 'example.php' );
}
function exampleapp_func() {

ob_start();

exampleFormInclude();

$output = ob_get_contents();;
ob_end_clean();

return $output;
}
add_shortcode( 'exampleapp', 'exampleapp_func' );  

Теперь добавьте шорткод [exampleapp] в вашу страницу или запись.
Готово.

18 июл. 2015 г. 23:27:11
0

1. Создайте страницу custom-page.php и сохраните её в директории вашей темы. Теперь,

добавьте следующую строку в начало страницы:

2.<?php /* Template Name: Пользовательская страница */ ?>

3. Напишите ваш PHP-код под строкой определения пользовательской страницы. Вы можете вызывать другие шаблоны WP и функции внутри этого файла.

Начните с:

4.<?php require_once("header.php");?> или

5. любым другим способом, которым вы интегрируете шапку и подвал для сохранения единого дизайна.

6. Поскольку это пользовательская страница, вам НЕОБХОДИМО СОЗДАТЬ СТРАНИЦУ в панели администратора WordPress. Перейдите: Админка => Страницы => Добавить новую

7. Добавьте заголовок страницы. В зависимости от того, как вы закодировали пользовательскую страницу, вы можете также добавить основной текст (описание). Вы можете полностью пропустить описание, если оно уже написано в пользовательском PHP-файле.

8. С правой стороны выберите Шаблон. Выберите "Моя пользовательская страница" из выпадающего списка. Всё готово! Перейдите по slug (постоянной ссылке), созданной WordPress, и посмотрите страницу.

6 февр. 2019 г. 13:06:33