我做了一个自定义插件,它可以创建一个包含自定义post类型数据的表。我使用的是“宝石”主题,这个问题是特定于此页面只(这是不使用不同的模板)。当我激活此插件时,我无法“使用Elementor编辑”,并在尝试时收到以下消息:对不起,您访问的页面不存在。您必须在当前模板中调用'the_content'函数,以便Elementor在此页面上工作。
当插件被激活时,它不会破坏页面,我只是不能用Elementor编辑页面。我可以解除它然后回到元素门我尝试添加_content();插入到我的插件中,但这不起作用。我认为这是插件代码中的一些东西,因为如果我只是回显“Hello World!“没有问题,我可以回到Elementor编辑器。编辑以包含下面的完整插件代码:
function queryGrantPosts() {
// the args
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array(
'post_type' => 'grants',
'posts_per_page' => '10',
'paged' => $paged,
'orderby' => 'title',
'order' => 'ASC',
);
$args['search_filter_id'] = 1350;
$myPosts = new WP_Query($args) ;
return $myPosts ;
}
function createTableEndHTML(){
$myHTML = '';
$myHTML .= ' </table>';
$myHTML .= '</div>';
$myHTML .= '<div class="pagination">';
$myHTML .= ' <?php the_custom_pagination( $the_query); ?>';
$myHTML .= '</div>';
return $myHTML;
}
function createTableStartHTML(){
$myHTML = '';
$myHTML .= '<div class="table-wrap">';
$myHTML .= ' <table class="grants-list">';
$myHTML .= ' <thead class="grants-listing">';
$myHTML .= ' <th width="33%">Organization,<br>Program Name</th>';
$myHTML .= ' <th width="10%">City,<br>Location</th>';
$myHTML .= ' <th width="8%">Amount</th>';
$myHTML .= ' <th width="5%">Life Cycle (months)</th>';
$myHTML .= ' <th width="25%">Counties Served</th>';
$myHTML .= ' </thead>';
return $myHTML;
}
function createTableContentHTML($pPosts){
$myHTML = '';
// the loop
while ( $pPosts->have_posts() ) : $pPosts->the_post();
$number = get_field('amount_num');
$amount = number_format($number);
$programName = get_field('program_name');
$organizationCity = get_field('organization_city');
$geographicLocation = get_field('geographic_location');
$grantLifeCycle = get_field('grant_life_cycle');
$myTerms = get_the_terms(get_the_ID(), 'counties_served');
if ( $myTerms && ! is_wp_error($myTerms) ) {
$myTermList = join(', ', wp_list_pluck($myTerms, 'name'));
}
$myHTML .= '<tr class="grants-listing">';
$myHTML .= ' <td class="program-name">';
$myHTML .= ' <span style="font-family: Gotham Bold, sans-serif;">' . get_the_title() . '</span></br>' ;
$myHTML .= $programName . '</td>';
$myHTML .= ' <td>' . $organizationCity . '<br><em>' . $geographicLocation . '</em></td>';
$myHTML .= ' <td>' . $amount . '</td>';
$myHTML .= ' <td>' . $grantLifeCycle . '</td>';
$myHTML .= ' <td>';
$myHTML .= $myTermList;
$myHTML .= ' </td>';
$myHTML .= '</tr>';
endwhile;
return $myHTML;
}
function createTablePagination($pPosts){
$myHTML = '';
$myHTML .= '<div class="gem-pagination">';
$myHTML .= the_custom_pagination( $pPosts );
$myHTML .= '</div>';
return $myHTML;
}
the_content();
add_shortcode('bpr_grant_table', 'createGranteeTable');
function createGranteeTable(){
$myPosts = queryGrantPosts();
echo createTableStartHTML();
echo createTableContentHTML($myPosts);
echo createTableEndHTML();
if (function_exists( 'the_custom_pagination' ) ) {
createTablePagination($myPosts);
} else {
echo 'function not found';
}
}
有什么想法吗?我是不是调用了错误的函数或者在错误的地方?
2条答案
按热度按时间nmpmafwu1#
有不同种类的解决方案来解决这个问题。
您或主题的开发人员是否为您的主题创建了一个不包括
the_content
功能的自定义WordPress页面模板?您需要在代码中包含_content,以便使用Elementor编辑它或切换到不同的主题,这通常可以解决问题。首先,试着切换到Hello这样的主题,看看你的问题是否解决了。如果您是Web开发人员并且正在开发主题,请将_content函数添加到页面模板的代码中。这是您需要添加的行:<?php the_content(); ?>
如果您不熟悉在哪里放置此代码或如何将其添加到页面,请联系您的网站开发人员,以便它可以正确实施,因为我们无法提供完全支持。请注意,添加此代码不会启用编辑存档页面和最新文章页面(这些页面必须通过Elementor的主题构建器进行编辑),而且非常简单。欲了解更多信息,请阅读以下文章:
https://elementor.com/help/the-content-area-was-not-found-error/
https://kinsta.com/knowledgebase/you-must-call-the-content-function-elementor/
谢谢你
xwbd5t1u2#
更新!找到了这个代码,为我解决了这个问题。如果我把这段代码放在查询之前
循环后的代码
然后我就不会再得到Elementor错误。