我正在使用Custom Post Type Permalinks插件为我的永久链接设置自定义结构,仅使用Wordpress管理区域中的settings / general。
我使用的自定义永久链接结构是:
/%postname%/%product_category%/
此外,我在single-CPT.php
页面下面有一个选择标记,可以触发一些jquery / ajax操作。当我删除自定义固定链接结构时,它会自动激活默认的固定链接结构,一切都像魅力一样。但是在激活上面的结构之后,应该显示结果的DIV由jquery / ajax重新生成,以一种奇怪的方式嵌入整个页面。
我的jquery代码是:
$('select.select').change(function(e) {
e.preventDefault();
var value = $('select.select option:selected').val();
create_ayat_selectCPT(value); // AJAX function
})
非常感谢你的帮助,我花了2天的时间来寻找解决方案。
注意我在网站上使用cutom帖子类型。
修改
考虑到Damon的回答,永久链接结构会影响jquery / ajax函数的行为。实际上,如果我更改为/%product_category%/%postname%/
,则会执行Ajax调用但没有成功。
结果:我实际上是显示错误消息的警报。
函数jquery / ajax函数是:
function create_ayat_selectCPT(str)
{
$.ajax({
type: "GET",
url: "wp-admin/admin-ajax.php",
dataType: 'html',
data: ({ action: 'createAyatSelectCPT', id: str}),
success: function(data){
$('#second-select').html(data);
},
error: function(data)
{
alert("Your browser broke create ayat cpt select!");
return false;
}
}); //ajax
return false;
}
在functions.php下:
function createAyatSelectCPT() {
$ca=$_GET['id'];
?>
<form method="post" action="">
<select class="select2" id="selectid">
<?php
$my_query = new WP_Query();
$args = array(
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'product_category',
'terms' => array($ca)
)
)
);
$my_query->query($args);
if ($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post();
?>
<option value="<?php the_ID();?>"><?php the_title(); ?></option>
<?php
endwhile;
endif;
wp_reset_query();
die();
?>
</select>
</form>
<?php
}
add_action('wp_ajax_createAyatSelectCPT', 'createAyatSelectCPT');
add_action('wp_ajax_nopriv_createAyatSelectCPT', 'createAyatSelectCPT');
要修改的相关HTML标记是:
<div id="second-select">...</div>
编辑2安装Firebug之后:
404 Not Found File:http://localehost.com/enc/products/stuff/stuff/wp-admin/admin-ajax.php?action=createAyatSelectCPT&id=132
然后,问题来自位置admin-ajax.php
。此文件在此位置不存在。所以新的永久链接结构要求我在我的jquery脚本文件中修改admin-ajax.php的路径。
答案 0 :(得分:1)
你怎么知道什么功能弄乱了div?
你的jquery / ajax代码是否改变了div等?如果是这样,您能否向我们提供相应的代码段?
此外,当您使用“/%postname%/%product_category%/”自定义永久链接或任何其他自定义链接时,是否会发生这种情况。
尝试使用Firebug插件,并向我们提供更多信息,以便我们可以快速有效地帮助您解决此问题。截图也有帮助。
下载Firebug:http://getfirebug.com/