Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add option to configure or disable category list on category archive … #696

Merged
merged 1 commit into from
Aug 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 10 additions & 20 deletions archive.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<div class="row">
<div class="col-12">
<main id="primary" class="site-main archive">
<?php if ( have_posts() ) : ?>
<?php if ( have_posts() ) { ?>

<header class="page-header text-center">
<?php
Expand All @@ -22,17 +22,6 @@
?>
</header><!-- .page-header -->

<?php
$sunflower_parsed_blocks = parse_blocks( '<!-- wp:categories /-->' );
if ( $sunflower_parsed_blocks ) {
echo '<div class="filter-button-group mb-5 text-center sunflower-categories">';
foreach ( $sunflower_parsed_blocks as $sunflower_block ) {
echo wp_kses_post( render_block( $sunflower_block ) );
}
echo '</div>';
}
?>

<?php
/* Start the Loop */
$sunflower_list_items = '';
Expand Down Expand Up @@ -81,16 +70,17 @@
'next_text' => __( 'next', 'sunflower' ),
);

printf(
'<div class="d-flex justify-content-around mt-3 mb-5"><div class="sunflower-pagination">%s</div></div>',
wp_kses_post( paginate_links( $sunflower_args ) )
);

else :
$sunflower_paginated_links = paginate_links( $sunflower_args );

if ( $sunflower_paginated_links ) {
printf(
'<div class="d-flex justify-content-around mt-3 mb-5"><div class="sunflower-pagination">%s</div></div>',
wp_kses_post( $sunflower_paginated_links )
);
}
} else {
get_template_part( 'template-parts/content', 'none' );

endif;
}
?>

</main><!-- #main -->
Expand Down
121 changes: 121 additions & 0 deletions category.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
<?php
/**
* The template for displaying Category pages
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
*
* @package sunflower
*/

get_header();
?>
<div id="content" class="container">
<div class="row">
<div class="col-12">
<main id="primary" class="site-main archive">
<?php if ( have_posts() ) { ?>

<header class="page-header text-center">
<?php
the_archive_title( '<h1 class="page-title">', '</h1>' );
the_archive_description( '<div class="archive-description">', '</div>' );
?>
</header><!-- .page-header -->

<?php
/* Show used categories below title and description depending on settings. */
$sunflower_categories_archive_setting = sunflower_get_setting( 'sunflower_categories_archive' ) ? sunflower_get_setting( 'sunflower_categories_archive' ) : 'main-categories';

$sunflower_args = array(
'echo' => false,
'hierarchical' => false,
'parent' => 0,
'orderby' => 'name',
'hide_empty' => true,
'show_option_none' => '',
'title_li' => '',
);

if ( 'only-subcategories' === $sunflower_categories_archive_setting ) {
$sunflower_args['parent'] = $cat;
}

if ( 'no' !== $sunflower_categories_archive_setting ) {
$sunflower_categories_archive = wp_list_categories( $sunflower_args );

if ( $sunflower_categories_archive ) {
echo '<div class="filter-button-group mb-5 text-center sunflower-categories"><ul class="wp-block-categories-list wp-block-categories">';
echo wp_kses_post( $sunflower_categories_archive );
echo '</ul></div>';
}
}

/* Start the Loop */
$sunflower_list_items = '';
while ( have_posts() ) {

the_post();

/*
* Include the Post-Type-specific template for the content.
* If you want to override this in a child theme, then include a file
* called content-___.php (where ___ is the Post Type name) and that will be used instead.
*/
ob_start();
get_template_part( 'template-parts/content', 'archive' );

$sunflower_article = ob_get_clean();

$sunflower_list_items .= sprintf(
'<div class="col-md-6">%s</div>',
$sunflower_article
);

}
?>

<div class="archive-loop row" data-masonry='{"percentPosition": true }'>
<?php
echo wp_kses(
$sunflower_list_items,
array_merge(
wp_kses_allowed_html( 'post' ),
array(
'time' => array(
'class' => true,
'datetime' => true,
),
)
)
);
?>
</div>
<?php

$sunflower_args = array(
'prev_text' => __( 'previous', 'sunflower' ),
'next_text' => __( 'next', 'sunflower' ),
);

$sunflower_paginated_links = paginate_links( $sunflower_args );

if ( $sunflower_paginated_links ) {
printf(
'<div class="d-flex justify-content-around mt-3 mb-5"><div class="sunflower-pagination">%s</div></div>',
wp_kses_post( $sunflower_paginated_links )
);
}
} else {
get_template_part( 'template-parts/content', 'none' );

}

?>

</main><!-- #main -->
</div>
</div>
</div>
<?php
get_sidebar();
get_footer();
47 changes: 42 additions & 5 deletions functions/options/class-sunflowersettingspage.php
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,15 @@ public function sunflower_settings_page_init(): void {
'sunflower_layout',
array( 'sunflower_header_social_media', __( 'Show social media icons in header', 'sunflower' ) )
);

add_settings_field(
'sunflower_categories_archive',
__( 'Show list of categories on category archive', 'sunflower' ),
$this->sunflower_categories_archive( ... ),
'sunflower-setting-admin',
'sunflower_layout',
array( 'sunflower_categories_filter', __( 'Show list of categories on category archive', 'sunflower' ) )
);
}

/**
Expand Down Expand Up @@ -248,13 +257,41 @@ public function sunflower_contact_form_to(): void {
public function sunflower_header_layout(): void {
echo '<select id="sunflower_header_layout" name="sunflower_options[sunflower_header_layout]">';

$options = array( 'standard', 'personal' );
$options = array(
array( 'standard', __( 'Standard', 'sunflower' ) ),
array( 'personal', __( 'Personal', 'sunflower' ) ),
);
foreach ( $options as $option ) {
$selected = ( isset( $this->options['sunflower_header_layout'] ) && $this->options['sunflower_header_layout'] === $option[0] ) ? 'selected' : '';
printf(
'<option value="%1$s" %2$s>%3$s</option>',
esc_attr( $option[0] ),
esc_attr( $selected ),
esc_attr( $option[1] )
);
}

echo '</select>';
}

/**
* Header layout variant field
*/
public function sunflower_categories_archive(): void {
echo '<select id="sunflower_categories_archive" name="sunflower_options[sunflower_categories_archive]">';

$options = array(
array( 'no', __( 'do not show', 'sunflower' ) ),
array( 'main-categories', __( 'main categories', 'sunflower' ) ),
array( 'only-subcategories', __( 'only sub-categories', 'sunflower' ) ),
);
foreach ( $options as $option ) {
$selected = ( isset( $this->options['sunflower_header_layout'] ) && $this->options['sunflower_header_layout'] === $option ) ? 'selected' : '';
$selected = ( isset( $this->options['sunflower_categories_archive'] ) && $this->options['sunflower_categories_archive'] === $option[0] ) ? 'selected' : '';
printf(
'<option value="%1$s" %2$s>%1$s</option>',
esc_attr( $option ),
esc_attr( $selected )
'<option value="%1$s" %2$s>%3$s</option>',
esc_attr( $option[0] ),
esc_attr( $selected ),
esc_attr( $option[1] )
);
}

Expand Down
Binary file modified languages/de_DE.mo
Binary file not shown.
Loading