You've already forked wp-bootstrap
v0.1.1 - Bootstrap frontend rendering via Twig templates
Replace FSE block markup on the frontend with proper Bootstrap 5 HTML rendered through Twig templates. The Site Editor remains functional for admin editing while the public site outputs Bootstrap navbar, cards, pagination, grid layout, and responsive components. New PHP classes: TemplateController, ContextBuilder, NavWalker New Twig templates: 20 files (base, pages, partials, components) Enhanced TwigService with WordPress functions and globals Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -34,6 +34,12 @@ if ( ! function_exists( 'wp_bootstrap_setup' ) ) :
|
||||
|
||||
// Add editor styles.
|
||||
add_editor_style( 'assets/css/editor-style.css' );
|
||||
|
||||
// Register navigation menu locations.
|
||||
register_nav_menus( array(
|
||||
'primary' => __( 'Primary Navigation', 'wp-bootstrap' ),
|
||||
'footer' => __( 'Footer Navigation', 'wp-bootstrap' ),
|
||||
) );
|
||||
}
|
||||
endif;
|
||||
add_action( 'after_setup_theme', 'wp_bootstrap_setup' );
|
||||
@@ -315,3 +321,62 @@ if ( ! function_exists( 'wp_bootstrap_init_twig' ) ) :
|
||||
}
|
||||
endif;
|
||||
add_action( 'after_setup_theme', 'wp_bootstrap_init_twig' );
|
||||
|
||||
/**
|
||||
* Initialize Twig template controller for frontend rendering.
|
||||
*
|
||||
* Hooks into template_redirect to render Bootstrap 5 HTML
|
||||
* via Twig templates instead of FSE block markup on the frontend.
|
||||
*
|
||||
* @since 0.1.1
|
||||
*/
|
||||
if ( ! function_exists( 'wp_bootstrap_init_templates' ) ) :
|
||||
function wp_bootstrap_init_templates() {
|
||||
if ( class_exists( '\\WPBootstrap\\Template\\TemplateController' ) ) {
|
||||
new \WPBootstrap\Template\TemplateController();
|
||||
}
|
||||
}
|
||||
endif;
|
||||
add_action( 'after_setup_theme', 'wp_bootstrap_init_templates' );
|
||||
|
||||
/**
|
||||
* Customize comment form fields with Bootstrap classes.
|
||||
*
|
||||
* @since 0.1.1
|
||||
*
|
||||
* @param array $fields Default comment form fields.
|
||||
* @return array Modified fields with Bootstrap classes.
|
||||
*/
|
||||
if ( ! function_exists( 'wp_bootstrap_comment_form_fields' ) ) :
|
||||
function wp_bootstrap_comment_form_fields( array $fields ): array {
|
||||
$commenter = wp_get_current_commenter();
|
||||
$required = get_option( 'require_name_email' );
|
||||
$req_attr = $required ? ' required' : '';
|
||||
|
||||
$fields['author'] = '<div class="mb-3">'
|
||||
. '<label for="author" class="form-label">' . __( 'Name', 'wp-bootstrap' ) . ( $required ? ' <span class="text-danger">*</span>' : '' ) . '</label>'
|
||||
. '<input id="author" name="author" type="text" class="form-control" value="' . esc_attr( $commenter['comment_author'] ) . '"' . $req_attr . '>'
|
||||
. '</div>';
|
||||
|
||||
$fields['email'] = '<div class="mb-3">'
|
||||
. '<label for="email" class="form-label">' . __( 'Email', 'wp-bootstrap' ) . ( $required ? ' <span class="text-danger">*</span>' : '' ) . '</label>'
|
||||
. '<input id="email" name="email" type="email" class="form-control" value="' . esc_attr( $commenter['comment_author_email'] ) . '"' . $req_attr . '>'
|
||||
. '</div>';
|
||||
|
||||
$fields['url'] = '<div class="mb-3">'
|
||||
. '<label for="url" class="form-label">' . __( 'Website', 'wp-bootstrap' ) . '</label>'
|
||||
. '<input id="url" name="url" type="url" class="form-control" value="' . esc_attr( $commenter['comment_author_url'] ) . '">'
|
||||
. '</div>';
|
||||
|
||||
if ( isset( $fields['cookies'] ) ) {
|
||||
$fields['cookies'] = '<div class="mb-3 form-check">'
|
||||
. '<input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" class="form-check-input" value="yes">'
|
||||
. '<label for="wp-comment-cookies-consent" class="form-check-label">'
|
||||
. __( 'Save my name, email, and website in this browser for the next time I comment.', 'wp-bootstrap' )
|
||||
. '</label></div>';
|
||||
}
|
||||
|
||||
return $fields;
|
||||
}
|
||||
endif;
|
||||
add_filter( 'comment_form_default_fields', 'wp_bootstrap_comment_form_fields' );
|
||||
|
||||
Reference in New Issue
Block a user