it-swarm.com.de

Erstellen eines Admin-Widgets für /wp-admin/post.php?

Hallo und danke, dass du im Voraus geholfen hast.

Ich versuche, ein Widget zu erstellen, das sich innerhalb der post.php-Seite befindet, wenn ich einen vorhandenen Beitrag bearbeite (Nicht new-post.php, ich benötige eine ID). Dieses benutzerdefinierte Widget wird die Beitrags-ID abrufen und in einer anderen Datenbank speichern. Dies geschieht über Ajax und verfügt über eine eigene unabhängige Schaltfläche zum Speichern.

Ziemlich einfach, oder? Es sei denn, ich kann nicht herausfinden, wie ich mein Widget auf der post.php-Seite anzeigen lasse.

Hier ist mein Testcode in themes/myTheme/functions.php, nur um zu versuchen, ihn an die richtige Stelle zu bringen ... aber er funktioniert nicht.

function artist_associator_dashboard_widget_function(){
    echo "Hello world";
}

function artist_associator_add_dashboard_widget(){
    wp_add_dashboard_widget('artist_associator_dashboard_widget', 'Artist Associator', 'artist_associator_dashboard_widget_function');
}
add_action('wp_dashboard_setup','artist_associator_add_dashboard_widget');

Ich habe auch versucht, ein paar andere Aktionen auszuführen, die vielversprechend aussahen, aber nicht funktionierten und meine Funktionen nicht fanden.

2
user2645

Zum einen sind Dashboard-Widgets (was Sie im Beispiel verwenden) für die WordPress-Hauptseite.

Ich denke, was Sie wollen, ist dieses Tutorial . Sie möchten auch add_meta_box betrachten, um zu sehen, wie Sie eine Metabox zu Ihrem Beitragsbildschirm hinzufügen. Hier ist ein Code aus meinem aktuellen Projekt, der Ihnen helfen soll, eine Metabox zum Post-Edit-Bildschirm hinzuzufügen.

$m_visitor_info = array(
        'id' => 'argus_edit_visitor',
        'name' => 'Visitor Information',
        'cb' => array( &$this, '_argus_edit_visitor' ),
        'type' => 'visitor',
        'context' => 'normal',
        'priority' => 'high',
    );

add_meta_box( $m_visitor_info['id'], $m_visitor_info['name'], $m_visitor_info['cb'], $m_visitor_info['type'], $m_visitor_info['context'], $m_visitor_info['priority'] );

Ändern Sie alles nach Ihren Wünschen. Grundsätzlich wird hierdurch eine benutzerdefinierte Metabox erstellt, die als primäre Eingabeauswahl für den Beitrag angezeigt wird (ich verwende keine Editor- oder Titelunterstützung). Der Kontext kann entweder "normal", "fortgeschritten" oder "seitlich" sein. Ich habe keine Verwendung für "Fortgeschrittene" gefunden, obwohl es aus irgendeinem Grund Standard ist.

Auf jeden Fall müssen Sie wahrscheinlich überprüfen, ob Sie eine vorhandene Seite bearbeiten oder einen neuen Beitrag erstellen.

Eine bessere Lösung wäre jedoch möglicherweise die Verwendung von add_action , um das Ereignis save_post zu verknüpfen und Ihren Ajax dort zu verwenden, um die Post-ID in Ihrer externen Datenbank zu speichern.

2
Zack