Как добавить страницу PHP в WordPress?



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



PHP-код будет использовать сторонние API (поэтому мне нужно включить другие PHP-файлы)



Как мне это сделать?



N. B. У меня нет особой необходимости взаимодействовать с API Wordpress-помимо включения некоторых других PHP-библиотек мне нужно, чтобы у меня не было других зависимостей в PHP-коде I хотите включить в страницу WP. Поэтому очевидно, что любое решение, которое не требует изучения WP API, будет лучшим.

968   16  

16 ответов:

вам не нужно взаимодействовать с API или использовать плагин.

во-первых, дублировать post.php или page.php в папке темы (под /wp-content/themes/themename/).

переименовать новый файл как templatename.php (где templatename-это то, что вы хотите назвать своим новым шаблоном). Чтобы добавить новый шаблон в список шаблонов, введите следующее в верхней части файла:

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

вы можете изменить этот файл (с помощью PHP), чтобы включить другие файлы или все, что вы необходимость.

затем создайте новую страницу в своем блоге WordPress, и на экране редактирования страницы вы увидите шаблон ответы атрибуты виджет справа. Выберите новый шаблон и опубликуйте страницу.

Ваша новая страница будет использовать php-код, определенный в templatename.php

источник: https://developer.wordpress.org/themes/template-files-section/page-template-files/#creating-custom-page-templates-for-global-use

если вы хотите создать свой собственный .php файл и взаимодействовать с Wordpress без 404 заголовков и сохраняя текущую структуру permalink нет необходимости в файле шаблона для этой страницы 1, я обнаружил, что этот подход работает лучше всего, в вашем .файл php:

<?php
    require_once(dirname(__FILE__) . '/wp-config.php');
    $wp->init();
    $wp->parse_request();
    $wp->query_posts();
    $wp->register_globals();
    $wp->send_headers();

    // Your Wordpress Functions here...
    echo site_url();
?>

чем вы можете просто выполнять любые функции WordPress после этого. Кроме того, это предполагает, что ваш .php файл находится в корне вашего сайта wordpress, где ваш wp-config.php файл находится.

Это для меня, это бесценное открытие, как я использовал require_once(dirname(__FILE__) . '/wp-blog-header.php'); в течение самого долгого времени, как Wordpress даже говорит вам, что это подход, который вы должны использовать для интеграции функций Wordpress, cept, это вызывает 404 заголовков, что странно, что они хотели бы, чтобы вы использовали этот подход. https://codex.wordpress.org/Integrating_WordPress_with_Your_Website

Я знаю много людей ответили на этот вопрос и у него уже есть принятый ответ, но вот это хороший подход .РНР файл в корне вашего сайта wordpress (или технически в любом месте вашего сайта), который вы можете просматривать и загружать без 404 заголовков!

EDIT

просто быстрое обновление здесь. Есть способ использовать wp-blog-header.php без 404 заголовков, но для этого требуется, чтобы вы добавляли заголовки вручную, что-то вроде этого будет работать в корне вашей установки wordpress:

<?php
    require_once(dirname(__FILE__) . '/wp-blog-header.php');
    header("HTTP/1.1 200 OK");
    header("Status: 200 All rosy");

    // Your Wordpress Functions here...
    echo site_url();
?>

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

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

это на самом деле просто сделать, просто включив wp-blog-header.php файл с использованием php require().

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

возьмите пример ссылки, как http://example.com/yourfilename.php?1 где 1 это идентификатор сообщения, которое мы хотим создать OG data для:

теперь в содержании yourfilename.php который, для нашего удобства, находится в корневом каталоге WP:

<?php
    require( dirname( __FILE__ ) . '/wp-blog-header.php' );

    $uri = $_SERVER['REQUEST_URI'];
    $pieces = explode("?", $uri);
    $post_id = intval( $pieces[1] );

    // og:title
    $title = get_the_title($post_id);

    // og:description
    $post = get_post($post_id);
    $descr = $post->post_excerpt;

    // og:image
    $img_data_array = get_attached_media('image', $post_id);
    $img_src = null;
    $img_count = 0;

    foreach ( $img_data_array as $img_data ) {
        if ( $img_count > 0 ) {
            break;
        } else {
            ++$img_count;
            $img_src = $img_data->guid;
        }
    } // end og:image

?>
<!DOCTYPE HTML>
<html>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=yes" />
<meta property="og:title" content="<?php echo $title; ?>" />
<meta property="og:description" content="<?php echo $descr; ?>" />
<meta property="og:locale" content="en_US" />  
<meta property="og:type" content="website" />
<meta property="og:url" content="<?php echo site_url().'/your_redirect_path'.$post_id; ?>" />
<meta property="og:image" content="<?php echo $img_src; ?>" />
<meta property="og:site_name" content="Your Title" />
</html>

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

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


редактировать 2017: обратите внимание, что этот подход теперь устарел

для установки WP с 2016 года + см. https://stackoverflow.com/a/39800534/1958998 для включения дополнительных параметров перед выводом данных страницы в браузер.

создание страницы шаблона является правильным ответом, для этого просто добавьте это на страницу, созданную внутри папки темы

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

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

пожалуйста, см. Эту ссылку для получения правильной информации https://developer.wordpress.org/themes/template-files-section/page-template-files/page-templates/.

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

необходимо включить wp-load.РНР.

<?php require_once('wp-load.php'); ?>

тогда вы можете использовать любую функцию WordPress на этой странице.

вы захотите взглянуть на API плагинов WordPress. Это объясняет, как" зацепить "и" фильтровать " в разные части механики WordPress, поэтому вы можете выполнять пользовательский PHP-код практически в любом месте в любой момент времени. Это подключение, фильтрация и создание пользовательского кода может происходить в ваших функциях.php-файл в любой из ваших тем. Счастливое кодирование:)

широко распространенный ответ Адама Хопкинсона не является полностью автоматизированным методом создания страницы! он требует от пользователя вручную создать страницу в фоновом режиме WordPress (в тире wp-admin). Проблема в том, что хороший плагин должен иметь полностью автоматизированную настройку, он не должен требовать от клиентов вручную создавать страницы.

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

Я думаю, что лучший, полностью автоматизированный подход будет заключаться в создании страницы с помощью wp_insert_post и пусть он находится в базе данных. Пример и большое обсуждение об этом, и как предотвратить случайное удаление страницы пользователем, можно найти здесь: wordpress-автоматическое создание-страница

честно говоря, я удивлен, что этот подход еще не был упомянут в качестве ответа на этот популярный вопрос (он был опубликован в течение 7 лет).

создать страницу назовите ее my-page.php и сохраните его в своем каталоге тем. Теперь отредактируйте этот php файл и напишите следующую строку в верхней части страницы

<?php /* Template Name: My Page */ ?>

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

начало нравится <?php require_once("header.php");?> или

каким образом вы интегрируете свой header и footer для поддержания макета.

Так как это моя страница, вам нужно создать страницу из админ панели WordPress. Перейдите в меню Администрирование => страницы => Добавить новый

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

справа выберите шаблон. Выберите мою пользовательскую страницу из выпадающего списка. Все готово! Перейдите на страницу slug (permalink), созданную [wordpress][1].

Если вы не хотите иметь дело с WP API, то ответ Адама действительно лучший.

Если бы Вы были готовы иметь дело с API, я бы предложил подключиться к крючку "template-redirect", который позволит вам указать конкретный URL или страницу на произвольный PHP-файл, все еще имея доступ к WP.

помимо создания пользовательского файла шаблона и назначения этого шаблона странице ( как в Примере в принятом ответе ), есть также способ с Соглашением об именовании шаблонов, которое Wordpress использует для загрузки шаблонов ( иерархия шаблонов ). Создайте новую страницу и используйте слаг этой страницы для имени файла шаблона ( создать файл шаблона с именем page - {slug}.php). WordPress автоматически загрузит шаблон, который соответствует этому правилу.

попробуйте это:

/**
 * The template for displaying demo page
 *
 * template name: demo template
 *
 */

переименуйте новый файл в templatename.php (где templatename-это то, что вы хотите назвать своим новым шаблоном). Чтобы добавить новый шаблон в список шаблонов, введите следующее в верхней части файла:

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

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

просто создайте страницу-mytitle.PHP к фолтер текущей темы, и от панели mytitle страницы. Затем, когда вы вызываете страницу по url-адресу, вы увидите страницу-mytitle.РНР. Вы должны добавить htmp, css, JS wp-loop e.t.c в этот php файл (page-mytitle.php)

вы можете назвать свой файл newpage.php-поместите его в свой каталог тем в wp-content. Вы можете сделать его шаблоном страницы (см. http://codex.wordpress.org/Pages...) или вы можете включить его в один из php-файлов в вашей теме, например, заголовок.php или сингл.РНР. Еще лучше, создайте дочернюю тему и поместите ее туда, чтобы вы оставили свой код темы в покое, и это проще сделать обновление.

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

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

<?php get_header(); ?>

<div id="primary" class="content-area">
    <main id="main" class="site-main" role="main">
        <?php
        // Start the loop.
        while ( have_posts() ) : the_post();

            // Include the page content template.
            get_template_part( 'template-parts/content', 'page' );

            // If comments are open or we have at least one comment, load up the comment template.
            if ( comments_open() || get_comments_number() ) {
                comments_template();
            }

            // End of the loop.
        endwhile;
        ?>

    </main><!-- .site-main -->

    <?php get_sidebar( 'content-bottom' ); ?>

</div><!-- .content-area -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

вы также можете напрямую использовать страницу php, например, создать страницу php и запустить с полным путем. мол,http://localhost/path/filename.php

Comments

    Ничего не найдено.