NGINX + WORDPRESS + 멀티페이지 설치방법
1. wp-config.php 파일 설정

define('WP_ALLOW_MULTISITE', true);

2. wp관리자 로그인 - 도구 - 네트워크 설정 중 wp-config.php 파일 내 수정코드 수정

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', '');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1); 

 * 반드시 1번 코드를 삭제해주어야함.. 이것도 모르고 계속 같이 반영했다가 삽질..

/------- 참고 -------/


WordPress's multisite feature offers the ability to create multiple websites from a single installation of WordPress. Each site can have a separate theme, set of plugins, and collection of content (posts and pages). This reduces the overhead of maintaining and updating several installations of WordPress, while allowing you to host multiple sites which are totally unrelated to one another.

WordPress multisite comes in two flavours: subdirectory or subdomain. In this tutorial, we will set up WordPress multisite to use subdomains. That means that sites we create will have a subdomain web address like This can be mapped to an external domain like so that each site looks independent from the outside.


This tutorial requires the user to have a knowledge of the following:

We will be creating three WordPress sites with the following domain names:

  • Site 1:

    Domain: (Primary domain)

    This is the site that is created when WordPress is installed.

  • Site 2:

    External Domain:


  • Site 3:

    External Domain:


The first domain is the primary domain name through which WordPress will be installed. Make sure to set up DNS for all three domains to point to the IP address of the Droplet which will host WordPress.

Step One - Set Up DNS Wildcard Records

In this section, we will add a DNS wildcard record for the primary domain so that more sites can be added at any time, without needing individual A records. (Alternately, you can add a new A record for each subdomain.)

Note: This has to be done only for the *primary domain (examplewp.comin this tutorial).

Log in to your DigitalOcean control panel and navigate to the Networking section. Edit the primary domain and create a wildcard A record for this domain pointing to the Droplet's IP address. A wildcard record is created by entering an asterisk (*) in the hostname input box as shown in the screenshot below.

DNS Control Panel - wildcard record

If you host your domain's DNS elsewhere, you should set the wildcard record there instead.

What you should see now:

DNS queries for any should return the IP address of your Droplet.

Step Two - Install and Configure the LEMP Stack

In this section, we will install and configure Nginx, MySQL, and PHP. There is a detailed article on setting up a LEMP stack that you can reference if you would like to. This section will serve as a quick setup. There is also a LEMP on Ubuntu 14.04 image under the Applications tab in the Select Image section when creating a Droplet.

Update the repositories and install Nginx, MySQL, PHP5-FPM and other necessary PHP modules.

apt-get update
apt-get install -y nginx mysql-server php5-fpm php5-mysql php5-curl php5-mcrypt php5-gd

When MySQL server is being installed, you will be prompted to enter a password for the root database user. Please enter a strong password and do not leave it blank. You will enter the password twice.

MySQL root password

Create a document root for Nginx which will hold the WordPress files. We will use /usr/share/nginx/wordpress throughout this tutorial.

mkdir /usr/share/nginx/wordpress

We will replace Nginx's default virtual host with our own, so remove its symlink in the sites-enableddirectory.

rm /etc/nginx/sites-enabled/default

Create a new virtual host file inside the sites-available directory. This file can be named anything. In our example, we will call it wp-ms.

nano /etc/nginx/sites-available/wp-ms

Edit this file and place the following configuration. Edit the text highlighted in red according to your environment. In the server_name line, you should add all three (or more) of your multisite domains, and the wildcard subdomain for the first domain.

server {
    listen [::]:80 ipv6only=off;
    server_name *;

    root /usr/share/nginx/wordpress;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args ;

    location ~ /favicon.ico {
        access_log off;
        log_not_found off;

    location ~ \.php$ {
        try_files $uri /index.php;
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;

    access_log  /var/log/nginx/$host-access.log;
    error_log   /var/log/nginx/wpms-error.log;

If this Droplet will host only this WordPress installation, the listen and server_name directives can be changed to the following:

listen [::]:80 default_server ipv6only=off;
server_name *;

The use of the $host variable in the access_log directive creates separate log files for each domain like and It is not possible to use such variables for the error_log directive, so all errors are logged in a single file.

Save this file and create a symlink of this file inside the sites-enabled directory.

ln -s /etc/nginx/sites-available/wp-ms /etc/nginx/sites-enabled/wp-ms

Execute an Nginx configuration test and restart if it returns OK.

service nginx configtest
service nginx restart

Step Three - Create a MySQL Database and User for WordPress

In this section, we will create a MySQL database for WordPress and a user with permissions for this database only.

Log in to the MySQL command line as the root user.

mysql -u root -p

Create a database.


Create a MySQL user and grant permissions to this database:

CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress_user'@'localhost';

Replace the word password with a strong password. Flush the privileges and exit the MySQL command line.


Note down these details as will be needing them in Step Four.

Database Name: wordpress

Database User: wordpress_user

Database Password: password

More information about MySQL users can be found in this article.

Step Four - Download and Install WordPress

In this section, we will download the latest version of WordPress and install it. This will be for our first site,

Download and extract WordPress.

tar -xf latest.tar.gz

Move the extracted files into the document root.

mv wordpress/* /usr/share/nginx/wordpress/

Assign ownership to the user www-data. This is essential for media uploads and for core/plugin/theme updates to work in WordPress.

chown -R www-data:www-data /usr/share/nginx/wordpress

Access the primary domain in your browser to begin the WordPress installation.

You can add the "www" suffix to the URL if needed. Click the Create a Configuration File button followed by the Let's go! button. Fill in the database details (use the information from Step Three) and click Submit.

WordPress database details

At this point, WordPress will establish a connection with the database to test the entered credentials. Once the connection succeeds, the Run the install button appears. Click on it. Complete the Information needed form to set up your site title, username, password, and email, and then click Install WordPress. It is recommended to choose a non-generic username for security.

WordPress welcome screen

Step Five - Enable Multisite and Create Additional Sites

In this section, we will enable WordPress Multisite and create the two additional sites mentioned in the Prequisites section of this article.

PHP constant has to be defined in the wp-config.php file to enable the Network Setup page.

Edit the wp-config.php file:

nano /usr/share/nginx/wordpress/wp-config.php

Add the following code before the comment /* That's all, stop editing! Happy blogging. */:

/* Multisite settings */
define( 'WP_ALLOW_MULTISITE', true );

We will be editing this file a few more times during this tutorial. Feel free to add all of the new lines in the /* Multisite settings */ section we just created.

Save the file. Log in to the WordPress admin panel and navigate to Tools > Network Setup. Choose the Sub-domains option, modify the Network Title as desired, and then click Install.

WordPress Network Setup

You will be presented with two blocks of code to be added in the wp-config.php and .htaccess files. Copy the wp-config.php code which looks similar to the following:

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', '');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

Edit the wp-config.php file.

nano /usr/share/nginx/wordpress/wp-config.php

Add these lines before the comment /* That's all, stop editing! Happy blogging. */ and save it. The code displayed for .htaccess can be ignored, as Nginx does not have this file.

Log out of the WordPress admin panel, and log in again. From the admin toolbar on the top left, navigate to the My Sites > Network Admin > Sites.

WordPress Toolbar

Click the Add New button to open the Add New Site form. The following screenshot shows the filled-in details for the shopping site in our example. The Site Address entered will form the subdomain of this site.

Creating a new WordPress site

Click Add Site and the created site will be accessible via

Repeat these steps to create the second site ( in our example).

What you should see now:

The following three WordPress sites:


Each of them will have their own content, theme, and active set of plugins.

Step Six - Set Up Domain Mapping

In this section, we will enable you to use a separate domain name for each WordPress site, by downloading and enabling the WordPress MU Domain Mapping plugin. This plugin allows users of WordPress Multisite to map their blog/site to another domain.

Log in to your Droplet via SSH and download the WordPress MU Domain Mapping plugin. First install the unzip command, and then extract the plugin.

apt-get install unzip

Move the extracted files to the WordPress plugin directory.

mv wordpress-mu-domain-mapping /usr/share/nginx/wordpress/wp-content/plugins/

Copy the sunrise.php file from the plugin's directory to the wp-content directory.

cp /usr/share/nginx/wordpress/wp-content/plugins/wordpress-mu-domain-mapping/sunrise.php /usr/share/nginx/wordpress/wp-content/

Edit the wp-config.php file and add the following line before the comment /* That's all, stop editing! Happy blogging. */.

File: /usr/share/nginx/wordpress/wp-config.php

define('SUNRISE', 'on');

Save this file and return to the web browser. From the WordPress toolbar navigate to My Sites > Network Admin > Plugins.


Click the Network Activate link under the WordPress MU Domain Mapping plugin. Go to Settings > Domain Mapping and make changes to the Domain Options as follows:

  • Uncheck Remote Login
  • Check Permanent Redirect
  • Uncheck Redirect administration pages to site's original domain

Domain mapping options

Click Save once done. These settings redirect all requests for subdomains (like to their respective external domains (like including the administration pages (/wp-admin).

In the next step we will be mapping a domain name to each site based on its site ID. There are many ways to find the ID of a site but for easier administration we will create a simple WordPress Must-use plugin that displays an additional ID column on the Sites page.

Log in to your Droplet via SSH and create an mu-plugins directory.

mkdir /usr/share/nginx/wordpress/wp-content/mu-plugins

Create a PHP file inside this directory and paste the code that follows:

nano /usr/share/nginx/wordpress/wp-content/mu-plugins/wpms_blogid.php

You can copy this content exactly:

add_filter( 'wpmu_blogs_columns', 'do_get_id' );
add_action( 'manage_sites_custom_column', 'do_add_columns', 10, 2 );
add_action( 'manage_blogs_custom_column', 'do_add_columns', 10, 2 );

function do_add_columns( $column_name, $blog_id ) {
    if ( 'blog_id' === $column_name )
        echo $blog_id;
    return $column_name;

function do_get_id( $columns ) {
    $columns['blog_id'] = 'ID';
    return $columns;

The Sites > All Sites section should now show an additional ID column.


Note down the ID values for each site and go to the Settings > Domains page. Enter the site ID followed by the external domain for the site. For example, since companysite has an ID of 3, on this page, the Site ID should be 3, and the domain should be

Mapping a site ID to a domain

You may add a "www" prefix if you wish to set the site URL as Repeat these steps for the other domains. Click Save at the bottom of the page.

What you should see now:

Each site will have its own domain name instead of a subdomain; i.e., entering in your browser will open the My Online Company Site. You can check this now by visiting and You should see the site title change in the upper left corner of the page.

Now each site can be maintained separately through its own WordPress admin panel:

Updates to the core/plugins/themes and installation of plugins/themes should be done from the network admin page of the primary domain:

* 출처 :

워드프레스 + 그누프레스 + NGINX 환경에서 구축 중

멀티페이지 설정 중 /wp/wp-config.php 파일 건들다가 로그인 후에도 로그인페이지로 계속 리다이렉트 되는 문제 발생하여 아래와같이 셋팅 후 이상없음

/* That's all, stop editing! Happy blogging. */

/*define('MULTISITE', true);*/

define('WP_ALLOW_MULTISITE', true);

define('DOMAIN_CURRENT_SITE', '');

define('PATH_CURRENT_SITE', '/wp/');

define('SITE_ID_CURRENT_SITE', 1);

define('BLOG_ID_CURRENT_SITE', 1);

아주 간단하게 만들어봤다. 이해는 안됨.

일단 결과물

소스코드 입력부분에 광고로 삽입할 광고코드 입력(현재 애드젯광고 사용해봄)

소스퍼가기 해서 소스 퍼간다음,  삽입!

광고입력후 화면

오른쪽 위젯부분에 잘 들어갔다...

사용코드 ::

저번에 위젯만들기1에서 사용한 코드를 기본으로, 위젯 설정창에서 만든 상태라면

이렇게 나온다.

이부분을 작성하려면 아래코드 추가

function form($instance){
  //// 내용

이 코드를 추가만 해주고 내부에 코드를 작성하면 바로 뜬다. 사용한 실제코드

function form($instance){
	echo"광고 소스 입력 ::";
		$field_id = $this->get_field_id('adSource');
		$field_name = $this->get_field_name('adSource');


"; echo "
"; }

코드에서  <!--php 부분은 알아서 수정.

form에서 textarea에 작성된값을 $instance[adSource]에 받아

widget 에서 가져오는 구조인듯 하다....

PSS Widget 

- pssplugin.php (기본) 한개로 구성됨 (글 작성중 현재상태 12/08/10)

왼쪽의 설정부분

function pss_settings_link($links) {
	$links[] = ''.__('설정').'';
	return $links;
add_filter('plugin_action_links_'.plugin_basename(__FILE__), 'pss_settings_link', 10, 1);
오른쪽 부분
function pss_setting_link($links, $file) {
	if ($file == plugin_basename(__FILE__)) {
		$links[] = ''.__('설정', 'pss').'';
		$links[] = ''.__('기타', 'sfc').'';
	return $links;
add_filter('plugin_row_meta', 'pss_setting_link', 10, 2);

기본 파일 위치 /wordpress/wp-content/plugins/만드려는위젯_이름.php

코드 상단에 아래코드 삽입


class 이름 extends WP_Widget

 function 이름 ( ) {

$widget_options = array ( 'classname' => '이름' , 'description' => '설명' ) ;         $this -> WP_Widget ( '이름' , '위젯이름' , $widget_options ) ; 


 function widget ( $args , $instance ) {

//실제로 보여지는 부분


add_action ( 'widgets_init' , create_function ( '' , 'return register_widget("이름");' ) ) ; ?>

워드프레스 루프문 기본


'루프전용' 함수들

현재 포스트의 제목

각 포스트의 고유주소 URL을 표시

각 포스트의 ID

각 포스트의 작성자 이름을 표시

각 포스트가 속해있는 카테고리 표시

'공부 > Wordpress' 카테고리의 다른 글

제작한 플러그인에 설정메뉴 넣기  (0) 2012.08.10
위젯 만들기  (0) 2012.08.10
루프문설명  (0) 2012.08.08
워드프레스 템플릿 기본구조 ㅡ  (0) 2012.08.06
관리자모드에 Custom 플러그인 메뉴 추가하기  (0) 2012.08.06
워드프레스 page에 template  (0) 2012.08.03

워드프레스 한글언어팩에 기본 테마는 이미 곰님의 수정으로 사용하는데 무리가 없지만, 해외에서 제작된 250여개가 넘는 워드프레스 테마를 만끽하기 위해선 테마 파일의 수정이 반드시 필요하다. 코덱스에 워드프레스의 테마를 구성하는 파일들을 간단하게 설명하고 있지만, 내 나름대로, 테터툴의 스킨과 비교하여 조금은 구체적으로 파헤처 볼 생각이다.

기본적으로 워드프레스에서 반드시 필요한 파일은 기본 템플릿 파일인 index.php 이다. 테터툴과 마찬가지로 index.php 파일 하나만으로도 블로그를 구성할 수는 있다. 테마 만드는 사람 마음일 것이다. 다만, 답글까지 한꺼번에 보여준다면, 아니 보여주지 않고 숨겨놓더라도 파일을 읽는데 소요되는 시간은 상당할 것이다. 즉, 파일의 크기나 트래픽량의 증가는 감수할 수 있다면, index.php 파일 하나만으로도 상관없다.

이런 이유에서 워드프레스에서 또 하나의 중요한 파일이 single.php 이다. 파일명처럼 글 하나를 볼때 사용되는 파일이다. single.php 와 함께 다니는 파일은 comment.php 이다. 답글(꼬릿말)이나 트랙백, 핑백의 내용을 보여주며 답글을 작성할 수 있도록 하는 파일이다. 트랙백 주소도 이곳에 표현된다.

Style.css 는 구조화된 워드프레스 테마 템플릿의 시각적인 부분을 담당한다.이미지, 배경색/이미지/아이콘, 폰트 크기/색, 박스 크기/색 등 눈으로 볼 수 있는 대부분을 정의하는 파일이다. 이는 인라인 스타일을 사용하는 대부분의 테터툴 스킨과 다른점이다.Style.css를 수정하기 위해서는 Topstyle pro 3과 같은 프로그램을 이용하는 것이 편리할 것이다.

여기까지만 보면, 테터툴의 index.php 파일을 워드프레스에서는 index.php + single.php + comment.php + style.css 파일로 쪼개 논 것 같다. 맞다. 파일의 효율성을 위해서 독립시킨 것이다. 여기에 다양한 레이아웃을 보여줄 수 있도록 category.php achive.php

예전에 한번 비교해보니 워드프레스 기본테마의 필수 파일 3가지(style.css 제외)를 합친 것이 테터툴 기본스킨의 index.php 파일보다 크기가 훨씬 작았던 것으로 기억난다. 이는 table 레이아웃과 div + CSS 레이아웃의 차이점이랄 수 있다.

아래는 일반적으로 워드프레스의 테마에 포함된 파일 구조이다.

  • inde.php : 기본 템플릿 파일 (대부분 아래의 파일로 분리됨)
    • header.php : 상단에 항상 표현되는 파일
    • footer.php : 하단 항상 표현되는 파일
  • style.css : 기본 스타일 파일 (경우에 따라 아래 파일들로 분리됨)
    • layout.css : 레이아웃을 구성하는 파일
    • default.css : 기본적인 클랙스나 아이디를 구성하는 파일
    • print.css : 블로그 내용을 프린트할 때 사용되는 파일
  • single.php : 글 하나만 볼 때 사용되는 파일
    • comment.php : 답글을 쓸때 사용되는 파일
    • comment-popup.php : 팝업창으로 답글을 쓸때 사용되는 파일
  • sidebar.php : 사이드바(메뉴)를 구성하는 파일
    • sidebar-left.php : 3단 구조에서 왼쪽 사이드바를 구성하는 파일
    • sidebar-right.php : 3단 구조에서 오른쪽 사이드바를 구성하는 파일
  • search.php : 검색결과를 보여주는 파일
  • archive.php : 글 묶음을 볼 때 사용되는 파일
    • category.php : 글의 분류에 따라 글을 볼때 사용
    • date.php : 년, 월, 일별로 글을 볼 때 사용
  • page.php : 블로그 글과 다른 정적인 형식인 페이지를 볼때 사용
    • archives.php : 기본적인 페이지 템플릿
    • author.php : 블로그 주인을 소개할 때 사용하는 페이지 템플릿
    • contact.php : 이메일을 발송할 관련 페이지의 템플릿
    • link.php : 링크 관련 페이지의 템플릿
  • 404.php : 블로그에 없는 파일을 찾을 때 보여주는 파일

'공부 > Wordpress' 카테고리의 다른 글

제작한 플러그인에 설정메뉴 넣기  (0) 2012.08.10
위젯 만들기  (0) 2012.08.10
루프문설명  (0) 2012.08.08
워드프레스 템플릿 기본구조 ㅡ  (0) 2012.08.06
관리자모드에 Custom 플러그인 메뉴 추가하기  (0) 2012.08.06
워드프레스 page에 template  (0) 2012.08.03

워드프레스는 설치형 블로그툴로 요즘에는 블로그를 운영하는 목적뿐만 아니라

회사 홈페이지나 광고 사이트등 많은 사이트들의 CMS(콘텐츠 관리 시스템)로 쓰이고 있습니다.

워드 프레스는 뛰어난 확장성을 갖고 있기 때문에 플러그인이나, 테마등을 개발하여 적용하기 좋습니다.

따라서 많은 수의 테마와 플러그인이 개발되어 공개되고 있으며 좋은 품질의 테마같은 경우에는

유료로 돈을 주고 살 수 있는 경우도 있습니다.

이렇게 다양하게 확장할 수 있는 워드프레스 기능을 활용하여 admin 메뉴에 내 메뉴를 삽입하겠습니다

워드프레스에 관리자 기능이 있습니다. 여기에 워드프레스 관리를 위한 다양한 메뉴가 있습니다.

이 관리자 메뉴에 우리만의 관리자 메뉴를 추가하고 싶을 경우 어떻게 해야 할까요?

우선 플러그인 파일을 워드프레스 설치 디렉토리의 wp-content 디렉토리안으 plugins 폴더에 추가하셔야 합니다.

플러그인이 간단한 단일 php파일이라면 wp-content plugins 폴더에 바로 추가해도 좋지만 여러개의 파일이라면

디렉토리를 만들어서 추가하는 것이 좋습니다. wp-content\plugins에 wdm 이라는 디렉토리를 만들겠습니다.

그리고 wdm 디렉토리 밑에 plugin.php 라는 파일을 만들고 다음 내용을 넣습니다.

(파일 이름은 상관 없습니다.)

<-- 표준 플러그인 형식 -->

Plugin Name: Name Of The Plugin
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: The Plugin's Version Number, e.g.: 1.0
Author: Name Of The Plugin Author
Author URI: http://URI_Of_The_Plugin_Author
License: A "Slug" license name e.g. GPL2



Plugin Name: 플러그인 이름

Plugin URI: 주소

Description: 플러그인 설명

Version: 0.1

Author: 제작자

Author URI: 주소

License: public domain


function screen1() {



function screen2() {



function wdm_menu() {


add_menu_page('추가메뉴', '추가메뉴', 10, 'menu1', 'screen1', '');


add_submenu_page('menu1', '서브메뉴', '서브메뉴', 10, 'menu2', 'screen2');



// admin_menu를 hook

add_action('admin_menu', 'wdm_menu');


위처럼 작성하면 가장 위의 주석 부분을 워드프레스가 파싱하여 플러그인 목록에 보여줍니다.

plugins에서 plugin이 잘 추가됐는지 확인합니다.

그리고 우리가 추가한 plugin을 사용해야 하므로 active 합니다.

그러면 관리자 메뉴 중 가장 아래에 추가메뉴와 서브메뉴가 추가된 것을 확인할 수 있습니다.

코드를 설명하면 다음과 같습니다. 우선 가장 아래줄의 코드 의미를 봅시다.

add_action('admin_menu', 'wdm_menu'); 

이 코드는 admin_menu 즉 어드민 메뉴가 표현될 때 사용할 hook으로 wdm_menu라는 function을

사용하겠다는 의미입니다. 그러면 wdm_menu를 봅시다.

function wdm_menu() {


add_menu_page('추가메뉴', '추가메뉴', 10, 'menu1', 'screen1', '');


add_submenu_page('menu1', '서브메뉴', '서브메뉴', 10, 'menu2', 'screen2');


add_menu_page를 통해 메뉴를 추가하고

add_submenu_page를 통해 서브메뉴를 추가합니다.

즉 add_action을 통해 admin_menu가 표현될때 wdm_menu라는 function을 사용하여

메뉴를 추가합니다.

메뉴 추가 함수의 자세한 사용법은 해당 함수 호출의 주석 부분의 url을 참고하세요.

또한 add_menu_page와 add_submenu_page를 통해 만든 메뉴를 클릭했을때

호출할 function으로 "screen1"과, "screen2"를 지정합니다. 

이렇게 하면 해당 메뉴를 클릭했을때 각각 screen1()과 screen2() 가 호출됩니다.

각 function을 봅시다.

function screen1() {



function screen2() {



추가메뉴를 클릭하면 screen1.php 를 포함하여 보여주고

서브메뉴를 클릭하면 screen2.php 를 포함하여 보여줍니다.

각 파일은 아직 올리지 않아서 에러가 나겠지만 필요한 기능을 php 파일에 구현하여 

같은 디렉토리에 올리면 admin의 메뉴에서 구현한 화면을 볼 수 있습니다.

'공부 > Wordpress' 카테고리의 다른 글

제작한 플러그인에 설정메뉴 넣기  (0) 2012.08.10
위젯 만들기  (0) 2012.08.10
루프문설명  (0) 2012.08.08
워드프레스 템플릿 기본구조 ㅡ  (0) 2012.08.06
관리자모드에 Custom 플러그인 메뉴 추가하기  (0) 2012.08.06
워드프레스 page에 template  (0) 2012.08.03

How To Create A Custom Page Template In WordPress

by  · 156 COMMENTS

This is a follow-on from my article called: How To Make WordPress Look Like a Website, where we walked through changing which page shows up as the home page for your WordPress website. The idea was to make it look more like a web site rather than a blog.

We changed the front page, but were left with the Page title and Sidebar still. So what if we want to completely customize our home page?

WordPress Page Templates are the answer

WordPress provides a clever way to do this called Custom Page Templates. To create a WordPress Page Template, you’ll need to use your text editor. Go to the directory on your server where you installed WordPress, and then navigate to the directory of your theme. Usually that looks something like this: “/wp-content/themes/default” where “default” is your theme name.

That’s where you will create your custom page template file. Create a file called “cover_page.php” and add the following code to it:

Template Name: Cover Page

<?php get_header(); ?>
Here's my cover page!
<?php get_footer(); ?>

The Template Name: Cover Page tells WordPress that this will be a custom page template, where Cover Page is the name that will show up in the drop down selector when you create your page.

The other lines in this file simply include the header and footer of your blog. You can add any HTML that you want to display on your page in the middle.

That’s it – now you have a custom page template!

Creating a Page Based on Your Custom Page Template

Now all you need to do is create a new Page in WordPress:

Add Page in WordPress Screenshot

and assign your new custom page template to it:
Assign page template in WordPress
Now you will have a completely blank home page, with only the header and footer for your site. You can add ANY code you want to this page and customize it until your heart is content.

One caveat though – you’ll find that any content you put into the “page” you created in the WordPress editor will not show up here. Since you are overriding the page with a custom page template, you’ll need to add your content to the cover_page.php file that you created in order for it to show up.

Once you have the page looking the way you want it, go into Settings -> Reading in your WordPress Admin panel and set the “Front page displays” settings to look like this:

Selecting a static home page in the WordPress Reading Settings

Now your custom page will be the first thing visitors see when they come to your website!

Here’s a video walkthrough: Creating WordPress Page Templates.

Update: watch this video to see how to create a custom page template that is editable from the visual WordPress editor!

See my WordPress Powered Websites series for more WordPress articles, tips and tricks for small business websites.

'공부 > Wordpress' 카테고리의 다른 글

제작한 플러그인에 설정메뉴 넣기  (0) 2012.08.10
위젯 만들기  (0) 2012.08.10
루프문설명  (0) 2012.08.08
워드프레스 템플릿 기본구조 ㅡ  (0) 2012.08.06
관리자모드에 Custom 플러그인 메뉴 추가하기  (0) 2012.08.06
워드프레스 page에 template  (0) 2012.08.03

+ Recent posts