WordPress – Featured Image Meta Box wird bei benutzerdefiniertem Beitragstyp nicht angezeigt

Lesezeit: 7 Minuten

Benutzeravatar von Ashley Staggs
Ashley Staggs

Ich habe gerade einen benutzerdefinierten Beitragstyp erstellt, aber aus irgendeinem Grund wird das Metafeld „Empfohlenes Bild“ nicht angezeigt.

Es wird jedoch im Beitragstyp “Beiträge” angezeigt.

Ich habe die Designunterstützung für Miniaturansichten aktiviert und den folgenden Code in meinen benutzerdefinierten Beitragstypcode eingefügt.

<?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' );

?>

Das Seltsame ist, dass es auf den Seiten, die meine Einträge für meinen Beitragstyp auflisten, eine Spalte namens Thumbnail gibt.

Geben Sie hier die Bildbeschreibung ein

Weiß jemand was los ist?

Vielen Dank

Benutzeravatar von Simon
Simon

Thumbnails sind standardmäßig deaktiviert, der WordPress Codex gibt dies ausdrücklich an hier,

Themes müssen ihre Unterstützung für Post-Thumbnails erklären, bevor die Oberfläche zum Zuweisen dieser Bilder auf den Bildschirmen „Post bearbeiten“ und „Seite bearbeiten“ erscheint.

Stellen Sie sicher, dass Sie dies auch getan haben add_theme_support('post-thumbnails') irgendwo in deinem Theme/Plugin, oder dass dein Post-Typ in der Liste der Post-Typen ist, die der obigen Funktion bereitgestellt werden (zweites Argument ist ein optionales Array von Post-Typen), wenn du es bereits pro Post-Typ aktivierst.

Es scheint, dass die Einstellung „Bildschirmoptionen“ für hervorgehobene Beiträge so eingestellt werden kann, dass sie pro Beitragstyp ein-/ausgeblendet werden. Obwohl es weit hergeholt ist, könnte es deaktiviert worden sein, obwohl es standardmäßig aktiviert sein sollte, denke ich. Versuchen Sie auch, den Rückgabewert von zu überprüfen post_type_supports('project', 'thumbnail') um festzustellen, ob die Einstellung tatsächlich wie beabsichtigt eingestellt ist, was darauf hindeuten würde, dass sich das Problem nur auf den Admin-Bereich bezieht.

Die vorgestellte Post-Meta-Box wird dem Admin-Bereich durch die folgenden Codezeilen hinzugefügt:

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

Vielleicht könnten Sie diese if-Anweisung in Ihrem Design/Plugin ausführen und sicherstellen, dass sie wie beabsichtigt wahr zurückgibt. Falls dies der Fall ist, möchten Sie möglicherweise auch die Quelle der Bearbeitungsseite überprüfen, um festzustellen, ob dies der Fall ist #postimagediv ist im Markup, wird aber nicht angezeigt.

AKTUALISIEREN:

Ich habe einfach den folgenden Code am Ende eingefügt functions.php des Twenty Eleven-Themes auf einer WordPress 3.4.2-Installation ohne aktivierte Plugins, und es funktionierte gut – der Typ wurde angezeigt und ich konnte das Post-Thumbnail-Metafeld im Bearbeitungsbildschirm sehen.

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

  • Ich habe in meiner Frage gesagt, dass ich die Themenunterstützung für Thumbnails bereits aktiviert habe, das ist es also nicht.

    – Ashley Staggs

    25. Oktober 2012 um 14:51 Uhr

  • Entschuldigung, das muss ich übersehen haben. Macht es einen Unterschied, ob du rennst add_post_type_support('your-type', 'thumbnail'); nach der Registrierung des Beitragstyps?

    – Simon

    25. Oktober 2012 um 14:53 Uhr


  • Ich werde das in ein paar Minuten versuchen. In der Zwischenzeit habe ich meine Frage mit etwas Seltsamem aktualisiert. Vielen Dank

    – Ashley Staggs

    25. Oktober 2012 um 15:04 Uhr

  • Ich habe auch die Bildschirmoptionen tausendmal überprüft und kein Glück 🙁

    – Ashley Staggs

    25. Oktober 2012 um 15:22 Uhr

  • und das Hinzufügen von add_post_type_support ändert nichts

    – Ashley Staggs

    25. Oktober 2012 um 15:23 Uhr

Ich habe das gleiche Problem. Ich habe das Plugin “Custom Post Type UI” verwendet, um einen Post-Typ “Portfolio” zu erstellen. Ich habe viele Dinge versucht, aber es hat nicht funktioniert. Endlich habe ich diesen Code ausprobiert

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

es funktionierte !! Ich habe diesen Code von Codex!!

Wenn Sie ein benutzerdefiniertes Design ausführen, enthält dieses Design möglicherweise irgendwo in seinen benutzerdefinierten Dateien einen theme_support-Aufruf, der Ihren Design-Support-Aufruf möglicherweise überschreibt.

Wenn Sie den Aufruf dieses Themas nachverfolgen können, können Sie es in Ihre eigene Themendatei kopieren und dann Ihren benutzerdefinierten Beitragstyp hinzufügen.

Sie können es in eine Funktion einfügen und dann einen Action-Hook wie after_setup_theme verwenden.

Hier ist ein Beispiel für einen ursprünglichen Support-Anruf für ein benutzerdefiniertes Design:

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

Ich habe ein untergeordnetes Thema neben diesem Hauptthema ausgeführt und benötigte einen benutzerdefinierten Beitragstyp namens “Staff”. Obwohl ich Unterstützung für diesen benutzerdefinierten Beitragstyp erklärt hatte, um Thumbnails einzuschließen, wurde die Metabox für vorgestellte Bilder nicht angezeigt.

Ich habe den folgenden Code zu meiner Datei „functions.php“ meines Child-Themes hinzugefügt. Beachten Sie, dass ich am Ende der Funktion „Staff“ hinzugefügt habe.

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

Ich hoffe, das hilft.

Mir ist klar, dass dies eine ältere Frage ist, aber keine dieser Lösungen hat bei mir funktioniert. Es stellte sich heraus, dass es zwei Probleme gab, erstens: mehrere Plugins versuchten anzurufen add_theme_support. Das zweite war, dass sie bestimmte Typen annahmen oder Kenntnisse über das Thema benötigten, wenn sie Unterstützung hinzufügten.

Im folgenden Code-Snippet bestimme ich sicher zuerst, was die Designunterstützung ist, und füge dann meinen benutzerdefinierten Typ zur Liste hinzu. Indem Sie dies in Ihrem Plugin tun, ist es mit anderen benutzerfreundlichen Themen oder Plugins kompatibel. Tatsächlich denke ich, a safe_add_theme_support wäre nett. Wie auch immer, ich hoffe, das hilft jemandem und bewahrt ihn vor einem frustrierenden Abend.

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

WordPress-Bildschirmoptionen

Stellen Sie sicher, dass Sie in den Bildschirmoptionen auf der Seite „Post-Editor“ die Option „Vorgestelltes Bild“ auf „Auf dem Bildschirm anzeigen“ eingestellt haben

  • Klingt so, als ob etwas mit deinem nicht stimmt register_post_type. Kannst du uns den Rest zeigen?

    – Krähjona

    25. Oktober 2012 um 15:48 Uhr

  • Ich habe meinen gesamten benutzerdefinierten Beitragstypcode hinzugefügt und ein paar Screenshots von dem hinzugefügt, was vor sich geht.

    – Ashley Staggs

    25. Oktober 2012 um 16:42 Uhr

Benutzeravatar von gorelog
gorelog

Ich bin ein paar Mal auf dieses Problem gestoßen. Ich habe das BackupBuddy-Plug-in deaktiviert und das Featured Image-Metafeld kam zurück. Funktioniert möglicherweise nicht in Ihrem Fall, aber hoffentlich hilft dies jemand anderem.

Vielleicht möchten Sie versuchen, alle Ihre Plugins zu deaktivieren und sie wieder einzuschalten, um nacheinander zu sehen, ob es sich um ein Problem mit einem Plugin handelt.

  • Klingt so, als ob etwas mit deinem nicht stimmt register_post_type. Kannst du uns den Rest zeigen?

    – Krähjona

    25. Oktober 2012 um 15:48 Uhr

  • Ich habe meinen gesamten benutzerdefinierten Beitragstypcode hinzugefügt und ein paar Screenshots von dem hinzugefügt, was vor sich geht.

    – Ashley Staggs

    25. Oktober 2012 um 16:42 Uhr

Benutzeravatar von Jeff Vdovjak
Jeff Vdovjak

Obwohl dies eine alte Frage ist, wurde sie schon viele Male gestellt. Ich hatte das gleiche Problem ohne Fixes – bis mir klar wurde, dass der Benutzer auch die Möglichkeit haben muss, Bilder hochzuladen. Wenn Sie eine benutzerdefinierte Rolle verwenden (oder als Mitwirkender oder Abonnent angemeldet sind), muss Ihre Rolle (oder Ihr Benutzer) über die Fähigkeit verfügen upload_files.

1401490cookie-checkWordPress – Featured Image Meta Box wird bei benutzerdefiniertem Beitragstyp nicht angezeigt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy