2013-11-22 2 views
0

저는 WordPress를 사용하고 있으며 일부 블로그 게시물을 표시하는 짧은 코드가 있습니다. 이것을 표시하려면 많은 코드 행이 있어야합니다. 나는 내가 사용하고자하는 파일을 AJAX로 지정할 수 있다는 것을 알고있다. 과거에이 작업을 한 유일한 방법은 기본적으로 파일의 데이터 표시 부분을 복제하여 div가 올바르게 채워지도록하는 것이다.출력 파일을 복제하지 않고 AJAX 사용

어쩌면 어리석은 질문 일지 모르지만 파일 내용을 복제 할 필요가없는 쉬운 방법이 있습니다. 이것은 WordPress의 짧은 코드이므로 출력을 표시하는 함수로 생각할 수는 없습니다.

나는이 시도했다 : 를 그냥 몇 가지 테스트 및 단축 코드 기능을하고 있어요는 다음과 같습니다

나는이 함수는 페이지 아래 더 정의
function blog_shortcode_by_zip($atts) { 
    display_blog_shortcode($atts); 
} 

:

function display_blog_shortcode($atts){ 
    echo "it works"; 
    echo '<a href="google.com" id="click_me">ljasfdj</a>'; 
    echo '<div id="display_here"></div>'; 
} 

이것은 잘 작동하고 데이터를 올바르게 표시합니다. 나는이 작업을 수행 할 때

add_action('wp_ajax_show_blog', 'show_blog'); 
function show_blog() { 
    global $wpdb; // this is how you get access to the database 
    diplay_blog_shortcode('value'); 
} 

그러나, AJAX는 치명적인 오류로 다시 와서 display_blog_shortcode이 정의되지 않은 것을 말한다 : 나는 같은 함수를 호출하기 위해 노력하고있어 AJAX와 기능을 알고있다. 파일 내에서 어떻게 작동 하나 AJAX를 사용하지 않습니까?

답변

1

WP 단축 코드 인 경우 단축 코드가 포함 된 콘텐츠에 the_content 필터를 적용 할 수 있습니다.이 경우 단축 코드 처리기가 실행되고 단축 코드가 전체 출력으로 바뀝니다.

AJAX 호출의 일부로이 게시물 콘텐츠 외부에서 사용할 수 있습니다.

당신의 AJAX 같은 것을 포함 할 수 호출하는 PHP 파일 : 응답에 대한

<?php 

// If you use this code outside of WordPress, you'll need to pull in WP core 
require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php'); 

$content = '[YOURSHORTCODE]'; 
$content = apply_filters('the_content', $content); 

echo $content; 
+0

감사합니다. 이것은 실제로 잘 작동합니다. 유일한 문제는 이미지가 표시되지 않는다는 것입니다. 응답은 텍스트 만 출력합니다. 어떻게 이미지를 표시 할 수 있습니까? – user1048676

+0

이미지는 실제로 HTML로 반환되지만 이미지는 표시되지 않습니다. 다른 형식화 ​​중 일부는 또한 잃어 버렸습니다. – user1048676

+0

아마도 추가 서식 필터를 실행해야합니다 ... 그들이 무엇인지 확인할 수있게하십시오. –

관련 문제