Domanda

Questo è per un personal usare plug sto cercando di fare. Voglio inviare un commento dal sito A al mio blog (un po 'come l'invio di Trackbacks / Pingbacks ma un commento completo).

Per esempio, sul sito A Ho una forma con un nome, URL, e commentare campo. I dati inseriti nel sito A, voglio inviare al sito B (il mio blog) tramite parametri URL o il metodo POST.

Suppongo che avrò bisogno di un gancio di azione sul mio blog per recuperare i dati inviati dal sito A ed inserirla nella tabella wp commento.

È possibile?

È stato utile?

Soluzione

In WordPress, quasi tutto è possibile. Tutto dipende, a volte quanto duramente si desidera lavorare per essa. :)

Il Commento Post sotto forma di corso utilizza HTTP POST per inviare a /wp-comments-post.php così si potrebbe usare quella fatta eccezione per il nonces , se si desidera inviare non filtrato HTML. Dovresti scrivere una pagina per darvi un NONCE accettabile che del sito avrebbe bisogno di HTTP GET in modo da essere in grado di presentare di nuovo a per l'inserimento di commenti post, ma penso che se non ti dispiace i filtri dovrebbe funzionare multa.

Un'altra opzione è quella di utilizzare una funzione di href="https://wordpress.stackexchange.com/questions/tagged/ajax"> ma averlo catturare la vostra HTTP POST dalla forma e quindi salvare il commento al sito B chiamando wp_insert_comment(). Oppure si potrebbe usare AJAX sul sito B a parlare al sito A. Naturalmente sarete aprendo un po 'di un buco di sicurezza per farlo, ma se il codice non viene distribuito si può decidere se che crea una preoccupazione reale o no.

(Normalmente vorrei scrivere di un esempio, ma hanno finito il tempo di oggi. Speriamo che quanto sopra vi manda nella giusta direzione.)

Altri suggerimenti

Ok ho messo insieme un esempio. Spero che funzionerà:)

Passaggio di dati dal sito A al sito B (il blog):

In loco Un penso di utilizzare il metodo POST, per inviare i dati al sito B. Non mi wan't passare parametri nell'URL.

E sul sito B, dovrò

$name = $_POST['name'];
$email = $_POST['email'];
$url = $_POST['url'];
$content = $_POST['content'];
$time = current_time('mysql');

$data = array(
    'comment_author' => $name,
    'comment_author_email' => $email,
    'comment_author_url' => $url,
    'comment_content' => $content,
    'comment_date' => $time,
    'comment_approved' => 1,
);

wp_insert_comment($data);
scroll top