我基本上扩展了 Divi 主题,这是其中的文件之一。
此文件创建自定义模板,以便获取一些数据并显示它,但是 Divi 构建器不可用,我无法使用它。
我希望能够使用 Divi 的功能 + 添加那些获取的帖子,有什么办法吗?
/**
* Template Name: Exams Template
*/
do_action('et_before_main_content');
get_header();
?>
<div id="primary" class="content-area">
<main id="main" class="site-main">
<header class="page-header">
<h1 class="page-title"><?php echo esc_html( get_the_title() ); ?></h1>
</header>
<div class="styled-boxes">
<?php
// Fetch exams data from REST API endpoint
$response = wp_remote_get( 'http://testyourself.net/wp-json/wp/v1/exams/' );
if ( is_wp_error( $response ) ) {
echo '<p>Error fetching exams data.</p>';
} else {
$exams_data = json_decode( wp_remote_retrieve_body( $response ), true );
// Check if exams data is available
if ( ! empty( $exams_data ) ) {
foreach ( $exams_data as $exam ) {
?>
<div class="styled-box">
<h2><?php echo esc_html( $exam['title'] ); ?></h2>
<div class="exam-content"><?php echo wpautop( $exam['content'] ); ?></div>
</div>
<?php
}
} else {
echo '<p>No exams data available.</p>';
}
}
?>
</div><!-- .styled-boxes -->
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_footer();
do_action('et_after_main_content');
?>
我们无法在自定义模板上使用 Divi Builder。如果您想将 Divi 构建器与考试数据一起使用,那么我建议您创建可以添加到 Divi 构建器中的简码,这样您就可以在 Divi 构建器的帮助下将 Divi 构建器与考试数据一起使用。
给定的代码将
register shortcode
来获取并 display exams data
。请将此代码添加到您的主题或自定义插件的 functions.php
文件中。
function fetch_exams_data_shortcode() {
ob_start(); // Here we have started output buffering.
// Here we are fetching exams data from REST API endpoint.
$response = wp_remote_get( 'http://testyourself.net/wp-json/wp/v1/exams/' );
if ( is_wp_error( $response ) ) {
echo '<p>Error fetching exams data.</p>';
} else {
$exams_data = json_decode( wp_remote_retrieve_body( $response ), true );
// Here we are checking if exams data is available.
if ( ! empty( $exams_data ) ) {
echo '<div class="styled-boxes">';
foreach ( $exams_data as $exam ) {
echo '<div class="styled-box">';
echo '<h2>' . esc_html( $exam['title'] ) . '</h2>';
echo '<div class="exam-content">' . wpautop( $exam['content'] ) . '</div>';
echo '</div>';
}
echo '</div><!-- .styled-boxes -->';
} else {
echo '<p>No exams data available.</p>';
}
}
return ob_get_clean(); // Here we have returned the buffered content.
}
add_shortcode( 'fetch_exams', 'fetch_exams_data_shortcode' );
如果这有帮助,请告诉我。