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\');
运行脚本时,我得到以下信息:
Warning: Cannot modify header information - headers already sent
你能告诉我如何正确添加Javascript吗?
SO网友:Chris_O
通过将函数添加到publish\\u post挂钩,当页面刷新时发布帖子时,它将执行该函数。这就是导致标头已发送消息的原因。
这看起来像是某种保存回数据库的聊天。如果需要在站点前端运行,可以挂接到wp\\u页脚:
add_action(\'wp_footer\', \'node_wp\' );
在node\\u wp函数中,可以使用
global $post; $post_id = $post->ID;