web-dev-qa-db-fra.com

manière correcte d'appeler javascript dans la fonction hook

function node_wp($post_ID) {
    global $post;
    $post_title = get_the_title( $post_ID );
    $post_url = get_permalink( $post_ID );
    $json = array(
        'title_post' => $post_title, 
        'url' => $post_url
    );
    $data = json_encode($json); 
    $server_url = get_option('$node_server_url_op');
    ?>
    <script src="<?php echo $server_url; ?>"></script>
    <script type="text/javascript">
        var socket = io.connect('<?php echo $server_url; ?>');
        socket.on('connect', function(){
            socket.emit('adduser');
            socket.emit('sendchat', '<?php echo $data; ?>');
        });
    </script>
    <?php
}
add_action('publish_post', 'node_wp');

Lorsque j'exécute mon script, je reçois ceci:

Warning: Cannot modify header information - headers already sent

Pouvez-vous me dire comment ajouter correctement le Javascript?

1
zugrina

En ajoutant la fonction au hook publish_post, il s’exécute lorsque la publication est publiée à l’actualisation de la page. C'est ce qui cause les en-têtes déjà envoyés au message.

Cela ressemble à une sorte de discussion qui est enregistrée dans la base de données. Si cela doit être exécuté à l'avant du site, vous pouvez vous connecter à wp_footer:

add_action('wp_footer', 'node_wp' );

Dans votre fonction node_wp, vous pouvez obtenir l’ID en utilisant

global $post; $post_id = $post->ID;

1
Chris_O