[Plugin-Development] Post mit Ajax veröffentlichen -> Änderungen anzeigen

  • Guten Abend,

    ich habe ein Plugin entwickelt das unter anderem die Funktion hat einen Post schnell zu veröffentlichen indem
    das Plugin (FALLS der post noch nicht veröffentlicht wurde) direkt in die Post-Übersicht einen Button platziert:


    Das mit dem veröffentlichen klappt super, aber in der Übersicht sieht es immernoch so aus als ob der Post nicht veröffentlicht wurde,
    z.B. steht immernoch "entwurf" da.

    Ich mache das ganze mit AJAX und würde gerne nur die zeile des posts "erneuern" den ich gerade freigegeben hab.
    Ich weiß aber leider nicht wie.

    Page-Reload ist für mich keine Option, da ich das ganze ja sonst nicht mit ajax machen müsste...


    Hoffe es kann mir jemand helfen.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Für solche Aktionen würde ich immer wp_ajax_inline_save verwenden.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • klingt sehr interessant, hab aber leider kein beispiel mit javascript gefunden. nachdem ich die funktion aufgerufen habe wird die liste automatisch neu geladen?
    welche muss ich jeden parameter übergeben oder kann ich nur post_status übergeben?

  • ich denke ich hab's:

    Zitat


    success: function(result) {
    if (result != 'error') {
    jQuery(tr).replaceWith(result);
    }
    }


    funktioniert fast... das einzige was ich jetzt noch beheben müsste ist folgendes:
    ich habe bei dieser liste einen zusätzlichen table-header hinzugefügt mit


    die tr die ich aber zurück bekomme hat diese spalte aber nicht... weiß jemand rat?

  • Du hast doch geschrieben, dass Du das bereits mit Ajax machst, daher gehe ich davon aus, dass Du Dich damit auskennst. Schau Dir an wie die Funktion in WordPress verwendet wird (/wp-admin/js/inline-edit-post.js ab Zeile 244). Die Funktion selbst findest Du in /wp-admin/includes/ajax-actions.php ab Zeile 1598. Dort siehst Du sehr schön wie die Parameter, die aus dem jQuery Script übergeben wurden, aus dem $_POST Array ausgelesen werden und die Tabelle neu gerendert wird.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • ich kenn mich mit ajax aus - ja aber nicht EXTREM gut mit wordpress. es funktioniert alle super nur werden spalten die ich per "manage_edit-mycustomposttype_columns" hinzugefügt habe
    nicht in dem result von (siehe zitat) sind.

    Zitat


    $wp_list_table = _get_list_table( 'WP_Posts_List_Table', array( 'screen' => $_POST['screen'] ) );
    $wp_list_table->display_rows( array( get_post( $_POST['id'] ) ), 0);

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!