使用页面自定义模板不允许我使用 Divi 构建器功能

问题描述 投票:0回答:1

我基本上扩展了 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');
?>
php wordpress fetch-api wordpress-rest-api divi
1个回答
0
投票

我们无法在自定义模板上使用 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' );

如果这有帮助,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.