ฉันสร้างโมดูลที่กำหนดเองซึ่งแทนที่สตริงบางส่วนในหน้าแรก สำหรับโหนดนั้นทำงานได้อย่างถูกต้อง แต่ไม่ทำงานบนหน้าแรก ฉันเขียนรหัสนี้
ฟังก์ชัน my_module_preprocess_page(&$ตัวแปร) {
ถ้า (\Drupal::routeMatch()->getRouteName() == 'view.frontpage.page_1') {
$generateBlock = โมฆะ;
$block_manager = \Drupal::service('plugin.manager.block');
$block_config = [];
$block_plugin = $block_manager->createInstance('id_block', $block_config);
$block_build = $block_plugin->build();
$block_content = เรนเดอร์($block_build);
$block = \Drupal\block_content\Entity\BlockContent::โหลด(4);
$render = \Drupal::entityTypeManager()->getViewBuilder('block_content')->view($block);
$body = $render['body'][0]['#text'];
$newContent = str_replace('---*block*----', $block_content, $body);
// ฉันไม่รู้ว่าแสดงเนื้อหาที่แก้ไขใหม่จาก $newContent อย่างไร
ส่งคืนตัวแปร $;
}
}
ฉันต้องการแก้ไขเนื้อหาด้วยสตริงใหม่ใน $เนื้อหาใหม่
แต่ฉันไม่สามารถบันทึกเนื้อหานี้ไปยังตัวแปรได้ เนื้อหาของฉันไม่ถูกดัดแปลง