사용자 지정 게시물 유형에 템플릿을 할당 할 수 있습니까?
-
-
http://www.wpbeginner.com/wp-themes/create-custom-single-post-templates-for-specific-posts-or-sections-in-wordpress/(이것은 게시물 용이지만 CPT 용으로 수정할 수 있습니다.) http://www.nathanrice.net/blog/wordpress-single-post-templates/(이것은 게시물 용이지만 CPT 용으로 수정할 수 있습니다.) 실제로 플러그인에 대한 좋은 생각입니다.http://www.wpbeginner.com/wp-themes/create-custom-single-post-templates-for-specific-posts-or-sections-in-wordpress/ ( this is for posts but you can modify it for CPT's) http://www.nathanrice.net/blog/wordpress-single-post-templates/ ( this is for posts but you can modify it for CPT's) It's a good idea for a plugin actually.
- 0
- 2011-07-22
- Wyck
-
8 대답
- 투표
-
- 2017-04-23
WordPress 버전 4.7 에서 이제 다른 게시물 유형에 맞춤 페이지 템플릿을 할당 할 수 있습니다.페이지와 함께.
템플릿 이름 파일 헤더와 함께이를 달성하기 위해 템플릿에서 지원하는 포스트 유형은 다음과 같이 Template Post Type :을 사용하여 지정할 수 있습니다.
<?php /* Template Name: Full-width page layout Template Post Type: post, page, product */
다음 페이지에서 이에 대한 자세한 정보를 얻을 수 있습니다.
https ://wptavern.com/wordpress-4-7-brings-custom-page-template-functionality-to-all-post-types https ://make.wordpress.org/core/2016/11/03/post-type-templates-in-4-7/
From WordPress version 4.7 you can now assign custom page templates to other post types along with page.
To achieve this in addition to the Template Name file header, the post types supported by a template can be specified using Template Post Type: as following.
<?php /* Template Name: Full-width page layout Template Post Type: post, page, product */
You can get more information about it on the following pages.
https://wptavern.com/wordpress-4-7-brings-custom-page-template-functionality-to-all-post-types https://make.wordpress.org/core/2016/11/03/post-type-templates-in-4-7/
-
- 2011-07-21
예를 들어 다음과 같은 파일을 만들어 맞춤 게시물 유형에 대한 템플릿을 만들 수 있습니다.
single-mycustomposttype.php
코덱스의 템플릿 계층 을 참조하세요.
PS : 이미 답변을 받았습니다.
You can create template for custom post types by creating files, like for example :
single-mycustomposttype.php
See Template Hierarchy in the codex.
PS : this has already been answered.
-
감사합니다.하지만 제가 알고 싶은 것은 사용자 지정 게시물 유형에 사용자 지정 템플릿을 추가 할 수 있는지 여부입니다.예를 들어 두 개의 템플릿을 만들고 각 템플릿을 해당 게시물에 할당 할 수 있습니까?내가 이해하는 한 특정 게시물 유형을 처리하기 위해 하나의 템플릿 파일 만 지정할 수 있습니다.Thanks for that, but what I would like to know is if it is possible to add custom templates to custom post types. So for instance can I create two templates and assign each template to it's respective post? That only allows for specifying one template file to handle that specific post type as far as I understand it.
- 2
- 2011-07-21
- Odyss3us
-
단일 게시물에 대해 서로 다른 템플릿이 필요한 경우 필요한 각 템플릿에 따라 여러 개의 사용자 지정 게시물 유형을 만들 수 있습니다.얼마나 많은 다른 템플릿이 필요한지에 따라 다릅니다.각 게시물마다 달라야하는 템플릿에서 무엇을 하시겠습니까?Is see, if you need different templates for single posts, you may want to create several custom post types, according to each needed template. I guess that depends on how many different templates you need. what are you going to do in the templates that needs to be different on each post ?
- 0
- 2011-07-22
- mike23
-
이 답변은 현재 구식입니다.Vinod Dalvi의 답변을 참조하십시오.This answer is now out of date. See Vinod Dalvi's answer.
- 0
- 2017-09-12
- Simon East
-
구식이 아닙니다.여전히 잘 작동하며 여전히 표준 관행입니다.It is not out of date. Still works just fine and is still standard practice.
- 1
- 2020-03-01
- Tim Hallman
-
- 2015-06-11
효과적인 방법은 다음과 같습니다.
add_filter('single_template', function($original){ global $post; $post_name = $post->post_name; $post_type = $post->post_type; $base_name = 'single-' . $post_type . '-' . $post_name . '.php'; $template = locate_template($base_name); if ($template && ! empty($template)) return $template; return $original; });
따라서 사용자 지정 게시물 유형
foobar
와 슬러그hello-world
가 주어지면 위 코드는single-foobar-hello-world.php
템플릿 (존재하는 경우)Here's what works for me:
add_filter('single_template', function($original){ global $post; $post_name = $post->post_name; $post_type = $post->post_type; $base_name = 'single-' . $post_type . '-' . $post_name . '.php'; $template = locate_template($base_name); if ($template && ! empty($template)) return $template; return $original; });
Thus given a post of custom post type
foobar
and a slug ofhello-world
the above code would load thesingle-foobar-hello-world.php
template, if it existed. -
- 2017-03-08
Google을 통해이 스레드에 도달하는 사람들을 위해 WP 4.7은 모든 게시물 유형에 대한 템플릿을 도입했습니다. WP Core 만들기 전체 안내를 참조하세요.더 이상 모든 CPT에 대해 하나의 템플릿으로 제한되지 않으며 페이지에서와 마찬가지로 게시물별로 개별 템플릿을 할당 할 수 있습니다.
For those reaching this thread through Google, WP 4.7 introduced templates for all post types. See Make WP Core for a full walkthrough. You're no longer restricted to one template for all of your CPT, you can assign individual templates post by post just like you can do with Pages.
-
- 2016-07-13
조금 오래되었지만 시도해 볼 수도 있습니다.
맞춤 게시물 유형에 대한 템플릿 만들기 :
single-*custom-post-type-slug*.php
파일은 슬러그를 확인하고 파일이 존재하는지 확인해야합니다. 그렇지 않은 경우 기본 템플릿 파일로 대체합니다.
<?php $slug = get_post_field( 'post_name', get_post() ); $slug = ( locate_template( 'templates/*custom-post-type-slug*/' . $slug . '.php' ) ) ? $slug : 'default'; get_template_part( 'templates/*custom-post-type-slug*/' . $slug ); ?>
custom-post-type-slug 의 모든 인스턴스를 사용자 지정 포스트 유형의 실제 슬러그로 교체합니다.
사용 편의성과 조직화를 위해이 작업을 수행합니다.테마의 루트 폴더에 모든 파일을 포함하는 것보다 더 깔끔해 보입니다.
예제 폴더 구조 :
themeroot | |single-cases.php |-templates | --cases | |default.php | |case-one.php | |case-two.php
This is a little old but you can also try this:
Create a template for the custom post type:
single-*custom-post-type-slug*.php
The file should check the slug and verify if a file exists, if not, fallback to a default template file:
<?php $slug = get_post_field( 'post_name', get_post() ); $slug = ( locate_template( 'templates/*custom-post-type-slug*/' . $slug . '.php' ) ) ? $slug : 'default'; get_template_part( 'templates/*custom-post-type-slug*/' . $slug ); ?>
Replace all instances of custom-post-type-slug with the actual slug of your custom post type.
I do this for ease of use and organizational purposes. It seems cleaner to me than having all of the files in the theme's root folder.
example folder structure:
themeroot | |single-cases.php |-templates | --cases | |default.php | |case-one.php | |case-two.php
-
- 2015-07-13
먼저 다음과 같이 하나의 템플릿 파일을 만들고 해당 템플릿 항목의 이름을 지정하는 것보다 항목 게시물 유형의 콘텐츠를 표시하는 항목이라는 이름의 페이지를 먼저 만듭니다. 생성 한 페이지의 템플릿을 선택하세요.
<div class="container"> <div class="row"> <div class="col-md-9"> <div class="panel panel-default text-center"> <?php $loop = new WP_Query( array( 'post_type' => 'items', 'posts_per_page' => 5 ) ); ?> <?php while ( $loop->have_posts() ) : $loop->the_post(); ?> <?php the_title();?> <?php if(has_post_thumbnail() ) { the_post_thumbnail(); } ?> <?php the_content();?> <?php endwhile; ?> <?php wp_reset_query(); ?> </div> </div> </div> </div>
First create on page named as Items as your wish which display the content from items post types, than create one template file as below and named that template-items. Select that template for the page you have created.
<div class="container"> <div class="row"> <div class="col-md-9"> <div class="panel panel-default text-center"> <?php $loop = new WP_Query( array( 'post_type' => 'items', 'posts_per_page' => 5 ) ); ?> <?php while ( $loop->have_posts() ) : $loop->the_post(); ?> <?php the_title();?> <?php if(has_post_thumbnail() ) { the_post_thumbnail(); } ?> <?php the_content();?> <?php endwhile; ?> <?php wp_reset_query(); ?> </div> </div> </div> </div>
-
- 2019-06-07
매우 간단합니다.
테마 루트 디렉토리에 새 PHP 파일을 만들고 다음을 맨 위에 추가하십시오.
<?php /* * Template Name: My custom view * Template Post Type: Post_typename // here you need to add the name of your custom post type */ ?>
전체 예는 다음과 같습니다.
<?php /* * Template Name: My custom view * Template Post Type: Post_typename // here you need to add the name of your custom post type */ ?> <?php get_header();?> <div class="container pt-5 pb-5"> <?php if (has_post_thumbnail()):?> <img src="<?php the_post_thumbnail_url('largest');?>" class="img-fluid"> <?php endif;?> <?php if (have_posts()) : while (have_posts()) : the_post();?> <?php the_content();?> <?php endwhile; endif;?> </div> <?php get_footer();?>
This is very simple to do.
Create a new PHP file in your theme root directory and add this to the top:
<?php /* * Template Name: My custom view * Template Post Type: Post_typename // here you need to add the name of your custom post type */ ?>
Full example will be as following:
<?php /* * Template Name: My custom view * Template Post Type: Post_typename // here you need to add the name of your custom post type */ ?> <?php get_header();?> <div class="container pt-5 pb-5"> <?php if (has_post_thumbnail()):?> <img src="<?php the_post_thumbnail_url('largest');?>" class="img-fluid"> <?php endif;?> <?php if (have_posts()) : while (have_posts()) : the_post();?> <?php the_content();?> <?php endwhile; endif;?> </div> <?php get_footer();?>
-
맞춤 게시물 유형에 템플릿 파일을 할당 할 수 있나요?
items
라는 사용자 지정 게시물 유형을 만들었으며 페이지에서 할 수있는 것처럼 항목에 템플릿을 할당하고 싶습니다.