it-swarm-ko.tech

이미지 중심 맞춤형 게시 유형 만들기

누구든지 이미지 중심 맞춤형 게시물 유형을 만들기위한 조언이 있습니까?

정교하게 말하면, 내 블로그는 다음과 같이 헤더 이미지를 회전시킵니다.

Blog header showing random images

왼쪽 상단의 두 이미지는 무작위로 추출되며 이러한 이미지가 포함 된 특정 페이지에 대한 첨부 파일로 존재합니다. 사용자 지정 게시 유형을 사용하여 다른 방식으로 저장하는 것이 가능한지 궁금합니다. 나는 새로운 게시물 유형 인 "header-image"를 만들었고 여기서부터 어디로 가야할지 알아 내려고합니다. 각 머리글 이미지 "post"에 하나의 이미지 첨부가 있어야합니다. 페이지에서 임의의 이미지를 가져 오는 대신 머리글 이미지 포스트 유형에서 임의의 게시물을 가져옵니다. 이것을 감안할 때,

  1. "새 헤더 이미지"관리 페이지에서 사용할 수있는 간단한 인터페이스를 첨부 프로세스에 통합하려면 어떻게합니까?
  2. 게시물 제목 및 내용 입력 상자를 제거하여 해당 페이지를 정리할 수 있습니까?

목표는 현재 업로드 프로세스에 더 나은 인터페이스 만들기이며 결국 이미지를 왼쪽/오른쪽 그림으로 표시하기 위해 분류 만들기 _ 할 수 있습니다. (위 이미지를 보면 다른 사진의 얼굴 위로 오른쪽 사진이 보일 수 있습니다. 왼쪽 및/또는 오른쪽 디스플레이의 사진을 표시하여이를 피할 수 있습니다.) 후자는 문제가되지 않습니다. 전 구현할 수 있습니다.

Update : 여기에 대한 답을 바탕으로이 설정을 구현할 수있었습니다. 전체 코드는 아래에 게시됩니다.

16
Annika Backstrom

goldenapple의 초기 대답은 나에게 이것을 끝내기위한 필연적 인 출발점을 주었다.

functions.php

다음은 새 게시물 유형 "헤더 이미지"를 추가하고 이에 따라 다른 관리 화면을 수정하는 데 사용하는 전체 코드입니다.

/**
 * 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 post list

Header Images post editing

템플릿 코드

$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) ) );
}
17
Annika Backstrom
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' );

게시물 형식을 추천 이미지의 필드로만 등록해야합니다. 전달할 인수 목록은 codex http://codex.wordpress.org/Function_Reference/register_post_type 을 참조하십시오.

13
goldenapples