wake-up-neo.com

Dateien anhängen Metabox

Weiß jemand zufällig, wie man einen einfachen "Anhängen/Durchsuchen" -Button erstellt, der in eine Metabox eingefügt werden kann, die beim Klicken einen Leuchtkasten öffnet, in dem der Benutzer alle Mediendateien anzeigen kann, und kreuzen Sie die gewünschten an befestigen und klicken Sie auf eine Schaltfläche "Anhängen" auf der Unterseite. Nach dem Klicken auf "Anhängen" wird die Post-Metabox mit allen von ihm ausgewählten Dateien aktualisiert ...

4

Wenn Sie einen Leuchtkasten öffnen möchten, suchen Sie nach etwas und führen Sie dann eine Aktion in diesem Ordner aus: In Wordpress ist dies bereits integriert. Was Sie fragen, ist im Grunde die Thickbox, die sich wie im Post-Editor öffnet, wenn Sie nach einem Bild in suchen Die Gallerie.

Sie finden den gesamten Code, den Sie dafür benötigen, bereits ininwordpress. Das Einzige, was Sie tun müssen, ist, das komplexere Stück Code zu sammeln, es in ein eigenes Plugin zu packen und es an Ihre Bedürfnisse anzupassen. Diese Komponenten sind für sich genommen nicht sehr wiederverwendbar, daher gibt es keine API, die Ihnen dies hätte erleichtern können. Nun, das stimmt nicht wirklich, Sie können tb_show() verwenden, um die Thickbox für Beispiel anzuzeigen.

Insgesamt ist dies jedoch nicht trivial. Sie suchen wahrscheinlich nach etwas, das einfacher zu übernehmen ist. Ich weiß es nicht. Ich habe einmal an der Kommunikation mit dem Thickbox <-> Post-Editor herumgebastelt (was möglicherweise komplexer ist als das, was Sie benötigen), und es gibt eine Menge zu überlegen, um Dinge zu tun. Für das von Ihnen beschriebene Szenario ist es jedoch häufig erforderlich, der Seite, die die Thickbox öffnet, zu signalisieren, dass nach der Auswahl im Popup etwas aktualisiert werden soll.

Für die Metabox sollten Sie genügend Code-Schnipsel finden, um einen zu erstellen, daher bin ich mir ziemlich sicher, dass es dafür bereits Code gibt.

2
hakre
2
t31os

https://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress

Diese Leute haben in WP admin eine großartige Bibliothek für benutzerdefinierte Feldtypen erstellt. Ich denke, es ist genau das, wonach Sie suchen - es macht das Erstellen von Bild-Upload-Feldern trivial.

Dies ermöglicht es, Metaboxen für jeden Pfostentyp programmgesteuert mit Feinsteuerung zu dekalieren.

Es gab eine Bitte um mehr Details. Hier ist ein Beispiel aus der Dokumentation (mit einigen Mods zur Verwendung der Dateikontrolle). eine Bild-Metabox:

function be_sample_metaboxes( $meta_boxes ) {
$prefix = '_cmb_'; // Prefix for all fields
$meta_boxes[] = array(
    'id' => 'test_metabox',
    'title' => 'Test Metabox',
    'pages' => array('page'), // post type
    'context' => 'normal',
    'priority' => 'high',
    'show_names' => true, // Show field names on the left
    'fields' => array(
        array(
            'name' => 'Test Text',
            'desc' => 'field description (optional)',
            'id' => $prefix . 'test_image',
            'type' => 'file'
        ),
    ),
);

return $meta_boxes;
}
add_filter( 'cmb_meta_boxes', 'be_sample_metaboxes' );


add_action( 'init', 'be_initialize_cmb_meta_boxes', 9999 );
function be_initialize_cmb_meta_boxes() {
if ( !class_exists( 'cmb_Meta_Box' ) ) {
    require_once( 'lib/metabox/init.php' );
}
}

Was ich tue, ist dieses in mein posttype_my_post_type_name.php zu setzen, in dem ich den Pfostentyp verursache. Fordern Sie dies in der Datei functions.php an, nachdem Sie die Metabox-Bibliothek angefordert haben.

1
Will