我正在使用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的?
如果是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;