我正在使用WordPress,我有一个显示一些博文的短代码。显示这些代码有很多行。我知道AJAX我可以指定我想要使用的文件,而我过去唯一的方法是基本复制文件的数据显示部分,以便正确填充div。
这可能是一个愚蠢的问题,但有一种更简单的方法,所以我不必复制文件内容。由于这是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>';
}
此工作正常并正确显示数据。我知道有一个AJAX函数,我试图调用相同的函数:
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?
答案 0 :(得分: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;