如何为我的自定义类型制作模板?

时间:2014-11-21 11:16:13

标签: wordpress templates custom-post-type

我在函数内部创建了一个自定义帖子类型,并通过ACF添加了一些内容。 我首先尝试创建一个archive-forfragningar.php,但它没有用。 然后在我的index.php里面我添加了 php if 但是我无法使用 is_post_type_archive 来定位我的自定义帖子类型。当我进入我的存档页面时,我得到的是其他index.php内的代码

my custome post type

function create_forfragningar_cpt() {
  register_post_type( 'forfragningar', 
    array(
      'public' => true,
      'has_archive' => true,
      'menu_position' => 5, // places menu item directly below Posts
      'menu_icon' => '',
      'labels' => array(
        'name' => __( 'Förfrågningar' ),
        'singular_name' => __( 'Förfrågning' ),
        'add_new' => __( 'Lägg till' ),
        'add_new_item' => __( 'Lägg till nytt Förfrågning' ),
        'edit' => __( 'Redigera' ),
        'edit_item' => __( 'Redigera Förfrågning' ),
        'new_item' => __( 'Nytt Förfrågning' ),
        'view' => __( 'Visa Förfrågning' ),
        'view_item' => __( 'Visa Förfrågning' ),
        'search_items' => __( 'Sök igenom förfrågningar' ),
        'not_found' => __( 'Inga förfrågningar hittade' ),
        'not_found_in_trash' => __( 'Inga förfrågningar hittade i Papperskorgen' ),
        'parent' => __( 'Föräldrer av Förfrågning' ),
        ),
    )
  );
}
add_action( 'init', 'create_forfragningar_cpt' );


index.php

<?php if(is_front_page()){ ?>

//code

<?php } if ( is_post_type_archive('forfragningar') ) { ?>

<h1>Test</h1>
//code

<?php } else { ?>

//code

<?php } ?>

3 个答案:

答案 0 :(得分:3)

你可以这样轻松地做到这一点, 只需复制single.php并重命名为single-custom-post-type-name.php,如single-cars.php,与归档或分类相同, taxonomy-taxonomy-name.phparchive-taxonomy-name.php

答案 1 :(得分:1)

如果要为自定义帖子类型呈现特定的存档页面,则需要了解Template Hierarchy的工作原理。我也使用这个image

在您的情况下,您必须创建archive-forfragningar.phpsingle-forfragningar.php并在这些文件中插入您的代码。 How to make custom post type template.看看这个。
您在模板中不需要if ( is_post_type_archive('forfragningar') ),因为wordpress已经是此自定义类型。您可以在非is_post_type_archive('forfragningar')自定义帖子类型模板文件中使用forfragningar来检查您是否在自定义帖子类型的查询中,并针对您的案例进行特定的工作。
例如想要在<h1> tiltle </h1>页面中将forfragningar呈现给您的标题。你要做的是:

插入header.php

if ( is_post_type_archive('forfragningar') ) { ?>

<h1>Test</h1>
//code

<?php } else { ?>

//code

<?php } ?>

然后在自定义类型模板中使用此get_header();呈现标题 这将是为您的自定义类型创建标题,当wordpress运行您的forfragningar类型时,标题将运行特定代码。

答案 2 :(得分:1)

尝试以下代码。制作像single-{post_type}.php

这样的php文件

现在最后您的文件名为single-forfragningar.php

将文件single-forfragningar.php设为根目录