Synced folder

This commit is contained in:
Andreas Andersen 2026-04-17 21:26:52 +02:00
parent 2800ac8085
commit 364c607471
47 changed files with 644 additions and 56 deletions

BIN
ansico-wp-theme-1.0.1.zip Normal file

Binary file not shown.

Binary file not shown.

View file

@ -365,3 +365,132 @@ if ( ! function_exists( 'ansico_hide_legacy_contact_methods' ) ) {
}
add_filter( 'user_contactmethods', 'ansico_hide_legacy_contact_methods', 9999 );
if ( ! function_exists( 'ansico_get_post_taxonomies_markup' ) ) {
function ansico_get_post_taxonomies_markup( $post_id = 0, $include_default_taxonomies = true ) {
$post_id = $post_id ? (int) $post_id : (int) get_queried_object_id();
if ( ! $post_id ) {
return '';
}
$post_type = get_post_type( $post_id );
if ( empty( $post_type ) ) {
return '';
}
$rows = array();
$tax_order = array( 'category', 'post_tag' );
$taxonomy_keys = get_object_taxonomies( $post_type, 'names' );
$excluded_keys = array( 'post_format', 'nav_menu', 'link_category' );
$sorted_keys = array();
if ( empty( $taxonomy_keys ) || ! is_array( $taxonomy_keys ) ) {
return '';
}
$taxonomy_keys = array_values( array_filter( $taxonomy_keys, function( $taxonomy_name ) use ( $excluded_keys ) {
return ! in_array( $taxonomy_name, $excluded_keys, true ) && 0 !== strpos( $taxonomy_name, 'nav_' );
} ) );
foreach ( $tax_order as $taxonomy_name ) {
if ( in_array( $taxonomy_name, $taxonomy_keys, true ) ) {
$sorted_keys[] = $taxonomy_name;
}
}
foreach ( $taxonomy_keys as $taxonomy_name ) {
if ( ! in_array( $taxonomy_name, $sorted_keys, true ) ) {
$sorted_keys[] = $taxonomy_name;
}
}
foreach ( $sorted_keys as $taxonomy_name ) {
if ( ! $include_default_taxonomies && in_array( $taxonomy_name, $tax_order, true ) ) {
continue;
}
$taxonomy = get_taxonomy( $taxonomy_name );
if ( ! $taxonomy ) {
continue;
}
$terms = wp_get_post_terms( $post_id, $taxonomy_name );
if ( empty( $terms ) || is_wp_error( $terms ) ) {
continue;
}
$links = array();
foreach ( $terms as $term ) {
$term_link = get_term_link( $term, $taxonomy_name );
if ( is_wp_error( $term_link ) || empty( $term_link ) ) {
$links[] = esc_html( $term->name );
continue;
}
$links[] = '<a href="' . esc_url( $term_link ) . '">' . esc_html( $term->name ) . '</a>';
}
if ( empty( $links ) ) {
continue;
}
if ( 'category' === $taxonomy_name ) {
$label = __( 'Categories', 'ansico-wp-theme' );
} elseif ( 'post_tag' === $taxonomy_name ) {
$label = __( 'Tags', 'ansico-wp-theme' );
} else {
$label = ! empty( $taxonomy->labels->singular_name ) ? $taxonomy->labels->singular_name : ( ! empty( $taxonomy->labels->name ) ? $taxonomy->labels->name : $taxonomy->label );
}
$rows[] = '<div class="ansico-post-taxonomy-row ansico-post-taxonomy-row-' . sanitize_html_class( $taxonomy_name ) . '"><span class="ansico-post-taxonomy-label"><strong>' . esc_html( $label ) . ':</strong></span> <span class="ansico-post-taxonomy-terms">' . implode( ', ', $links ) . '</span></div>';
}
if ( empty( $rows ) ) {
return '';
}
return '<div class="wp-block-group ansico-post-taxonomy" data-post-type="' . esc_attr( $post_type ) . '">' . implode( '', $rows ) . '</div>';
}
}
if ( ! function_exists( 'ansico_post_taxonomies_shortcode' ) ) {
function ansico_post_taxonomies_shortcode() {
if ( ! is_singular() ) {
return '';
}
return ansico_get_post_taxonomies_markup( get_queried_object_id() );
}
}
add_shortcode( 'ansico_post_taxonomies', 'ansico_post_taxonomies_shortcode' );
if ( ! function_exists( 'ansico_append_post_taxonomies_to_post_content' ) ) {
function ansico_append_post_taxonomies_to_post_content( $block_content, $block ) {
if ( is_admin() || ! is_singular() || empty( $block['blockName'] ) || 'core/post-content' !== $block['blockName'] ) {
return $block_content;
}
if ( ! in_the_loop() || ! is_main_query() ) {
return $block_content;
}
$post_id = get_queried_object_id();
if ( ! $post_id ) {
return $block_content;
}
$taxonomy_markup = ansico_get_post_taxonomies_markup( $post_id, false );
if ( empty( $taxonomy_markup ) ) {
return $block_content;
}
return $block_content . $taxonomy_markup;
}
}
add_filter( 'render_block', 'ansico_append_post_taxonomies_to_post_content', 10, 2 );

View file

@ -1,10 +1,10 @@
<!-- wp:group {"className":"ansico-header-shell","backgroundColor":"base","layout":{"type":"constrained"}} -->
<div class="wp-block-group ansico-header-shell has-base-background-color has-background"><!-- wp:group {"className":"ansico-title-wrap","align":"wide","layout":{"type":"constrained"}} -->
<!-- wp:group {"align":"full","className":"ansico-header-shell","backgroundColor":"base","layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull ansico-header-shell has-base-background-color has-background"><!-- wp:group {"className":"ansico-title-wrap","align":"wide","layout":{"type":"constrained"}} -->
<div class="wp-block-group ansico-title-wrap alignwide"><!-- wp:site-title {"level":1,"textAlign":"center","style":{"typography":{"fontSize":"3.6rem","fontWeight":"700"}}} /--></div>
<!-- /wp:group -->
<!-- wp:group {"className":"ansico-main-nav-wrap","layout":{"type":"constrained"}} -->
<div class="wp-block-group ansico-main-nav-wrap"><!-- wp:navigation {"className":"ansico-main-nav","layout":{"type":"flex","justifyContent":"center","flexWrap":"wrap"},"style":{"spacing":{"blockGap":"0.9rem"}}} -->
<!-- wp:group {"align":"full","className":"ansico-main-nav-wrap","layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull ansico-main-nav-wrap"><!-- wp:navigation {"className":"ansico-main-nav","layout":{"type":"flex","justifyContent":"center","flexWrap":"wrap"},"style":{"spacing":{"blockGap":"0.9rem"}}} -->
<!-- wp:navigation-link {"label":"Home","type":"custom","url":"/","kind":"custom","isTopLevelLink":true,"title":"Home"} /-->
<!-- /wp:navigation --></div>
<!-- /wp:group --></div>

View file

@ -3,7 +3,7 @@ Contributors: aphandersen
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.0.0
Version: 1.0.0.10
License: GPLv3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: blog, two-columns, right-sidebar, featured-images, custom-menu, full-site-editing, editor-style, block-styles
@ -17,7 +17,7 @@ Ansico WP Theme is a block theme built for content-focused WordPress sites.
Features include:
* Centered site title and structured main navigation
* Front page and archive views with featured image support
* Single post layout with author metadata, categories, and tags
* Single post layout with author metadata, categories, tags, and custom taxonomies
* Author pages with avatar, bio, website, and social profile links
* Sidebar layout for pages, archives, and author views
* Included Source Sans 3 webfonts bundled locally in the theme

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 260 KiB

View file

@ -7,7 +7,7 @@ Description: A full site editing WordPress theme with a centered title header, b
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.0.0
Version: 1.0.1
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: ansico-wp-theme
@ -45,18 +45,18 @@ Tags: full-site-editing, block-patterns, block-styles, blog, one-column, two-col
:root {
--ansico-font-family: 'Source Sans 3', sans-serif;
--ansico-color-primary: #0a66c2;
--ansico-color-primary-dark: #084b8a;
--ansico-color-text: #000000;
--ansico-color-border: #cfd6df;
--ansico-color-surface: #ffffff;
--ansico-color-primary: var(--wp--preset--color--primary, #0a66c2);
--ansico-color-primary-dark: var(--wp--preset--color--primary-dark, #084b8a);
--ansico-color-text: var(--wp--preset--color--contrast, #000000);
--ansico-color-border: var(--wp--preset--color--border, #cfd6df);
--ansico-color-surface: var(--wp--preset--color--base, #ffffff);
}
html,
body,
.editor-styles-wrapper {
background: #ffffff;
color: #000000;
background: var(--ansico-color-surface);
color: var(--ansico-color-text);
font-family: var(--ansico-font-family);
}
@ -78,7 +78,7 @@ label,
.wp-block-page-list,
.wp-block-page-list__item,
.wp-block-search__input {
color: #000000;
color: var(--ansico-color-text);
}
.wp-site-blocks {
@ -114,7 +114,7 @@ h1::after, h2::after, h3::after,
/* Header */
.ansico-header-shell {
background: #ffffff;
background: var(--ansico-color-surface);
padding: 3.25rem 2rem 0 2rem;
position: relative;
}
@ -192,8 +192,8 @@ h1::after, h2::after, h3::after,
.ansico-main-nav-wrap .wp-block-navigation-item__content,
.ansico-main-nav-wrap .wp-block-page-list__item__link {
display: inline-block;
background: #ffffff;
color: #000000 !important;
background: var(--ansico-color-surface);
color: var(--ansico-color-text) !important;
border: none;
border-radius: 0;
padding: 0.75rem 1.15rem;
@ -1138,3 +1138,207 @@ body[class*="front-page"] .ansico-post-list-text .wp-block-post-excerpt p {
background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5.5 9.8V21h13V9.8'/%3E%3Cpath d='M9.5 21v-5.5h5V21'/%3E%3C/svg%3E");
}
/* Build 1.0.0.2: header navigation width */
.ansico-header-shell.alignfull {
width: 100%;
max-width: none;
}
.ansico-header-shell .ansico-main-nav-wrap.alignfull,
.ansico-header-shell .ansico-main-nav-wrap {
width: 100%;
max-width: none;
}
.ansico-header-shell .ansico-main-nav-wrap > .wp-block-navigation,
.ansico-header-shell .ansico-main-nav-wrap > .wp-block-page-list {
width: 100%;
max-width: var(--wp--style--global--wide-size, 1200px);
margin-left: auto;
margin-right: auto;
box-sizing: border-box;
}
.ansico-header-shell .ansico-main-nav-wrap .wp-block-navigation__container,
.ansico-header-shell .ansico-main-nav-wrap .wp-block-page-list,
.ansico-header-shell .ansico-main-nav-wrap ul {
width: 100%;
justify-content: center;
box-sizing: border-box;
}
/* Build 1.0.0.6: stronger content heading hierarchy + larger mobile nav links + taxonomy rows */
.wp-block-post-content h2,
.wp-block-post-content h3,
.wp-block-post-content h4,
.wp-block-post-content h5,
.wp-block-post-content h6,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
text-align: left;
}
.wp-block-post-content h3::after,
.wp-block-post-content h4::after,
.wp-block-post-content h5::after,
.wp-block-post-content h6::after,
.entry-content h3::after,
.entry-content h4::after,
.entry-content h5::after,
.entry-content h6::after {
content: none;
}
.wp-block-post-content h2,
.entry-content h2 {
font-size: 2.15rem;
line-height: 1.18;
}
.wp-block-post-content h3,
.entry-content h3 {
font-size: 1.7rem;
line-height: 1.22;
}
.wp-block-post-content h4,
.entry-content h4 {
font-size: 1.35rem;
line-height: 1.28;
}
.wp-block-post-content h5,
.entry-content h5 {
font-size: 1.12rem;
line-height: 1.34;
}
.wp-block-post-content h6,
.entry-content h6 {
font-size: 0.98rem;
line-height: 1.4;
}
@media (max-width: 700px) {
.ansico-main-nav-wrap .wp-block-navigation__responsive-container .wp-block-navigation-item__content,
.ansico-main-nav-wrap .wp-block-navigation__responsive-container .wp-block-page-list__item__link,
.ansico-main-nav-wrap .wp-block-navigation__responsive-container a {
font-size: 1.2rem;
line-height: 1.3;
padding-top: 0.9rem;
padding-bottom: 0.9rem;
}
.ansico-main-nav-wrap .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
.ansico-main-nav-wrap .wp-block-navigation__responsive-container-content .wp-block-page-list,
.ansico-main-nav-wrap .wp-block-navigation__responsive-container-content ul {
gap: 1rem;
}
.ansico-main-nav-wrap .wp-block-navigation__responsive-container-open,
.ansico-main-nav-wrap .wp-block-navigation__responsive-container-close {
min-width: 44px;
min-height: 44px;
}
.ansico-main-nav-wrap .wp-block-navigation__responsive-container-open svg,
.ansico-main-nav-wrap .wp-block-navigation__responsive-container-close svg {
width: 28px;
height: 28px;
}
}
/* Build 1.0.0.6: larger mobile navigation links */
@media (max-width: 700px) {
.ansico-main-nav-wrap .wp-block-navigation__responsive-container .wp-block-navigation-item__content,
.ansico-main-nav-wrap .wp-block-navigation__responsive-container .wp-block-page-list__item__link,
.ansico-main-nav-wrap .wp-block-navigation__responsive-container a {
font-size: 1.35rem;
line-height: 1.35;
padding-top: 1rem;
padding-bottom: 1rem;
}
}
/* Build 1.0.0.6: taxonomy rows on separate lines including custom taxonomies */
.single .ansico-post-taxonomy {
display: block;
width: 100%;
margin-top: 28px;
margin-left: 0 !important;
padding-left: 0 !important;
text-align: left !important;
}
.single .ansico-post-taxonomy-row {
display: block;
margin: 0 0 10px 0 !important;
padding: 0;
}
.single .ansico-post-taxonomy-row:last-child {
margin-bottom: 0 !important;
}
.single .ansico-post-taxonomy-label,
.single .ansico-post-taxonomy-terms {
display: inline;
}
.single .ansico-post-taxonomy .ansico-post-taxonomy-label strong {
font-weight: 700;
}
/* Taxonomy spacing fix */
.ansico-taxonomies {
margin-top: 1em;
}
.ansico-taxonomy {
margin: 0;
padding: 0;
}
.ansico-taxonomy + .ansico-taxonomy {
margin-top: 0.5em;
}
/* Remove extra margin from WP block */
.wp-block-post-terms {
margin-bottom: 0;
}
/* Build 1.0.0.12: tighter taxonomy spacing */
.single .ansico-post-taxonomy {
margin-top: 1em;
}
.single .ansico-post-taxonomy-row {
margin: 0 !important;
padding: 0 !important;
line-height: 1.5;
}
.single .ansico-post-taxonomy-row + .ansico-post-taxonomy-row {
margin-top: 0.5em !important;
}
/* Build 1.0.0.12: larger mobile navigation links */
@media (max-width: 700px) {
.ansico-main-nav-wrap .wp-block-navigation__responsive-container .wp-block-navigation-item__content,
.ansico-main-nav-wrap .wp-block-navigation__responsive-container .wp-block-page-list__item__link,
.ansico-main-nav-wrap .wp-block-navigation__responsive-container a {
font-size: 1.5rem;
line-height: 1.4;
padding-top: 1.05rem;
padding-bottom: 1.05rem;
}
}

View file

@ -0,0 +1,59 @@
{
"version": 3,
"title": "Blå",
"settings": {
"color": {
"palette": [
{
"slug": "primary",
"name": "Primary",
"color": "#0a66c2"
},
{
"slug": "primary-dark",
"name": "Primary Dark",
"color": "#084b8a"
},
{
"slug": "base",
"name": "Base",
"color": "#ffffff"
},
{
"slug": "contrast",
"name": "Contrast",
"color": "#000000"
},
{
"slug": "border",
"name": "Border",
"color": "#cfd6df"
}
]
}
},
"styles": {
"color": {
"background": "#ffffff",
"text": "#000000"
},
"elements": {
"heading": {
"color": {
"text": "var(--wp--preset--color--primary)"
}
},
"link": {
"color": {
"text": "var(--wp--preset--color--primary)"
}
},
"button": {
"color": {
"background": "var(--wp--preset--color--primary)",
"text": "#ffffff"
}
}
}
}
}

Binary file not shown.

View file

@ -0,0 +1,59 @@
{
"version": 3,
"title": "Grøn",
"settings": {
"color": {
"palette": [
{
"slug": "primary",
"name": "Primary",
"color": "#2f855a"
},
{
"slug": "primary-dark",
"name": "Primary Dark",
"color": "#276749"
},
{
"slug": "base",
"name": "Base",
"color": "#ffffff"
},
{
"slug": "contrast",
"name": "Contrast",
"color": "#000000"
},
{
"slug": "border",
"name": "Border",
"color": "#cfe0d6"
}
]
}
},
"styles": {
"color": {
"background": "#ffffff",
"text": "#000000"
},
"elements": {
"heading": {
"color": {
"text": "var(--wp--preset--color--primary)"
}
},
"link": {
"color": {
"text": "var(--wp--preset--color--primary)"
}
},
"button": {
"color": {
"background": "var(--wp--preset--color--primary)",
"text": "#ffffff"
}
}
}
}
}

Binary file not shown.

View file

@ -0,0 +1,59 @@
{
"version": 3,
"title": "Petrol",
"settings": {
"color": {
"palette": [
{
"slug": "primary",
"name": "Primary",
"color": "#0f766e"
},
{
"slug": "primary-dark",
"name": "Primary Dark",
"color": "#115e59"
},
{
"slug": "base",
"name": "Base",
"color": "#ffffff"
},
{
"slug": "contrast",
"name": "Contrast",
"color": "#000000"
},
{
"slug": "border",
"name": "Border",
"color": "#c8dcda"
}
]
}
},
"styles": {
"color": {
"background": "#ffffff",
"text": "#000000"
},
"elements": {
"heading": {
"color": {
"text": "var(--wp--preset--color--primary)"
}
},
"link": {
"color": {
"text": "var(--wp--preset--color--primary)"
}
},
"button": {
"color": {
"background": "var(--wp--preset--color--primary)",
"text": "#ffffff"
}
}
}
}
}

Binary file not shown.

View file

@ -16,17 +16,6 @@
<!-- wp:post-featured-image {"style":{"spacing":{"margin":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}}} /-->
<!-- wp:post-content {"layout":{"type":"constrained"}} /-->
<!-- wp:group {"className":"ansico-post-taxonomy","layout":{"type":"constrained"}} -->
<div class="wp-block-group ansico-post-taxonomy"><!-- wp:group {"className":"ansico-post-taxonomy-row","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"left","verticalAlignment":"top"}} -->
<div class="wp-block-group ansico-post-taxonomy-row">
<!-- wp:post-terms {"term":"category","prefix":"<strong>Categories:</strong> "} /--></div>
<!-- /wp:group -->
<!-- wp:group {"className":"ansico-post-taxonomy-row","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"left","verticalAlignment":"top"}} -->
<div class="wp-block-group ansico-post-taxonomy-row">
<!-- wp:post-terms {"term":"post_tag","prefix":"<strong>Tags:</strong> "} /--></div>
<!-- /wp:group --></div>
<!-- /wp:group -->
</div>
<!-- /wp:group -->

View file

@ -11,22 +11,69 @@
"defaultPalette": false,
"defaultGradients": false,
"palette": [
{ "slug": "primary", "name": "LinkedIn Blue", "color": "#0a66c2" },
{ "slug": "primary-dark", "name": "Primary Dark", "color": "#084b8a" },
{ "slug": "base", "name": "Base", "color": "#ffffff" },
{ "slug": "contrast", "name": "Contrast", "color": "#000000" },
{ "slug": "border", "name": "Border", "color": "#cfd6df" }
{
"slug": "primary",
"name": "Primary",
"color": "#0a66c2"
},
{
"slug": "primary-dark",
"name": "Primary Dark",
"color": "#084b8a"
},
{
"slug": "base",
"name": "Base",
"color": "#ffffff"
},
{
"slug": "contrast",
"name": "Contrast",
"color": "#000000"
},
{
"slug": "border",
"name": "Border",
"color": "#cfd6df"
}
]
},
"spacing": {
"units": ["px", "em", "rem", "%", "vh", "vw"],
"units": [
"px",
"em",
"rem",
"%",
"vh",
"vw"
],
"blockGap": true,
"spacingSizes": [
{ "slug": "20", "size": "0.5rem", "name": "XS" },
{ "slug": "30", "size": "0.875rem", "name": "S" },
{ "slug": "40", "size": "1.25rem", "name": "M" },
{ "slug": "50", "size": "2rem", "name": "L" },
{ "slug": "60", "size": "3rem", "name": "XL" }
{
"slug": "20",
"size": "0.5rem",
"name": "XS"
},
{
"slug": "30",
"size": "0.875rem",
"name": "S"
},
{
"slug": "40",
"size": "1.25rem",
"name": "M"
},
{
"slug": "50",
"size": "2rem",
"name": "L"
},
{
"slug": "60",
"size": "3rem",
"name": "XL"
}
]
},
"typography": {
@ -39,10 +86,26 @@
}
],
"fontSizes": [
{ "slug": "small", "size": "1rem", "name": "Small" },
{ "slug": "medium", "size": "1.125rem", "name": "Medium" },
{ "slug": "large", "size": "1.5rem", "name": "Large" },
{ "slug": "x-large", "size": "2.25rem", "name": "XL" }
{
"slug": "small",
"size": "1rem",
"name": "Small"
},
{
"slug": "medium",
"size": "1.125rem",
"name": "Medium"
},
{
"slug": "large",
"size": "1.5rem",
"name": "Large"
},
{
"slug": "x-large",
"size": "2.25rem",
"name": "XL"
}
]
}
},
@ -58,21 +121,27 @@
},
"elements": {
"heading": {
"color": { "text": "#0a66c2" },
"color": {
"text": "var(--wp--preset--color--primary)"
},
"typography": {
"fontWeight": "700",
"lineHeight": "1.2"
}
},
"link": {
"color": { "text": "#0a66c2" }
"color": {
"text": "var(--wp--preset--color--primary)"
}
},
"button": {
"color": {
"background": "#0a66c2",
"background": "var(--wp--preset--color--primary)",
"text": "#ffffff"
},
"border": { "radius": "0px" },
"border": {
"radius": "0px"
},
"spacing": {
"padding": {
"top": "0.75rem",
@ -81,18 +150,26 @@
"right": "1rem"
}
},
"typography": { "fontWeight": "600" }
"typography": {
"fontWeight": "600"
}
}
},
"blocks": {
"core/group": {
"border": { "radius": "0px" }
"border": {
"radius": "0px"
}
},
"core/navigation": {
"typography": { "fontWeight": "600" }
"typography": {
"fontWeight": "600"
}
},
"core/search": {
"border": { "radius": "0px" }
"border": {
"radius": "0px"
}
},
"core/post-title": {
"typography": {
@ -102,8 +179,20 @@
}
},
"templateParts": [
{ "name": "header", "title": "Header", "area": "header" },
{ "name": "footer", "title": "Footer", "area": "footer" },
{ "name": "sidebar", "title": "Sidebar", "area": "uncategorized" }
{
"name": "header",
"title": "Header",
"area": "header"
},
{
"name": "footer",
"title": "Footer",
"area": "footer"
},
{
"name": "sidebar",
"title": "Sidebar",
"area": "uncategorized"
}
]
}