Hinzufügen eines anderen Status (spam, ablehnen, genehmigen) zu WordPress-Kommentaren?

Ich weiß, dass das ein bisschen komisch klingen mag, aber was ich versuche zu tun, ist eher einfach, kann aber technisch schwierig sein.

Ich führe kleine Wettbewerbe auf meiner WordPress-Seite durch, bei denen ich Nutzer auffordere, einen Kommentar zu hinterlassen. Ich wähle einen Kommentar nach einer bestimmten Zeit und das ist der Gewinner.

Was ich jetzt tun möchte, ist, diesen Kommentar als Gewinner zu markieren.

Also denke ich an eine Lösung wie diese: Wenn ich die Kommentare in / wp-admin ansehe, kann ich einen Kommentar als Spam setzen, genehmigt, abgelehnt usw. Ich hätte gerne einen anderen Link / Button, der sagt: “Gewinner “. Wenn ich auf diesen Link klicke, hat der Kommentar eine zusätzliche class wie

  • Gibt es eine clevere Lösung, die Ihnen in den Sinn kommt? Wie kann ich das machen? Irgendwelche anderen Ideen?

    Vielen Dank im Voraus. Matt

    Solutions Collecting From Web of "Hinzufügen eines anderen Status (spam, ablehnen, genehmigen) zu WordPress-Kommentaren?"

    Angenommen, Sie möchten, dass die Einrichtung diese Daten aus der Quickedit-Box aktualisiert, während sie die Liste der Kommentare anzeigt, benötigen Sie eine Reihe von Aktionen und Filtern. Ich habe versucht, passende Kommentare an den notwendigen Stellen für Sie zu machen, obwohl ich bedenke, dass ich das alles zusammen für Sie mit einer kleinen Menge von Tests warf (es funktioniert aber).

    Das sollte dir einen guten Startpunkt geben …

     // Add new heading to comments tables add_filter( 'manage_edit-comments_columns', 'winner_comment_column' ); function winner_comment_column( $columns ) { $columns['winning_comment'] = __( 'Winning Comment' ); return $columns; } // Print comment meta for new meta column add_action( 'manage_comments_custom_column', 'myplugin_comment_column', 10, 2 ); function myplugin_comment_column( $column, $comment_ID ) { if ( 'winning_comment' != $column ) return; echo esc_attr( get_comment_meta( $comment_ID, 'win_comment', true ) ); } // Replace the quickedit action to call an additional expandedOpen function add_filter( 'comment_row_actions', 'my_quick_edit_action', 10, 2 ); function my_quick_edit_action( $actions, $comment ) { global $post; $actions['quickedit'] = '' . __( 'Quick Edit' ) . ''; return $actions; } // Add some javscript into the footer for the edit comments page add_action('admin_footer-edit-comments.php', 'my_quick_edit_javascript'); function my_quick_edit_javascript() { // Create nonce $nonce = wp_create_nonce( 'my_cmeta' ); ?>  < ?php } // Setup ajax callback for the new action add_action( 'wp_ajax_update_winning_comment', 'update_winning_comment_ajax' ); function update_winning_comment_ajax() { // Check nonce check_ajax_referer( 'my_cmeta' ); // Check expected fields are there foreach( array( 'comment_ID', 'comment_metaKey', 'comment_metaValue' ) as $field ) if( !isset( $_POST[$field] ) ) die; // Validate ID $commentID = absint( $_POST['comment_ID'] ); if( !$commentID ) die; // Validate meta key $commentKey = sanitize_title( $_POST['comment_metaKey'] ); if( empty( $commentKey ) ) die; // Validate meta value(or empty) $commentVal = sanitize_title( $_POST['comment_metaValue'] ); // Update meta update_comment_meta( $commentID, $commentKey, $commentVal ); // Success response echo 'success';// Echoed value is received as the response // And die, expected behaviour for ajax actions die; } // Run filter on the comment reply box(necessary to add new fields into the quickedit box) add_filter( 'wp_comment_reply', 'my_quick_edit_menu', 10, 2 ); function my_quick_edit_menu($str, $input) { extract( $input ); $table_row = true; if( $mode == 'single' ) $wp_list_table = _get_list_table('WP_Post_Comments_List_Table'); else $wp_list_table = _get_list_table('WP_Comments_List_Table'); // Get editor string ob_start(); $quicktags_settings = array( 'buttons' => 'strong,em,link,block,del,ins,img,ul,ol,li,code,spell,close' ); wp_editor( '', 'replycontent', array( 'media_buttons' => false, 'tinymce' => false, 'quicktags' => $quicktags_settings, 'tabindex' => 104 ) ); $editorStr = ob_get_contents(); ob_end_clean(); // Get nonce string ob_start(); wp_nonce_field( "replyto-comment", "_ajax_nonce-replyto-comment", false ); if ( current_user_can( "unfiltered_html" ) ) wp_nonce_field( "unfiltered-html-comment", "_wp_unfiltered_html_comment", false ); $nonceStr = ob_get_contents(); ob_end_clean(); $content = '
    '; if ( $table_row ) : $content .= '
    '; else : $content .= ''; endif; $content .= "\n
    \n"; return $content; }

    Und sollte so etwas produzieren ..

    Kommentar Meta – Quickedit http://img802.imageshack.us/img802/1337/commentmeaexample.jpg

    Beim ersten Mal habe ich Code für das Schnellbearbeitungsfeld auf der Kommentarseite geschrieben, also entschuldige alle Bereiche, in denen Verbesserungen möglich sind (es gibt immer Platz dafür), ich habe nicht viel Zeit, um den Code durchzugehen und Verbesserungen vorzunehmen im Augenblick.

    Viel Glück, und ich hoffe, das war hilfreich.

    Oh, und kurze Erwähnung für Shibashakes Anleitung, mit dem Quick Edit herumzuspielen, habe ich etwas von seinem Code benutzt, um das zusammen zu bringen, also definitiv etwas Linkssaft verdient.

    Shibashake – Erweitern Sie das Quick-Edit-Menü für WordPress-Kommentare