-1
我使用此代碼發送一個php變量從wordpress後發送到一個函數,只要單擊一個按鈕,將刪除帖子中的標記「測試」。 只要我在functions.php中使用它,並且沒有使用ajax,標籤刪除功能就可以正常工作。ajax處理程序刪除標記
jQuery(document).ready(function() {
setTimeout(function() {
jQuery(".taguntagclick").trigger('click');
}, 10);
});
jQuery(document).ready(function() {
jQuery('.json_click_handler').click(function() {
var c = jQuery(this).attr('rel');
var d = jQuery(this).attr('alt');
jQuery.ajax({
url: 'wp-content/themes/kleinraumv4_ap/projekt-getter.php',
data: {
'selection': c,
'pid': d,
'tag': 'test'
},
dataType: 'html',
success: function() {
alert('success');
},
error: function(errorThrown) {
alert('error');
console.log(errorThrown);
}
});
});
});
只要我刷新頁面,我得到的「成功」 - 消息,儘管我還沒有連點擊:
<a href="#" rel="beard" class="json_click_handler taguntagclick" alt="<?php echo $attachment->ID; ?>">
而且他還doesn't刪除標籤。
那功能:
include("../../../wp-load.php");
$selection = $_REQUEST['selection'];
$post_ids = $_REQUEST['pid'];
$tags= $_REQUEST['tag'];
function untag_post($post_ids,$tags) {
global $wpdb;
if(! is_array($post_ids)) {
$post_ids = array($post_ids);
}
if(! is_array($tags)) {
$tags = array($tags);
}
foreach($post_ids as $post_id) {
$terms = wp_get_object_terms($post_id, 'post_tag');
$newterms = array();
foreach($terms as $term) {
if (!in_array($term->name,$tags)) { //$term will be a wordpress Term object.
$newterms[] = $term;
}
}
wp_set_object_terms($post_id, $newterms, 'post_tag', FALSE);
}
}
歡呼
ajax調用是在每個頁面加載時觸發的,因爲您已經設置了10微秒的超時時間來執行此操作。爲了真正弄清楚ajax調用發生了什麼,你還應該在發送你的ajax請求的地方發佈projekt-getter.php的內容。 – MSTannu 2014-09-10 20:45:53
您需要在大括號中開始縮進代碼,因爲這只是不可讀的。 – developerwjk 2014-09-10 20:50:07
projekt-getter.php是我發佈的最後一個函數。 – mordondro 2014-09-11 07:15:56