IT story

WordPress에 PHP 페이지를 추가하는 방법?

hot-time 2020. 4. 8. 08:04
반응형

WordPress에 PHP 페이지를 추가하는 방법?


전체 사이트 CSS / 테마 / 디자인의 일부를 유지하면서 내 PHP 코드를 실행할 WordPress 블로그 용 사용자 정의 페이지를 만들고 싶습니다.

PHP 코드는 타사 API를 사용하므로 다른 PHP 파일을 포함시켜야합니다.

어떻게하면 되나요?

NB Wordpress API와 상호 작용할 필요가 없습니다. 특정 PHP 라이브러리를 포함하는 것 외에도 WP 페이지에 포함하려는 PHP 코드에 다른 종속성이 필요하지 않습니다. 따라서 WP API를 배우지 않아도되는 솔루션이 가장 좋습니다.


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 파일을 만들고 404 헤더없이 Wordpress와 상호 작용하고 현재 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();
?>

이 후에 단순히 워드 프레스 기능을 수행 할 수 있습니다. 또한 이것은 .php 파일이 파일이있는 워드 프레스 사이트의 루트 내에 있다고 가정합니다 wp-config.php.

이것은 require_once(dirname(__FILE__) . '/wp-blog-header.php');Wordpress가 심지어 Wordpress 함수를 통합하는 데 사용해야하는 접근 방식이라고 말하면서 가장 오랫동안 사용했던 PRICELESS 발견입니다. 예를 들어 404 헤더가 발생합니다. 이 방법을 사용하십시오. https://codex.wordpress.org/Integrating_WordPress_with_Your_Website

많은 사람들 이이 질문에 답변했으며 이미 받아 들여진 답변이 있지만 다음은 워드 프레스 사이트의 루트 (또는 기술적으로 원하는 위치)에서 .php 파일에 대한 좋은 접근 방식입니다. 404 헤더없이로드하십시오!

편집하다

빠른 업데이트 만 여기에 있습니다. wp-blog-header.php404 헤더없이 사용하는 방법 이 있지만 헤더를 수동으로 추가해야합니다. 워드 프레스 설치의 루트에서 다음과 같이 작동합니다.

<?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();
?>

이 접근 방식에 필요한 코드는 조금만 업데이트하면되지만 어느 쪽을 사용 하느냐는 귀하에게 달려 있습니다.


나와 같은 경우 CMS에없는 페이지에서 WordPress 기능을 참조하려는 경우가 있습니다. 이러한 방식으로 백엔드 고유의 상태로 유지되며 클라이언트가 실수로 삭제할 수 없습니다.

이것은 실제로 wp-blog-header.phpPHP를 사용 하여 파일을 포함시키는 것만으로 간단합니다 require().

다음은 쿼리 문자열을 사용하여 모든 게시물에 대한 Facebook OG 데이터를 생성하는 예입니다.

다음에 대한 OG 데이터를 생성하려는 게시물의 ID가 http://example.com/yourfilename.php?1어디 1인지 와 같은 링크의 예를 보자 .

이제 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>

게시물의 실제 이미지, 발췌 및 제목을 사용하여 모든 게시물에 대한 공유 모델을 생성했습니다!

특수 템플릿을 생성하고이를 위해 퍼머 링크 구조를 편집 할 수 있었지만 한 페이지에만 필요하고 클라이언트가 CMS 내에서 삭제하지 않기를 원하기 때문에 더 깔끔한 옵션처럼 보였습니다.


편집 2017 : 이 접근법은 이제 더 이상 사용되지 않습니다.

2016+ 이상의 WP 설치 의 경우 페이지 데이터를 브라우저로 출력하기 전에 포함 할 추가 매개 변수는 https://stackoverflow.com/a/39800534/1958998참조 하십시오 .


템플릿 페이지를 만드는 것이 정답입니다. 테마 폴더 내에서 만든 페이지에 추가하면됩니다.

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

이 코드를 실행하려면 백엔드에서 mytemplate을 페이지의 템플리트로 선택해야합니다.

올바른 세부 정보를 얻으려면이 링크를 참조하십시오 https://developer.wordpress.org/themes/template-files-section/page-template-files/page-templates/ .


WordPress 테마 외부에 PHP 페이지를 추가해야하는 경우 어떤 답변도 다루지 않았습니다. 이게 방법이야.

wp-load.php를 포함해야합니다.

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

그런 다음 해당 페이지의 모든 WordPress 기능을 사용할 수 있습니다.


Adam Hopkinson이 널리 받아 들인 대답은 완전히 자동화 된 페이지 작성 방법이 아닙니다! 사용자가 WordPress의 백엔드 (wp-admin 대시에서)에 페이지를 수동으로 작성해야합니다. 문제는 좋은 플러그인은 완전히 자동화 된 설정을 가져야하며 클라이언트가 수동으로 페이지를 만들 필요가 없다는 것입니다.

또한 여기에서 널리 사용되는 다른 답변 중 일부는 WordPress 외부에 정적 페이지를 작성하는 것과 관련이 있으며 여기에는 테마 헤더 및 바닥 글을 달성하기 위해 WordPress 기능 중 일부만 포함됩니다. 이 방법은 경우에 따라 작동하지만 모든 기능을 포함하지 않고 이러한 페이지를 WordPress와 통합하는 것은 매우 어려울 수 있습니다.

완전히 자동화 된 최선의 방법은 페이지를 사용하여 페이지를 작성 wp_insert_post하고 데이터베이스에 상주시키는 것입니다. 이에 대한 예와 훌륭한 토론 및 사용자가 페이지를 실수로 삭제하는 것을 방지하는 방법은 wordpress-automatically-creating-page 에서 찾을 수 있습니다.

솔직히, 나는이 접근법이이 대중적인 질문에 대한 답변으로 아직 언급되지 않은 것에 놀랐습니다 (7 년 동안 게시되었습니다).


my-page.php라는 페이지를 만들고 테마 디렉토리에 저장하십시오. 이제이 PHP 파일을 편집하고 페이지 맨 위에 다음 줄을 작성하십시오.

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

사용자 정의 페이지 정의 행에 PHP 코드를 작성하면이 파일 내의 다른 WP 템플릿 함수를 호출 할 수 있습니다.

<?php require_once("header.php");?>OR 처럼 시작

레이아웃을 일관되게 유지하기 위해 머리글과 바닥 글을 통합하는 방법에 관계없이

이 페이지는 내 페이지이므로 WordPress 관리자 패널에서 페이지를 만들어야합니다. 관리자 => 페이지 => 새로 추가로 이동하십시오.

사용자 정의 페이지를 코딩 한 방법에 따라 페이지 제목을 추가하고 페이지 본문 (설명)도 추가 할 수 있습니다. 사용자 정의 PHP 페이지에 작성된 설명은 완전히 건너 뛸 수 있습니다.

오른쪽에서 템플릿을 선택합니다. 드롭 다운에서 내 사용자 정의 페이지를 선택하십시오. 당신 준비 다 됐어요! [wordpress] [1]에 의해 생성 된 슬러그 (permalink)로 이동하여 페이지를보십시오.


WordPress의 플러그인 API를 살펴보고 싶을 것입니다. 여기에서는 WordPress 역학의 다른 부분에 "후크"및 "필터"하는 방법에 대해 설명하므로 언제 어디서나 사용자 정의 PHP 코드를 거의 실행할 수 있습니다. 이 후킹, 필터링 및 사용자 정의 코드 작성은 모든 테마의 functions.php 파일에서 수행 할 수 있습니다. 행복한 코딩 :)


WP API를 다루고 싶지 않다면 Adam의 대답이 실제로 가장 좋습니다.

API를 기꺼이 처리하려면 "템플릿 리디렉션"후크에 연결하는 것이 좋습니다. 이렇게하면 WP에 계속 액세스하면서 특정 URL 또는 페이지를 임의의 PHP 파일로 지정할 수 있습니다.


사용자 정의 템플리트 파일을 작성하고 해당 템플리트를 페이지에 지정하는 것 외에도 (예 : 허용 된 답변의 예에서와 같이) Wordpress에서 템플리트로드 (템플리트 계층 구조)에 사용하는 템플리트 이름 지정 규칙이 있습니다. 새 페이지를 작성하고 템플리트 파일 이름으로 해당 페이지의 슬러그를 사용하십시오 ( page- {slug} .php 라는 템플리트 파일 작성 ). 워드 프레스는이 규칙에 맞는 템플릿을 자동으로로드합니다.


이 시도:

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

새 파일의 이름을 templatename.php로 바꾸십시오 (여기서 templatename은 새 템플릿이라고 부릅니다). 사용 가능한 템플리트 목록에 새 템플리트를 추가하려면 새 파일 맨 위에 다음을 입력하십시오.

다른 파일이나 필요한 것을 포함하도록이 파일을 수정 (PHP 사용) 할 수 있습니다.

그런 다음 WordPress 블로그에서 새 페이지를 작성하면 페이지 편집 화면의 오른쪽에 속성 위젯에 템플리트 드롭 다운이 표시됩니다. 새 템플릿을 선택하고 페이지를 게시하십시오.


현재 테마에 맞게 page-mytitle.php를 작성하고 대시 보드에서 mytitle 페이지를 작성하십시오. 그런 다음 URL로 페이지를 호출하면 page-mytitle.php가 표시됩니다. 이 PHP 파일 (page-mytitle.php)에 htmp, css, js wp-loop 등을 추가해야합니다.


가장 좋은 방법은에 워드 프레스에서 PHP 페이지를 추가하는 Page Templatechild-theme폴더.

Page TemplateWordPress 에서 작성하는 방법

라는 파일을 작성 template-custom.php하고에 넣으십시오 /wp-content/theme/my-theme/.

<?php
 /*
 * Template Name: Custom Template
 * Custom template used for custom php code display
 * @package   Portafolio WordPress Theme
 * @author    Gufran Hasan
 * @copyright Copyright templatecustom.com
 * @link      http://www.templatecustom.com
 */
?>
<?php get_header(); ?>
<?php
  //write code here

 ?>

<?php get_footer(); ?>

상세 사항은


파일 이름을 newpage.php로 지정할 수 있습니다-wp-content의 테마 디렉토리에 넣으십시오. 페이지 템플리트 ( http://codex.wordpress.org/Pages .. 참조 )로 만들거나 header.php 또는 single.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 와 같이

참고 URL : https://stackoverflow.com/questions/2810124/how-to-add-a-php-page-to-wordpress

반응형