Поддержка Проблемы и решения Создание страницы через FTP

  • Немного необычная стоит постановка задачи.

    Необходимо создать страницу в папке текущей темы, к примеру с именем test.php
    И она была доступна в браузере по адресу: sait.ru/wp-content/themes/name-tema/test.php, так чтоб внешний вид страницы был стандартный «Базовый шаблон» (page.php)

    Для создания этой видимой страницы в браузере, желательно без захода в админку и добавления контента этой страницы в БД.

Просмотр 15 ответов — с 1 по 15 (всего 21)
  • И что мешает?

    Автор Egor2015

    (@egor2015)

    Внешний вид не могу оформить, как у этой темы.
    Контент страницы видно пока, я не пытаюсь присоединить get_header и get_footer

    <?php get_header(); ?>
    		<div>Текст тестовой страницы</div>
    <?php get_footer(); ?>

    Контент страницы видно пока, я не пытаюсь присоединить get_header и get_footer

    А с чего что-то должно быть видно, если вы обращаетесь к файлу в обход движка ВП?

    Автор Egor2015

    (@egor2015)

    Это я понял в обход CMS получается, как прописать и где, чтоб можно было использовать внешний вид стандартной страницы? Дописываем, я так понимаю в functions.php

    откуда ваш test.php узнает о functions.php и что с ним нужно делать?
    Нет, пишите все внутри своего файла, используя только чистый РНР

    Скопируйте тогда не php, а html с рабочей страницы.

    Автор Egor2015

    (@egor2015)

    Что писать-то в test.php я поэтому и спрашиваю здесь…

    1. Хотя бы шапку увидеть, так результат чистая страница
    Щас в коде test.php:

    <? include('header.php'); ?>
    	<div>Текст тестовой страницы</div>

    2. Или вместо 1 строки, беру весь код header.php и вставляю, тоже самое…

    3. Так тоже нет результата:

    <?php
    /**
     * The template for displaying all pages.
     *
     * @package Betheme
     * @author Muffin group
     * @link https://muffingroup.com
     */
    
    get_header();
    ?>
    <div>Текст на тестовой странице</div>
    

    Скопируйте html с рабочей страницы. — Я так понял исходный код страницы в браузере, это уже не интересно, так может любой.

    • Ответ изменён 12 месяцев назад пользователем Egor2015.
    • Ответ изменён 12 месяцев назад пользователем Egor2015.
    Автор Egor2015

    (@egor2015)

    Друзья, я не же прошу, чтоб моя страница влазила в БД, просто нужна оболочка стандартной страницы вокруг моего контента и все. Помогите кодом

    исходный код страницы в браузере, это уже не интересно, так может любой.

    Нормальные герои всегда идут в обход? -)))

    Модератор Yui

    (@fierevere)

    ゆい

    Лучше использовать штатные механизмы
    Post by Email
    или REST API или XML-RPC

    есть мобильные приложения и для десктопа
    см https://ru.wordpress.org/support/article/weblog-client/

    Модератор Юрий

    (@yube)

    И она была доступна в браузере по адресу: sait.ru/wp-content/themes/name-tema/test.php,

    Это абсолютно неправильно. Всё должно ходить через движок. Создается именованный шаблон страницы, затем создается страница с этим шаблоном. Адрес страницы «выдает» движок, по нему страницу и надо открывать.

    Если очень хочется сделать неправильно, то можно попробовать в phpшнике (рука не поднимается назвать это шаблоном) перед get_header() подключить движок как-то так:

    require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );
    
    Автор Egor2015

    (@egor2015)

    Юрий, я уже хотел вам лично писать (помогали мне ранее), чтоб тему посмотрели…

    wp-load.php — Это в коде сработало, появилась шапка, только выше идет на сайте главное меню, как его добавить и футер?

    Скажите, а первоначальная цель всего этого мазохизма какая?

    Модератор Юрий

    (@yube)

    выше идет на сайте главное меню, как его добавить

    Так же, как оно выводится в шаблонах. Мне отсюда не видно 🙂

    и футер?

    Так же, как и в шаблонах:

    <?php get_footer(); ?>
    

    Добрый день!

    Если я правильно понял, вы хотите создать произвольный адрес и подгрузить по этому адресу произвольный шаблон. Это возможно, но нужно делать «с другого конца». Не движок подключать к файлу, а файл к движку.

    Сначала нужно зарегистрировать новый адрес URL с помощью функции add_rewrite_endpoint(), чтобы движок его обрабатывал. Вот документация. Для регистрации адреса в файле functions.php (а лучше в отдельном плагине) пишем нечто наподобие этого:

    function add_mypage_endpoint(){
    	add_rewrite_endpoint( 'mypage', EP_ROOT );
    }
    add_action( 'init', 'add_mypage_endpoint' );

    Здесь мы задаём новый ярлык (/mypage/) который будет добавляться к корню сайта (EP_ROOT). Получится site.ru/mypage/. После этого нужно обязательно обновить ЧПУ сайта, чтобы ссылка начала открываться. Обычно это делается просто в админке, но при ваших условиях придётся делать программно, вызывая функцию flush_rewrite_rules.

    В результате движок сможет обрабатывать этот новый адрес, не вываливаясь в ошибку 404. По умолчанию, эта новая ссылка открывает не что иное, как главную страницу. Поэтому открыв её, вы увидите шаблон index.php или front-page.php. Чтобы подтянуть другой шаблон, нужно в начале шаблона главной страницы сделать проверку, что-то типа:

    // Проверяем, содержит ли запрашиваемый адрес «добавочную» часть '/mypage/'
    if( isset($wp_query->query['mypage']) && $wp_query->is_main_query() ) {
    
        // Если содержит, ищем в папке с темой шаблон 'mypage.php' и подгружаем его
        if ( $mypage_custom_template = locate_template('mypage.php') ) {
            load_template( $mypage_custom_template );
        }
    } else {
        // Выводим обычный шаблон главной страницы.
    }

    Таким образом при открытии адреса /mypage/ будет подгружаться шаблон mypage.php. При желании можно сразу вывести стандартный шаблон страницы или любой другой.

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

    Успехов!

Просмотр 15 ответов — с 1 по 15 (всего 21)
  • Тема «Создание страницы через FTP» закрыта для новых ответов.