WordPress

php — Jak mogę wyświetlić zawartość Divi wewnątrz modalu na podstawie żądania AJAX

  • 30 maja, 2024
  • 3 min read
php — Jak mogę wyświetlić zawartość Divi wewnątrz modalu na podstawie żądania AJAX


To moje pierwsze pytanie. Proszę o wyrozumiałość, jeżeli zapomniałem jakichś informacji.

Chcę pokazać zawartość Divi (zapisaną jako projekt WordPress, jeśli jest to ważne) wewnątrz nałożonego modalu. W tym celu użyłem żądania Ajax. Kod pokaż poniżej

JS

  jQuery('.et_pb_portfolio_link').each(function(){
    jQuery(this).on("click", function(){
      url = jQuery(this).attr('href');

      $.ajax({
          url : '//page/wp-admin/admin-ajax.php',
          data : {
              action : 'getOverlayPageContent',
              id : 1
          },
          method : 'POST',
          success : function(html) {
            jQuery('<div>', {id:'modal', class:'modal'}).appendTo('#main-content');
            jQuery('#modal').html(html);
          },
          error : function(error){ console.log(error) }
      })
      return false;
    });
  });

PHP

add_action('wp_ajax_nopriv_getOverlayPageContent', 'getOverlayPageContent');
function getOverlayPageContent() {
    // load content
  $data = apply_filters('the_content', get_post_field('post_content', 106421));
  // Content als JSON zurückgeben
  wp_send_json($data);
  wp_die();
}

Odpowiedź (wyciąg)

[et_pb_section fb_built=»1″ fullwidth=»on» _builder_version=»4.24.0″ _module_preset=»default» max_height=»175px» max_height_tablet=»125px» max_height_phone=»100px» max_height_last_edited=»on|tablet» global_colors_info=»{}» theme_builder_area=»post_content»][et_pb_fullwidth_image src=» title_text=»Screenshot 2024-02-08 121634″ module_class=»references_heroimage fw_row» _builder_version=»4.24.0″ _module_preset=»default» global_colors_info=»{}» theme_builder_area=»post_content»][/et_pb_fullwidth_image][/et_pb_section][et_pb_section fb_built=»1″ module_class=»reference_title_section» _builder_version=»4.24.0″ _module_preset=»default» global_colors_info=»{}» theme_builder_area=»post_content»][et_pb_row custom_padding_last_edited=»off|desktop» module_class=»reference_title_row» _builder_version=»4.24.0″ _module_preset=»default» global_colors_info=»{}» theme_builder_area=»post_content»][et_pb_column type=»4_4″ _builder_version=»4.24.0″ _module_preset=»default» global_colors_info=»{}» theme_builder_area=»post_content»][et_pb_text module_class=»reference_title» _builder_version=»4.24.0″ _dynamic_attributes=»content» _module_preset=»default» text_font=»HelveticaNeueLTPro-Hv||||||||» header_2_font=»HelveticaNeueLTPro-Hv||||||||» global_colors_info=»{}» theme_builder_area=»post_content»]@ET-DC@eyJkeW5hbWljIjp0cnVlLCJjb250ZW50IjoicG9zdF90aXRsZSIsInNldHRpbmdzIjp7ImJlZm9yZSI6IiIsImFmdGVyIjoiIn19@[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section][et_pb_section fb_built=»1″ custom_padding_last_edited=»off|tablet» disabled_on=»off|off|off» admin_label=»Image / Text» _builder_version=»4.24.0″ _module_preset=»default» background_enable_color=»off» custom_padding=»0px||0px||false|false» custom_padding_tablet=»150px||150px||false|false»

Przykładem jest identyfikator postu 106421. To jest identyfikator pasującej strony projektu. Dostaję odpowiednią treść (patrz wyżej), ale nie jest ona renderowana przez Divi. Jak mogę również przetworzyć krótkie kody Divi, aby uzyskać pełną treść HTML?

Warto przeczytać!  Jak stworzyć katalog produktów w WordPress (krok po kroku)


Źródło