创建以图像为中心的自定义帖子类型?


17

有没有人提供创建以图像为中心的自定义帖子类型的提示?

详细地说,我的博客具有旋转的标题图像,如下所示:

博客标题显示随机图像

左上角的两个图像是随机的,并且作为特定页面的附件而存在,该页面仅包含这些图像。我想知道使用自定义帖子类型以其他方式存储这些内容是否可行。我创建了一个新的帖子类型“ header-image”,并且试图找出从这里开始的方向。我希望每个标题图像“ post”都具有一个图像附件。我不是从页面中提取随机图像,而是从标头图像帖子类型中提取随机帖子。鉴于这种,

  1. 如何将简单的界面集成到附件过程中,该界面可从“新标题图像”管理页面获得?
  2. 我可以删除帖子标题和内容输入框来整理页面吗?

目标是为当前的上传过程创建一个更好的界面,并最终能够创建一个分类法来将图像标记为左图/右图。(查看上面的图像,您可以看到右侧的照片掩盖了另一张照片中的脸部。我可以通过将照片标记为左侧和/或右侧显示来避免这种情况。)我可以实现前者。

更新:根据此处的答案,我能够实现此设置。完整代码如下


2
我建议您将要获得答案的答案给该人,以便您可以接受“接受答案”学分。
瑞安·吉本斯

Answers:


18

goldenapple的最初答案为我提供了完成此过程所需的快速入门。

functions.php

这是我用来添加新帖子类型“ header-image”并相应地修改其他管理屏幕的完整代码:

/**
 * Register the Header Image custom post type.
 */
function sixohthree_init() {
    $labels = array(
        'name' => 'Header Images',
        'singular_name' => 'Header Image',
        'add_new_item' => 'Add Header Image',
        'edit_item' => 'Edit Header Image',
        'new_item' => 'New Header Image',
        'view_item' => 'View Header Image',
        'search_items' => 'Search Header Images',
        'not_found' => 'No Header Images found',
        'not_found_in_trash' => 'No Header Images found in Trash'
    );

    $args = array(
        'labels' => $labels,
        'public' => false,
        'show_ui' => true,
        'supports' => array('thumbnail')
    );

    register_post_type( 'header-image', $args );
}
add_action( 'init', 'sixohthree_init' );

/**
 * Modify which columns display when the admin views a list of header-image posts.
 */
function sixohthree_headerimage_posts_columns( $posts_columns ) {
    $tmp = array();

    foreach( $posts_columns as $key => $value ) {
        if( $key == 'title' ) {
            $tmp['header-image'] = 'Header Image';
        } else {
            $tmp[$key] = $value;
        }
    }

    return $tmp;
}
add_filter( 'manage_header-image_posts_columns', 'sixohthree_headerimage_posts_columns' );

/**
 * Custom column output when admin is view the header-image post list.
 */
function sixohthree_headerimage_custom_column( $column_name ) {
    global $post;

    if( $column_name == 'header-image' ) {
        echo "<a href='", get_edit_post_link( $post->ID ), "'>", get_the_post_thumbnail( $post->ID ), "</a>";
    }
}
add_action( 'manage_posts_custom_column', 'sixohthree_headerimage_custom_column' );

/**
 * Make the "Featured Image" metabox front and center when editing a header-image post.
 */
function sixohthree_headerimage_metaboxes( $post ) {
    global $wp_meta_boxes;

    remove_meta_box('postimagediv', 'header-image', 'side');
    add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'header-image', 'normal', 'high');
}
add_action( 'add_meta_boxes_header-image', 'sixohthree_headerimage_metaboxes' );

/**
 * Enable thumbnail support in the theme, and set the thumbnail size.
 */
function sixohthree_after_setup() {
    add_theme_support( 'post-thumbnails' );
    set_post_thumbnail_size(150, 100, true);
}
add_action( 'after_setup_theme', 'sixohthree_after_setup' );

管理员截图

标题图片帖子列表

标题图片发布编辑

模板代码

$header_images = get_posts('post_type=header-image&orderby=rand&numberposts=2');

foreach( $header_images as $idx => $post ) {
    setup_postdata($post);
    the_post_thumbnail('post-thumbnail', array('class' => 'snapshot snapshot' . ($idx+1) ) );
}

做得好!爱它!
约翰·布洛赫

以及如何向缩略图添加链接?无论是在管理员和模板?好看!
Florescu Adrian 2014年

可以修改此图像以将图像分配给页面吗?
Doidgey

13
function register_header_image() {
     register_post_type( 'header-image', 
                         array( 
                             'label'=>'Header Images',
                             'name'=>'Header Images',
                             'singular_name'=>'Header Image',
                             'public'=>true,
                             'show_ui'=>true,
                             'hierarchical'=>true,
                             'supports'=>array('thumbnail') ) );
}

add_action ('init','register_header_image');
add_theme_support( 'post-thumbnails' );

那应该只注册您的帖子类型,而只有一个特色图片字段。有关要传递的参数列表,请参见法典http://codex.wordpress.org/Function_Reference/register_post_type


1
创建新的标题图像时,supports值“ featured-image”会给我一个空白屏幕,但是“ thumbnail”会添加一个名为“ Featured Image”的新元框。谢谢!
Annika Backstrom

你是对的。我的错误。
goldenapples 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.