Ajax 호출에서 워드프레스 함수를 사용하는 방법
ajax 호출에서 query_post()와 같은 함수를 사용하는 방법이 있는지 알고 싶습니다.
예를 들어 _inc/ajax.php 파일을 호출합니다.
워드프레스 기능을 사용할 수 있게 되고 싶은데 왜 그런지 모르겠어요.누가 나 좀 도와줄래?
정말 감사합니다:)
WordPress는 완전한 Ajax API와 함께 사용해야 하는 Ajax URL을 제공합니다.
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 var는 관리측에서 항상 사용할 수 있습니다.프런트 엔드로 사용하는 경우는, 정의할 필요가 있습니다.
다음으로 쿼리를 실행할 수 있는 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
action은 프런트엔드에서 사용할 필요가 있는 경우 관리자용입니다.wp_ajax_nopriv_your_action
테마 함수에서 함수를 작성해야 합니다.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);
}
});
}
});
JSON API 플러그인 http://wordpress.org/extend/plugins/json-api/을 적극 추천합니다.다음과 같은 가장 일반적인 WordPress 기능을 위한 RESTful 인터페이스를 제공합니다.query_post
사용자 자신의 액션을 추가할 수 있습니다.
언급URL : https://stackoverflow.com/questions/10807368/how-to-use-wordpress-functions-in-an-ajax-call
'programing' 카테고리의 다른 글
배열의 항목 속성이 Json Schema에서 고유함을 확인하시겠습니까? (0) | 2023.03.07 |
---|---|
Swift에서 JSON 문자열을 개체로 단순하고 깔끔하게 변환 (0) | 2023.03.07 |
반응 - 디버깅을 위해 DOM 요소에서 구성 요소를 가져옵니다. (0) | 2023.03.07 |
WordPress에서 홈페이지를 제외한 모든 페이지에 대해 404페이지를 찾을 수 없다고 합니다. (0) | 2023.03.07 |
HTML을 렌더링하지 않고 React를 사용할 수 있습니까? (0) | 2023.03.07 |