我有一个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);
});