هل لدى أي شخص أي نصائح لإنشاء نوع مخصص للنشر مخصص للصور؟
للتوضيح ، تحتوي مدونتي على صور رأس دوارة ، كما هو موضح أدناه:
تكون الصورتان في أعلى اليسار عشوائية ، وهي موجودة كمرفقات إلى صفحة محددة موجودة فقط لاحتواء هذه الصور. أتساءل عما إذا كان من الممكن تخزينها بطريقة مختلفة باستخدام أنواع المنشورات المخصصة. لقد قمت بإنشاء نوع منشور جديد ، "صورة رأس" ، وأنا أحاول معرفة إلى أين أذهب من هنا. أريد أن يحتوي كل "منشور" يحتوي على صورة رأس على مرفق صورة واحد. بدلاً من سحب الصور العشوائية من إحدى الصفحات ، أود سحب النشرات العشوائية من نوع منشور صورة الرأس. ونظرا لهذا،
الأهداف هي إنشاء واجهة أفضل لعملية التحميل الحالية ، وفي نهاية المطاف تكون قادرة على إنشاء تصنيف لوضع علامة على الصور كصورة يسارية/صورة صحيحة. (عند النظر إلى الصورة أعلاه ، يمكنك رؤية الصورة على اليمين تغطي الوجه في الصورة الأخرى. يمكنني تجنب ذلك عن طريق وضع علامة على الصور لعرض الجانب الأيسر و/أو الأيمن). لن تكون المشكلة الأخيرة مشكلة إذا يمكنني تنفيذ السابق.
التحديث: بناءً على إجابة هنا ، تمكنت من تنفيذ هذا الإعداد. الرمز الكامل هو نشر أدناه .
أعطاني إجابة goldenapple الأولية قفزة كنت بحاجة لإنهاء هذا الأمر.
إليك الرمز الكامل الذي أستخدمه لإضافة نوع منشور جديد "صورة رأس" وتعديل شاشات المشرف الأخرى وفقًا لذلك:
/**
* 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) ) );
}
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 للحصول على قائمة بالوسائط المطلوب تمريرها.