WordPress: el metacuadro de la imagen destacada no se muestra en el tipo de publicación personalizada

7 minutos de lectura

avatar de usuario
Ashley Staggs

Acabo de crear un tipo de publicación personalizada, pero por algún motivo no aparece el cuadro meta de la imagen destacada.

Sin embargo, se muestra en el tipo de publicación “publicaciones”.

He habilitado la compatibilidad con temas para miniaturas y he agregado el siguiente código en mi código de tipo de publicación personalizado.

<?php

function register_cpt_product() {

    $labels = array( 
        'name' => _x( 'Products', 'product' ),
        'singular_name' => _x( 'Product', 'product' ),
        'add_new' => _x( 'Add New', 'product' ),
        'add_new_item' => _x( 'Add New Product', 'product' ),
        'edit_item' => _x( 'Edit Product', 'product' ),
        'new_item' => _x( 'New Product', 'product' ),
        'view_item' => _x( 'View Product', 'product' ),
        'search_items' => _x( 'Search Products', 'product' ),
        'not_found' => _x( 'No products found', 'product' ),
        'not_found_in_trash' => _x( 'No products found in Trash', 'product' ),
        'parent_item_colon' => _x( 'Parent Product:', 'product' ),
        'menu_name' => _x( 'Products', 'product' ),
    );

    $args = array( 
        'labels' => $labels,
        'hierarchical' => false,
        'description' => 'Allows the user to create products',
        'supports' => array( 'title', 'editor', 'thumbnail', 'revisions' ),
        'public' => true,
        'show_ui' => true,
        'show_in_menu' => true,
        'show_in_nav_menus' => true,
        'publicly_queryable' => true,
        'exclude_from_search' => false,
        'has_archive' => true,
        'query_var' => true,
        'can_export' => true,
        'rewrite' => true,
        'capability_type' => 'post'
    );

    register_post_type( 'product', $args );
}

add_action( 'init', 'register_cpt_product' );

?>

Lo extraño es que en las páginas que enumeran mis entradas para mi tipo de publicación, hay una columna llamada Miniatura.

ingrese la descripción de la imagen aquí

¿Alguien sabe lo que está pasando?

Gracias

avatar de usuario
Simón

Las miniaturas están deshabilitadas de forma predeterminada, el Codex de WordPress lo establece explícitamente aquí,

Los temas deben declarar su compatibilidad con miniaturas de publicaciones antes de que la interfaz para asignar estas imágenes aparezca en las pantallas Editar publicación y Editar página.

Asegúrate de haberlo hecho también add_theme_support('post-thumbnails') en algún lugar de su tema/complemento, o que su tipo de publicación está en la lista de tipos de publicación proporcionada a la función anterior (el segundo argumento es una matriz opcional de tipos de publicación) si ya lo está habilitando por tipo de publicación.

Parece que la configuración de “Opciones de pantalla” para la publicación destacada se puede configurar para ocultar/mostrar por tipo de publicación. Aunque es descabellado, podría haber sido desactivado, aunque supongo que debería estar activado de forma predeterminada. También intente verificar el valor de retorno de post_type_supports('project', 'thumbnail') para determinar si la configuración está realmente establecida según lo previsto, lo que indicaría que el problema está relacionado solo con la sección de administración.

El cuadro meta de la publicación destacada se agrega a la sección de administración mediante las siguientes líneas de código:

if ( current_theme_supports( 'post-thumbnails', $post_type ) && post_type_supports( $post_type, 'thumbnail' ) )
    add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', null, 'side', 'low');

Tal vez podría ejecutar esa declaración if en su tema/complemento y asegurarse de que sea verdadero según lo previsto. En caso de que lo sea, es posible que también desee inspeccionar la fuente de la página de edición para ver si #postimagediv está en el marcado pero no se muestra.

ACTUALIZAR:

Acabo de pegar el siguiente código al final de functions.php del tema Twenty Eleven, en una instalación de WordPress 3.4.2 sin complementos activados, y funcionó bien: apareció el tipo y pude ver el cuadro de meta en miniatura de la publicación en la pantalla de edición.

add_theme_support('post-thumbnails');
function setup_types() {
    register_post_type('mytype', array(
        'label' => __('My type'),
        'supports' => array( 'title', 'editor', 'thumbnail', 'revisions' ),
        'show_ui' => true,
    ));
}
add_action('init', 'setup_types');

  • Dije en mi pregunta que ya he habilitado el soporte de temas para miniaturas, así que no es eso.

    -Ashley Staggs

    25/10/2012 a las 14:51

  • Lo siento, debo haberme perdido eso. ¿Hace alguna diferencia si corres add_post_type_support('your-type', 'thumbnail'); después de registrar el tipo de publicación?

    – Simón

    25 de octubre de 2012 a las 14:53


  • Lo intentaré en unos minutos. Mientras tanto, actualicé mi pregunta con algo extraño. Gracias

    -Ashley Staggs

    25 de octubre de 2012 a las 15:04

  • También he mirado mil veces las opciones de la pantalla y sin suerte 🙁

    -Ashley Staggs

    25/10/2012 a las 15:22

  • y agregar add_post_type_support no cambia nada

    -Ashley Staggs

    25/10/2012 a las 15:23

tengo el mismo problema Utilicé el complemento “tipo de publicación personalizada ui” para crear un tipo de publicación de “cartera”. Intenté muchas cosas, pero no funcionó. Finalmente he probado este código

add_action('init', 'my_custom_init');
    function my_custom_init() {
        // 'portfolio' is my post type, you replace it with yours
        add_post_type_support( 'portfolio', 'thumbnail' ); 
    }

funcionó !! ¡Tengo este código de Codex!

Si está ejecutando un tema personalizado, ese tema puede tener una llamada de soporte de tema en algún lugar de sus archivos personalizados que podría estar anulando su llamada de soporte de tema.

Si puede rastrear ese seguimiento de la llamada de ese tema, puede copiarlo en su propio archivo de tema y luego agregarle su tipo de publicación personalizada.

Puede ponerlo dentro de una función y luego usar un enlace de acción, como after_setup_theme.

aquí hay un ejemplo de una llamada de soporte original de un tema personalizado:

add_theme_support('post-thumbnails', array('slide-items','post','gallery-items','audio-items','video-items','page','event-items',

Estaba ejecutando un tema secundario fuera de ese tema principal y necesitaba un tipo de publicación personalizada llamada ‘personal’. A pesar de que declaré soporte para que ese tipo de publicación personalizada incluyera miniaturas, el cuadro meta de la imagen destacada no se mostraba.

Agregué el siguiente código a mi archivo child theme functions.php. Tenga en cuenta que agregué ‘personal’ al final de la función.

add_action( 'after_setup_theme', 'add_theme_support' );

function add_theme_support (){
    add_theme_support('post-thumbnails', array('slide-items','post','gallery-items','audio-items','video-items','page','event-items','staff'));
    }

Espero que ayude.

Me doy cuenta de que esta es una pregunta anterior, pero ninguna de estas soluciones funcionó para mí. Resultó que había dos problemas, primero: varios complementos que intentaban llamar add_theme_support. La segunda era que asumían ciertos tipos, o necesitaban conocimiento del tema a la hora de añadir soporte.

En el siguiente fragmento de código, primero determino con seguridad cuál es el soporte del tema y luego agrego mi tipo personalizado a la lista. Al hacer esto en su complemento, será compatible con otros temas o complementos amigables. De hecho creo que un safe_add_theme_support sería bueno. De todos modos, espero que esto ayude a alguien y los salve de una noche frustrante.

$currentPostThumbnails = get_theme_support('post-thumbnails');
if(is_array($currentPostThumbnails)) {
    add_theme_support( 'post-thumbnails', array_merge($currentPostThumbnails, array( 'mytype' )) );
}else{
    add_theme_support( 'post-thumbnails', 'mytype');
}

opciones de pantalla wordpress

Asegúrese de que la Imagen destacada esté configurada para Mostrar en pantalla en las Opciones de pantalla en la página del Editor de publicaciones.

  • Parece que algo anda mal con tu register_post_type. ¿Puedes mostrarnos el resto?

    – crowjonah

    25 de octubre de 2012 a las 15:48

  • Agregué todo mi código de tipo de publicación personalizado y agregué un par de capturas de pantalla de lo que está sucediendo.

    -Ashley Staggs

    25/10/2012 a las 16:42

avatar de usuario
registro gore

Me he encontrado con este problema un par de veces. Deshabilité el complemento BackupBuddy y volvió el metabox de la imagen destacada. Puede que no funcione en su caso, pero espero que esto ayude a alguien más.

Es posible que desee intentar deshabilitar todos sus complementos y volver a activarlos para ver si es un problema con un complemento.

  • Parece que algo anda mal con tu register_post_type. ¿Puedes mostrarnos el resto?

    – crowjonah

    25 de octubre de 2012 a las 15:48

  • Agregué todo mi código de tipo de publicación personalizado y agregué un par de capturas de pantalla de lo que está sucediendo.

    -Ashley Staggs

    25/10/2012 a las 16:42

avatar de usuario
Jeff Vdovjak

Si bien esta es una vieja pregunta, se ha hecho muchas más veces. Estaba teniendo este mismo problema sin soluciones, hasta que me di cuenta de que el usuario también debe tener la capacidad de cargar imágenes. Si está utilizando una función personalizada (o ha iniciado sesión como colaborador o suscriptor), su función (o usuario) debe tener la capacidad de upload_files.

¿Ha sido útil esta solución?