jQuery 在 HTML 条评论中生成 PHP (WORDPRESS)
jQuery generates PHP inside HTML Comments (WORDPRESS)
我的网站上安装了 WordPress,目前正在编辑主题。
我已将一个列表项附加到生成的导航菜单的末尾。列表项内部是调用搜索表单的 PHP 块。
我 运行 遇到的问题是,在附加列表项时,PHP 的块放在 HTML 注释标签内。我不知道为什么并尝试了几种方法来摆脱它。
<li>
<!--?php get_search_form(); ?-->
</li>
我用来附加列表项和搜索栏的JavaScript是:
$(document).ready(function () {
"use strict";
$("header nav .nav-menu").append("<li><?php get_search_form(); ?></li>");
});
WordPress 使用以下内容在 header 模板中生成信息:
<nav id="site-navigation" class="main-navigation" role="navigation">
<div class="wrapper2">
<button class="menu-toggle"><?php _e( 'Menu', 'twentytwelve' ); ?></button>
<a class="assistive-text" href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentytwelve' ); ?>"><?php _e( 'Skip to content', 'twentytwelve' ); ?></a>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
</div>
</nav>
根据我的谷歌搜索,我的假设是我将 PHP 嵌套在 PHP 中,但我无法修复它。
存储搜索表单HTML的PHP变量是:
$form = '<form role="search" method="get" id="searchform" class="searchform" action="' . esc_url( home_url( '/' ) ) . '">
<div>
<label class="screen-reader-text" for="s">' . _x( 'Search for:', 'label' ) . '</label>
<input type="text" value="' . get_search_query() . '" name="s" id="s" placeHolder="Enter your search here..." />
<input type="submit" id="searchsubmit" value="'. esc_attr_x( '', 'submit button' ) .'" />
</div>
</form>';
我将不胜感激任何帮助或见解,因为我不习惯使用 PHP 或 WordPress 主题。
我不明白,你想在这里做什么....
你的Javascript没有任何意义。 Javascript 在客户端执行,而 PHP 在服务器端执行,这意味着当您的 javascript 运行时,将 php 调用附加到 html,将除了将文本放入其中,不执行任何操作之外什么都不做....
任何 php 代码都必须放在模板中,而不是任何类型的 javascript,除非它是您传递给 javascript 变量的一些数据
试试这个。
检查您是否有 getsearchform.php 文件。如果你这样做,那么这将覆盖该功能。 get_search_form() 先从这个文件中抓取。
在主题的根目录中添加或更改文件 searchform.php。
在此文件中添加表单代码:
<form role="search" method="get" id="searchform" class="searchform" action="' . esc_url( home_url( '/' ) ) . '">
<div>
<label class="screen-reader-text" for="s">' . _x( 'Search for:', 'label' ) . '</label>
<input type="text" value="' . get_search_query() . '" name="s" id="s" placeHolder="Enter your search here..." />
<input type="submit" id="searchsubmit" value="'. esc_attr_x( '', 'submit button' ) .'" />
</div>
</form>
您还缺少 get_search_form();
之前的回声
你的 JS 应该是:
$(document).ready(function () {
"use strict";
$("header nav .nav-menu").append("<li><?php echo get_search_form(); ?></li>");
});
最后,您的 JS 在 .php 文件中,对吗?如果可以的话,这一切都会起作用,并且在某些主题中已经完成,但您应该尽量避免混合使用 php 和 javascript。但这应该有效。
查看此文档:
http://codex.wordpress.org/Function_Reference/get_search_form#Theme_Form
好的,感谢 Playground 解释了为什么我使用 JavaScript 的想法行不通。
还要感谢 w3bmak3r 告诉我有关外部 JS 文件和 link 到 wordpress 站点上 search_form 功能的信息。
我的目标是在导航列表的末尾附加一个搜索栏。我通过在导航列表的开头添加一个列表项来完成此操作。
我找到了资料 here on wordpress.
发件人:
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
收件人:
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu', 'items_wrap' => '<ul id="menu-site" class="nav-menu" style=""><li class="thesearchform">' . get_search_form() . '</li>%3$s</ul>' ) ); ?>
接下来,我使用 jQuery 将第一个列表项附加为最后一个子项:
$(document).ready(function () {
"use strict";
var theSearchForm = $("header nav li.thesearchform");
$("header nav .nav-menu").append(theSearchForm).find(theSearchForm).append($("header nav .searchform"));
});
是的,这很有效。谢谢两位对我的帮助。
编辑:
如果有人知道如何将 <?php get_search_form(); ?>
插入 wp_nav_menu,它会帮助我提高可读性。
编辑,没关系,我想通了并编辑了答案。
我的网站上安装了 WordPress,目前正在编辑主题。
我已将一个列表项附加到生成的导航菜单的末尾。列表项内部是调用搜索表单的 PHP 块。
我 运行 遇到的问题是,在附加列表项时,PHP 的块放在 HTML 注释标签内。我不知道为什么并尝试了几种方法来摆脱它。
<li>
<!--?php get_search_form(); ?-->
</li>
我用来附加列表项和搜索栏的JavaScript是:
$(document).ready(function () {
"use strict";
$("header nav .nav-menu").append("<li><?php get_search_form(); ?></li>");
});
WordPress 使用以下内容在 header 模板中生成信息:
<nav id="site-navigation" class="main-navigation" role="navigation">
<div class="wrapper2">
<button class="menu-toggle"><?php _e( 'Menu', 'twentytwelve' ); ?></button>
<a class="assistive-text" href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentytwelve' ); ?>"><?php _e( 'Skip to content', 'twentytwelve' ); ?></a>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
</div>
</nav>
根据我的谷歌搜索,我的假设是我将 PHP 嵌套在 PHP 中,但我无法修复它。
存储搜索表单HTML的PHP变量是:
$form = '<form role="search" method="get" id="searchform" class="searchform" action="' . esc_url( home_url( '/' ) ) . '">
<div>
<label class="screen-reader-text" for="s">' . _x( 'Search for:', 'label' ) . '</label>
<input type="text" value="' . get_search_query() . '" name="s" id="s" placeHolder="Enter your search here..." />
<input type="submit" id="searchsubmit" value="'. esc_attr_x( '', 'submit button' ) .'" />
</div>
</form>';
我将不胜感激任何帮助或见解,因为我不习惯使用 PHP 或 WordPress 主题。
我不明白,你想在这里做什么....
你的Javascript没有任何意义。 Javascript 在客户端执行,而 PHP 在服务器端执行,这意味着当您的 javascript 运行时,将 php 调用附加到 html,将除了将文本放入其中,不执行任何操作之外什么都不做....
任何 php 代码都必须放在模板中,而不是任何类型的 javascript,除非它是您传递给 javascript 变量的一些数据
试试这个。
检查您是否有 getsearchform.php 文件。如果你这样做,那么这将覆盖该功能。 get_search_form() 先从这个文件中抓取。
在主题的根目录中添加或更改文件 searchform.php。
在此文件中添加表单代码:
<form role="search" method="get" id="searchform" class="searchform" action="' . esc_url( home_url( '/' ) ) . '">
<div>
<label class="screen-reader-text" for="s">' . _x( 'Search for:', 'label' ) . '</label>
<input type="text" value="' . get_search_query() . '" name="s" id="s" placeHolder="Enter your search here..." />
<input type="submit" id="searchsubmit" value="'. esc_attr_x( '', 'submit button' ) .'" />
</div>
</form>
您还缺少 get_search_form();
之前的回声你的 JS 应该是:
$(document).ready(function () {
"use strict";
$("header nav .nav-menu").append("<li><?php echo get_search_form(); ?></li>");
});
最后,您的 JS 在 .php 文件中,对吗?如果可以的话,这一切都会起作用,并且在某些主题中已经完成,但您应该尽量避免混合使用 php 和 javascript。但这应该有效。
查看此文档:
http://codex.wordpress.org/Function_Reference/get_search_form#Theme_Form
好的,感谢 Playground 解释了为什么我使用 JavaScript 的想法行不通。
还要感谢 w3bmak3r 告诉我有关外部 JS 文件和 link 到 wordpress 站点上 search_form 功能的信息。
我的目标是在导航列表的末尾附加一个搜索栏。我通过在导航列表的开头添加一个列表项来完成此操作。 我找到了资料 here on wordpress.
发件人:
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
收件人:
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu', 'items_wrap' => '<ul id="menu-site" class="nav-menu" style=""><li class="thesearchform">' . get_search_form() . '</li>%3$s</ul>' ) ); ?>
接下来,我使用 jQuery 将第一个列表项附加为最后一个子项:
$(document).ready(function () {
"use strict";
var theSearchForm = $("header nav li.thesearchform");
$("header nav .nav-menu").append(theSearchForm).find(theSearchForm).append($("header nav .searchform"));
});
是的,这很有效。谢谢两位对我的帮助。
编辑:
如果有人知道如何将 <?php get_search_form(); ?>
插入 wp_nav_menu,它会帮助我提高可读性。
编辑,没关系,我想通了并编辑了答案。