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?
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;