首先,我假设您将代码放在主题中functions.php
文件,如果是,则该文件中不应回显直接输出:
很好:
<?php // Assume this is wp-content/themes/your-theme/functions.php
function some_func() {
echo \'This is a good output; it\\\'s not a direct output coming from the file.\';
echo \'The output is only displayed when you call the function - some_func().\';
}
错误:
<!-- This is a HTML comment and it\'s a sample direct output. -->
<?php // Assume this is wp-content/themes/your-theme/functions.php
function some_func() {
echo \'This is a good output; it\\\'s not a direct output coming from the file.\';
echo \'The output is only displayed when you call the function - some_func().\';
}
其次,站点运行状况会执行一项测试,以检查REST API是否可访问(或工作正常),如果无法访问,则可能是由于响应无效,然后您会看到错误“REST API行为不正确”。这很可能就是你的情况,因为你明白了
<!-- Shortcode display testimonials-->
在文件的顶部(即
functions.php
文件)。因此,删除该注释,错误就会消失。
除此之外,代码中的另一个问题是,您需要确保您的短代码是返回输出,而不是回显输出。如果您回显它,则输出将显示在错误的位置(即不是您放置[TestimonialITW]
在帖子内容中),当您更新具有短代码的帖子时,可能会看到一个错误,上面写着“更新失败。错误消息:响应不是有效的JSON响应。”;因为响应包含来自短代码的输出(例如HTML标记,如<div class="owl-carousel owl-theme">
).
但如果需要回显,可以使用output buffering:
function testimonial_shortcode()
{
ob_start(); // turn on output buffering
display_testimonials(); // put the output to the buffer
return ob_get_clean(); // capture and return the buffer
}
add_shortcode( \'TestimonialITW\', \'testimonial_shortcode\' );
这将取代以下内容:
function testimonial_shortcode()
{
add_shortcode(\'TestimonialITW\', \'display_testimonials\');
}
add_action(\'init\', \'testimonial_shortcode\');
此外,除非您注册了名为
published
, 那个
\'post_status\' => \'published\'
应该是
\'post_status\' => \'publish\'
.