如何避免这种内联Javascript



我有一个wordpress网站。在single.php下,我有以下body标签

  <body <?php body_class(); ?>  onLoad="func(<?php echo $thePostID?>);" >

阅读网上的文章使我确信要避免使用内联CSS和内联javascript。所以我对我的网站进行了重组,使样式和脚本现在包含在外部文件中。除了这行代码,因为它确实需要the post id,我不知道如何在single.php之外检索它。

使用属性:

<body data-post-id="<?php echo $thePostID?>">

你可以写

var postId = document.body.getAttribute('data-post-id');

在脚本中调用它,或者document.onload…

<script>
 $(document).ready(function(){
 (function(){
    <?php echo $thePostID?; ?>
 })();
 });
</script>

在脚本标签内编写javascript是完全可以接受的。尽管它不在外部文件中,但它在html之外。

我建议使用wp_localize_script

function theme_localize_post_id(){
   global $post;
    wp_register_script( 'your_script',... );
    wp_localize_script( 'your_script', 'the_name_for_your_js_object' , array( 'post_id'=>$post->ID ) );
}
add_action( 'wp', 'theme_localize_post_id' );

然后在你的脚本中简单的使用。

$(document).ready(function(){
  functionName(post_id);
});

相关内容

  • 没有找到相关文章

最新更新