循环自定义帖子类型

时间:2014-09-24 06:37:20

标签: php css wordpress frameworks content-management-system

我是wordpress的新手。我想创建一个新的自定义帖子类型,并生成此代码,它可以工作。

<?
// Register Custom Post Type
function berita_post_type() {

$labels = array(
    'name'                => _x( 'berita-internal', 'Post Type General Name', 'text_domain' ),
    'singular_name'       => _x( 'berita-internal', 'Post Type Singular Name', 'text_domain' ),
    'menu_name'           => __( 'Berita Internal', 'text_domain' ),
    'parent_item_colon'   => __( 'Parent Item:', 'text_domain' ),
    'all_items'           => __( 'Semua Berita', 'text_domain' ),
    'view_item'           => __( 'Lihat', 'text_domain' ),
    'add_new_item'        => __( 'Tambah', 'text_domain' ),
    'add_new'             => __( 'Tambah Berita', 'text_domain' ),
    'edit_item'           => __( 'Edit Berita', 'text_domain' ),
    'update_item'         => __( 'Update berita', 'text_domain' ),
    'search_items'        => __( 'Search berita', 'text_domain' ),
    'not_found'           => __( 'Not found', 'text_domain' ),
    'not_found_in_trash'  => __( 'Not found in Trash', 'text_domain' ),
);
$args = array(
    'label'               => __( 'berita-internal', 'text_domain' ),
    'description'         => __( 'berita-internal', 'text_domain' ),
    'labels'              => $labels,
    'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', ),
    'taxonomies'          => array( 'category', 'post_tag' ),
    'hierarchical'        => false,
    'public'              => true,
    'show_ui'             => true,
    'show_in_menu'        => true,
    'show_in_nav_menus'   => true,
    'show_in_admin_bar'   => true,
    'menu_position'       => 5,
    'can_export'          => true,
    'has_archive'         => true,
    'exclude_from_search' => false,
    'publicly_queryable'  => true,
    'rewrite'             => true,
    'capability_type'     => 'page',
);
register_post_type( 'internal', $args );

}

// Hook into the 'init' action
add_action( 'init', 'berita_post_type', 0 );

?>

它有效,但我如何显示该自定义帖子类型中的所有帖子? 它就像一个普通的博客帖子 感谢

2 个答案:

答案 0 :(得分:1)

最好创建一个新模板并使用下面的代码创建新模板,然后创建新页面并将此模板分配给您的页面 试试这样的事情

<?php
/**
 * Template Name: Your Template name
 *
 */
?>

<?php get_header(); ?>

        <div id="container">
            <div id="content">

<?php
$type = 'berita-internal'; //change product type as per your custom post type
$args=array(
  'post_type' => $type,
  'post_status' => 'publish',
  'posts_per_page' => -1,
  'caller_get_posts'=> 1

$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
  while ($my_query->have_posts()) : $my_query->the_post(); ?>
    <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
    <?php
  endwhile;
}
wp_reset_query();  // Restore global post data stomped by the_post().
?>


</div><!-- #content -->
        </div><!-- #container -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

答案 1 :(得分:1)

试试这个:创建新文件berita-Internal.php上传到当前主题目录

<?php
/**
 * Template Name: Berita Internal
 *
 * @package WordPress
 */

get_header(); ?>

<div id="primary" class="site-content">
    <div id="content" role="main">

        <?php
        $args=array(
          'post_type' => 'berita-internal',
          'post_status' => 'publish',
          'posts_per_page' => -1,
          'caller_get_posts'=> 1);

        $my_query = null;
        $my_query = new WP_Query($args);
        if( $my_query->have_posts() ) {
          while ($my_query->have_posts()) : $my_query->the_post(); ?>
            <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
            <?php
          endwhile;
        }
        wp_reset_query();  // Restore global post data stomped by the_post().
        ?>

    </div><!-- #content -->
</div><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

然后转到wp-admin创建新页面(page-&gt; add new)。看右边,

Go go dropdow Template-&gt;选择Berita Internal。然后保存并查看页面。