WordPress:如何将url GET参数添加到主菜单项 [英] Wordpress: How can I add url GET parameter to my main menu items
问题描述
我正在尝试将URL GET参数添加到Wordpress中的一个主菜单项中(但我不知道该怎么做).因此,我的方法是检测菜单项上的click事件,然后通过ajax将参数传递给我的php页面,该页面将根据需要处理传递的值.我的主要问题是,查看我的代码,为什么不起作用?在Wordpress中有没有更好的方法可以做到这一点,而不是依靠javascript?
I'm trying to add a URL GET parameter to one of my main menu items in Wordpress(but I don't know how to). So, my approach was to detect a click event on the menu item, then pass a parameter via ajax to my php page which will process value passed as needed. My main questions are, looking at my code, how come is not working? is there a better way of doing this in Wordpress and not rely on javascript?
Here is the javascript:
<script type="text/javascript">
$(document).ready(function() {
$("#menu-item-128").click(function() {
$.ajax({
url: 'homepage.php',
type: "GET",
data: ({ homeclick = true }),
success: function() {
alert("success!");
}
});
});
});
</script>
Here is my PHP:
$homeclick = $_GET['homeclick'];
if ( !isset( $_COOKIE['hs_user'] ) ) {
get_header();
} elseif (isset( $_COOKIE['hs_user'] ) && $homeclick == true ) {
get_header();
} else {
// Do Something else
header('Location: homepage-returning-users');
}
推荐答案
过滤器挂钩wp_get_nav_menu_items
用于操纵导航菜单.示例中使用的post_title
是菜单(导航标签)的标题,而不是帖子/页面的标题.
The filter hook wp_get_nav_menu_items
is used to manipulate the Nav Menus. The post_title
used in the example is the title of the Menu (Navigation Label), not of the post/page.
将此代码拖放到functions.php
文件中,根据需要调整post_title
和?my_var=test
.请注意,创建自己的插件比functions
好.
Drop this code in your functions.php
file, adjust the post_title
and ?my_var=test
to your needs. Note that better than functions
is to create your own plugin.
add_filter( 'wp_get_nav_menu_items','nav_items', 11, 3 );
function nav_items( $items, $menu, $args )
{
if( is_admin() )
return $items;
foreach( $items as $item )
{
if( 'Home' == $item->post_title)
$item->url .= '?my_var=test';
}
return $items;
}
这篇关于WordPress:如何将url GET参数添加到主菜单项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!