我想知道是否有方法在ajax調用中使用像query_post()這樣的函數?如何在ajax調用中使用wordpress函數
比方說,我打電話文件_inc/ajax.php
我想abble使用WordPress的功能,但我不知道爲什麼。 有人可以幫我嗎?
感謝很多:)
我想知道是否有方法在ajax調用中使用像query_post()這樣的函數?如何在ajax調用中使用wordpress函數
比方說,我打電話文件_inc/ajax.php
我想abble使用WordPress的功能,但我不知道爲什麼。 有人可以幫我嗎?
感謝很多:)
WordPress提供了一個Ajax網址,您應該使用它以及完整的Ajax API。
您需要創建一個jQuery函數。
實施例:
jQuery(document).ready(function($) {
var data = {
action: 'my_action',
whatever: 1234
};
jQuery.post(ajaxurl, data, function(response) {
alert('Got this from the server: ' + response);
});
});
的ajaxurl變種是始終可用的管理側。如果你在前端使用它,你需要定義它。
然後你可以運行你的查詢的PHP函數。 PHP函數必須附加到wp_ajax_your_action
操作。
例子:
add_action('wp_ajax_my_action', 'my_action_callback');
function my_action_callback() {
global $wpdb; // this is how you get access to the database
$whatever = intval($_POST['whatever']);
$whatever += 10;
echo $whatever;
die(); // this is required to return a proper result
}
的wp_ajax_your_action
行動是管理員,如果你需要使用它在前端的行動將wp_ajax_nopriv_your_action
我強烈建議JSON API插件:http://wordpress.org/extend/plugins/json-api/。它爲最常見的WordPress功能提供了RESTful界面,包括query_post
,並允許您添加自己的操作。
嘿,謝謝,但是有可能檢索一些純文本使用這個API?或者它只是一些數據,我需要用JavaScript來設計? –
你必須創建在你的主題運作的functions.php 這裏是使用AJAX加載熱門帖子的例子
function getPopularPosts()
{
$popularpostdata = wpp_get_mostpopular_data();
foreach($popularpostdata as $populardata)
{
$cur_id = $populardata->id;
$cur_date = $populardata->post_date;
$cur_date = date("F j, Y", strtotime($cur_date));
?>
<article id="<?php echo $populardata->post_slug.'_mp';?>" data-attr-post-title="<?php echo $populardata->title; ?>" <?php post_class(); ?>>
<p class="advt_disclosure"><?php echo advtdescloser(); ?></p>
<?php
echo '<h6>'.getCategoryLink().'</h6>';
$post_mp = get_post($cur_id);
?>
<h1><?php echo $populardata->title;?></h1>
<div class="entry-content">
<div class="post-details"> <?php echo getAuthorData($post_mp->post_author,$cur_id,$populardata->title,$cur_date); ?> </div>
<div class="collapsediv">
<div class="row">
<div class="col-sm-9 post_article">
<?php
$content = $populardata->postcontent; //$content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
wp_link_pages(array(
'before' => '<div class="page-links"><span class="page-links-title">' . __('Pages:', 'twentyfifteen') . '</span>',
'after' => '</div>',
'link_before' => '<span>',
'link_after' => '</span>',
'pagelink' => '<span class="screen-reader-text">' . __('Page', 'twentyfifteen') . ' </span>%',
'separator' => '<span class="screen-reader-text">, </span>',
));
?>
<p class="tags"> TAGS: <?php echo get_the_tag_list('', __(', ', 'twentyfifteen'))?></p>
</div>
<div class="col-sm-3 hot_deal"> <?php echo getAdvertisements(); ?> </div>
<div class="col-sm-12 comment_section"> <?php echo getPostCommentsandSocialmediasharing($post_mp->post_author,$cur_id,$populardata->title); ?> </div>
</div>
</div>
</div>
<footer class="entry-footer">
<?php //twentyfifteen_entry_meta(); ?>
<?php //edit_post_link(__('Edit', 'twentyfifteen'), '<span class="edit-link">', '</span>'); ?>
</footer>
<div class="expander">
<button class="expand" data-text-swap="Close article">expand article</button>
</div>
</article>
<?php }
exit();
}
add_action('wp_ajax_getPopularPosts', 'getPopularPosts');
add_action('wp_ajax_nopriv_getPopularPosts', 'getPopularPosts');`
And for call ajax you need to put some where in your themes footer.php
`$(".popular_posts").click(function(e) {
e.preventDefault();
if($('.popularposts').html().length==0)
{
$('.popularposts').html('<p class="text-center" style="margin-top:40px;"><img src="<?php echo get_home_url(); ?>/wp-content/themes/twentyfifteen/images/ajax-loader.gif"></p>');
$.ajax({
type: 'POST',
url: "<?php echo get_home_url(); ?>/wp-admin/admin-ajax.php",
data: {
action: 'getPopularPosts'
},
success: function(data) {
$('.popularposts').html(data);
}
});
}
});
嘿,我要檢查一下,告訴你它是如何工作:) –
@Chris_O感謝它的男人,它真的幫助我。+ 1爲它 – Toretto