web-dev-qa-db-fra.com

Quelles données sont envoyées vers/depuis des sites avec un rétrolien ou un pingback?

Précisément - quelles données sont envoyées vers/depuis un blog wordpress lorsque vous activez les rétroliens et les pingbacks? Puis-je capturer ces données?

La publication d’Introduction à Blogging sur Wordpress indique que plus de données sont envoyées en plus de l’URL, mais précisément-what -... et comment puis-je les contrôler? c'est à dire. est-ce que l'extrait de message est envoyé? Les commentaires du blog de liaison sont-ils reçus (et si oui, comment puis-je les capturer?)

Ce billet de blog dit que l'un utilise HTTP et l'autre XML-RPC, alors je me demande s'il existe un mécanisme unique pour capturer les deux types de données.

4
jchwebdev

Pour les pingbacks, il semble que seules la page/publication liée et la page/publication à partir de laquelle le lien est envoyé sont envoyées. Découvrez la pingback() , en particulier cette ligne:

 $client->query( 'pingback.ping', $pagelinkedfrom, $pagelinkedto );

... où $client est une instance de WP_HTTP_IXR_Client. La méthode query utilise IXR_Request pour empaqueter un document XML simple:

<?xml version="1.0"?>
<methodCall>
    <methodName>pingback.ping</methodName>
    <params>
        <param>
            <value>
                <string>[pagelinkedfrom]</string>
            </value>
        </param>
        <param>
            <value>
                <string>[pagelinkedto]</string>
            </value>
        </param>
    </params>
</methodCall>

... qui est ensuite envoyé à l'URL du serveur pingback (transmis lorsque $client est instancié).

Rétroliens, un peu plus simples et avec un peu plus de données - voir trackback() :

$options['body'] = array(
    'title' => $title,
    'url' => get_permalink($ID),
    'blog_name' => get_option('blogname'),
    'excerpt' => $excerpt
);

// WP_Http will automatically convert body to a HTTP query string
$response = wp_safe_remote_post( $trackback_url, $options );

En ce qui concerne le traitement/l’interception des réponses, vérifiez la source de wp_xmlrpc_server::pingback_ping() dans wp-includes/class-wp-xmlrpc-server.php pour les pings et le fichier wp-trackback.php pour les rétroliens.

Vous verrez rapidement quelles actions/filtres sont disponibles et dans quelle mesure vous pouvez interagir avec (& modifier) ​​les réponses.

3
TheDeadMedic