[php] WordPress에 PHP 페이지를 추가하려면 어떻게해야합니까?

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

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

어떻게하면 되나요?

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



답변

API와 상호 작용하거나 플러그인을 사용할 필요가 없습니다.

먼저 post.php또는 page.php테마 폴더 (아래 /wp-content/themes/themename/)를 복제 하십시오 .

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

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

PHP를 사용하여이 파일을 수정하여 다른 파일이나 필요한 것을 포함시킬 수 있습니다.

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

새 페이지는에 정의 된 PHP 코드를 사용합니다 templatename.php

출처 : 글로벌 사용을위한 사용자 정의 페이지 템플리트 작성


답변

자신의 .php 파일을 만들고 404 헤더없이 WordPress와 상호 작용하고 현재의 퍼머 링크 구조를 유지 하려면 해당 페이지에 대한 템플릿 파일이 필요하지 않습니다 .

이 접근 방식이 .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.

이것은 WordPress가 당신에게 WordPress 기능을 통합하는 데 사용해야하는 접근법이라고 말하면서도 가장 오랫동안 사용 했던 귀중한 발견입니다 require_once(dirname(__FILE__) . '/wp-blog-header.php');.404 헤더를 발생시키는 것을 제외하고는 그들이 원할 것입니다. 이 방법을 사용하십시오. 웹 사이트와 WordPress 통합

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


업데이트 : wp-blog-header.php404 헤더없이 사용하는 방법 이 있지만 헤더를 수동으로 추가해야합니다. 다음과 같은 것이 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();
?>

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


답변

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

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

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

OG 데이터를 생성하려는 게시물의 ID는 http://example.com/yourfilename.php?1어디에서 와 같은 링크의 예를 들어보십시오 1.

이제 yourfilename.php편의상 루트 WordPress 디렉토리에 내용이 있습니다.

<?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+ 이상의 WordPress 설치는 WordPress 에 PHP 페이지를 추가하는 방법을 참조하십시오 . 페이지 데이터를 브라우저에 출력하기 전에 포함 할 추가 매개 변수입니다.


답변

템플릿 페이지를 작성하는 것이 정답입니다. 이를 위해 테마 폴더 안에 만든 페이지에 추가하십시오.

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

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

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


답변

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

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

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

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


답변

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

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

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

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

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

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

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

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


답변

가장 좋은 방법은에 워드 프레스에서 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(); ?>

상세 사항은