入队时我是只将html放在页面中,还是必须从html页面引用js文件?

时间:2021-09-21 作者:Spencer Halstead

我正在尝试让javascript在我的页面中工作,但我总是将html放在实际页面上,但现在我想知道是否应该将<;在html之前编写src脚本,使代码正常工作,以引用javascript。我已经把所有的东西都排好了队,包括函数中的js和css。PHE它是:

<script src=\'https://artandleatherspencer.local/wp-content/themes/twentythirteen-child/js/myscript.js)

<div id="clockContainer">

<div id="hour"></div>

<div id="minute"></div>

<div id="second"></div>

</div>
下面是函数中的代码。php:

function childtheme_parent_styles() {
    wp_enqueue_style(\'parent\', get_template_directory_uri().\'/css/style.css\' );
    wp_enqueue_style(\'mytheme_main_style\', get_stylesheet_uri());
    wp_register_script(\'main-js\', get_stylesheet_directory_uri() . \'/js/main.js\');
    if( is_page(507) ) {
        wp_enqueue_script( \'main-js\');
    }
}

add_action( \'wp_enqueue_scripts\', \'childtheme_parent_styles\');
这里是主要的javascript。js文件夹中的js

console.log(\'executing scripts.js\');

setInterval(() => {
    d = new Date(); //object of date()
    hr = d.getHours();
    min = d.getMinutes();
    sec = d.getSeconds();
    hr_rotation = 30 * hr + min / 2; //converting current time
    min_rotation = 6 * min;
    sec_rotation = 6 * sec;
 
    hour.style.transform = `rotate(${hr_rotation}deg)`;
    minute.style.transform = `rotate(${min_rotation}deg)`;
    second.style.transform = `rotate(${sec_rotation}deg)`;
}, 1000);

    
css:风格。css文件

#clockContainer {
    position: relative;
    margin: auto;
    height: 40vw;
    /*to make the height and width responsive*/
    width: 40vw;
    background: url(clock.png) no-repeat;
    /*setting our background image*/
    background-size: 100%;
}
  
#hour,
#minute,
#second {
    position: absolute;
    background: black;
    border-radius: 10px;
    transform-origin: bottom;
}
  
#hour {
    width: 1.8%;
    height: 25%;
    top: 25%;
    left: 48.85%;
    opacity: 0.8;
}
  
#minute {
    width: 1.6%;
    height: 30%;
    top: 19%;
    left: 48.9%;
    opacity: 0.8;
}
  
#second {
    width: 1%;
    height: 40%;
    top: 9%;
    left: 49.25%;
    opacity: 0.8;
}

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

将脚本排入队列时wp_enqueue_script() 它添加了<script> 为您标记部件。如果您有与脚本交互的HTML,则需要以另一种方式将该HTML添加到页面中。您应该在任何HTML中都不包含脚本标记。

有许多选项可用于将HTML添加到页面,具体取决于您需要它的位置:

将其添加到经典编辑器的文本选项卡中

  • Creating your own block.
  • Creating a shortcode.
  • Creating a widget.custom page template.
  • 尽管我要说的是,除了使用块以外的任何东西现在都已经过时了。

    相关推荐

    在WordPress中,定制器div仍然显示,即使我用javascript隐藏了它

    我在我的单曲中加入了一个div。php基于自定义程序中的设置。正如预期的那样,它在前端工作得很好。但在自定义程序中,即使之前未选中该设置,div仍会显示。但问题只是第一次出现。如果选中该复选框并再次取消选中,div将按预期隐藏。现在,在我选中复选框两次后显示另一个屏幕截图:我希望问题现在已经清楚了。以下是相关代码:我正在单曲中显示作者信息。php与<?php if ( isset($GLOBALS[\'wp_customize\']) || get_theme_mod( \'_themename_d