이미지 중심 맞춤 게시물 유형을 만드시겠습니까?


17

이미지 중심 맞춤 게시물 유형을 만드는 데 도움이되는 사람이 있습니까?

더 자세히 설명하기 위해 내 블로그에는 아래와 같이 회전하는 헤더 이미지가 있습니다.

임의의 이미지를 보여주는 블로그 헤더

왼쪽 상단에있는 두 개의 이미지는 무작위로 만들어지며 이러한 이미지를 포함하기 위해 존재하는 특정 페이지에 대한 첨부 파일로 존재합니다. 사용자 정의 게시물 유형을 사용하여 다른 방법으로 저장하는 것이 가능한지 궁금합니다. 새로운 게시물 유형 인 "header-image"를 만들었으며 여기서 어디로 가야하는지 파악하려고합니다. 각 헤더 이미지 "게시물"에 하나의 이미지 첨부 파일이 있어야합니다. 페이지에서 임의의 이미지를 가져 오는 대신 헤더 이미지 게시물 유형에서 임의의 게시물을 가져옵니다. 이것을 감안할 때

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

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

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


2
답변 수락 크레딧으로 이동해야하는 곳의 답변을 해당 사람에게 제공하는 것이 좋습니다.
Ryan Gibbons

답변:


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) ) );
}

잘 했어! 그것을 사랑하십시오!
John P Bloch

그리고 썸네일에 링크를 어떻게 추가합니까? 관리자와 템플릿 모두? 멋져요!
Florescu Adrian

이미지를 페이지에 할당하도록 수정할 수 있습니까?
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
"featured-image"값을 지원하면 새 헤더 이미지를 만들 때 빈 화면이 표시되지만 "썸네일"은 "Featured Image"라는 새 메타 상자를 추가합니다. 감사!
Annika Backstrom

네가 옳아. 그것에 대한 나의 실수.
goldenapples
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.