Wordpress - 如何以及在何处为我的自定义菜单添加脚本?

时间:2017-06-13 00:11:19

标签: javascript php html css wordpress

我是PHP / Wordpress / Javascript的新手,我正在尝试将使用CSS和HTML构建的网站转换为使用PHP for Wordpress的主题。

我有一个可以打开和关闭的屏幕外菜单。我在哪里将脚本放在我的Wordpress文件中?我该如何正确地做到这一点?

目前,我在我的header.css中复制了下面复制的HTML,并在我的style.css中复制了下面的CSS

这是我的菜单HTML:

<h1 class="menu">
 <div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;
  </a>
  <br>
  <a href=""> &nbsp; &nbsp; - p o r t f o l i o</a> <br>
  <a href=""> &nbsp; &nbsp; - m e e t &nbsp; m e</a><br>
  <a href=""> &nbsp; &nbsp; - i n s t a </a><br>
  <a href="#">  &nbsp; &nbsp; - p r i n t e d</a><br>
  <a href="#">  &nbsp; &nbsp; - c i a o</a>
 </div>

 <div style="font-size:30px;cursor:pointer" class="openbtn" onclick="openNav()"> <img src="hamburger.png"/> </div>
</h1>

这是我的Javascript

   <h1 class="menu">
function openNav() {
  document.getElementById("mySidenav").style.width = "250px";
}

function closeNav() {
  document.getElementById("mySidenav").style.width = "0";
}
</h1>

这是我的CSS

.sidenav {
height: 100%;
width: 0;
position: absolute;
z-index: 1;
top: 0;
left: 0;
background-color: #ffffff;
overflow-x: hidden;
padding-top: 70px;
transition: 0.5s;
opacity: 0.8;
}

.sidenav a {
padding: 8px 8px 8px 32px;
text-decoration: none;
font-size: 16px;
color: #000000;
display: block;
transition: 0.3s;
}

.sidenav a:hover, .offcanvas a:focus{
color: #BCBCBC;
}

.sidenav .closebtn {
position: absolute;
top: 0;
margin-left: 10px;
font-size: 36px;
padding-top: 11px;
}


.openbtn {
background-color: #fffff;
margin-right: 30px;
margin-top: 0;
padding-top: 0;
height: 45px;
}

.openbtn a:active{
color: #ffffff;
}

.menu {
width: 5%;
}

谢谢!

3 个答案:

答案 0 :(得分:0)

header.php中,最好不要对其进行硬编码,并让创建页面的原生wordpress功能

查看https://codex.wordpress.org/Navigation_Menus

答案 1 :(得分:0)

您应该将这些脚本放入单独的文件中,然后使用wp_enqueue_script()来调用它:

wp_enqueue_script(
    'offset-menu',
    get_template_directory_uri() . '/js/offset-menu.js',
    array( 'jquery' ),
    '1.0',
    true
);

您可以从here

了解更多信息

答案 2 :(得分:0)

向Wordpress网站添加脚本的正确方法是注册它们并将它们排入队列。 Wordpress保留了一个在页面加载时应该执行的脚本列表。通过注册和排队脚本,您可以将它们添加到此列表中,为它们提供执行优先级,确定它们是否在页眉/页脚中加载等等。注册和排队脚本应该通过wp_enqueue_scripts动作钩子完成。将函数附加到该挂钩后,使用wp_enqueue_script和函数然后wp_register_script函数分别注册和排入脚本。

让我举个例子。将以下代码粘贴到主题的functions.php文件中:

function add_menu_scripts()
{
    wp_register_script( 'menuScript', get_template_directory_uri() .'/js/menu.js', array(), null, TRUE);
    wp_enqueue_script( 'menuScript' );
}

add_action( 'wp_enqueue_scripts', 'add_menu_scripts' );

此代码块会将add_menu_scripts函数添加到wp_enqueue_scripts操作挂钩。在add_menu_scripts函数内部,你可以看到我们给你的文件一个句柄名(一个昵称),指定文件位置,添加依赖项(在这种情况下没有,所以空数组给出),给出文件一个版本(这是可选的,所以我传递的是NULL),最后指定脚本应该加载到页脚中。