2 Commits
1.3.3 ... 1.4.1

Author SHA1 Message Date
aafbabb209 Fix some js errors, see diff
set sophia_after_dark_enable_top_header always to false, as it would a a bar to the top of the page below the admin bar
also did some general fixing on php :)
2025-05-11 17:51:48 -07:00
5fd30040a4 Bump to 1.4.0, made some fixes for 8.2+ 2025-05-11 16:58:27 -07:00
22 changed files with 771 additions and 815 deletions

43
404.php
View File

@ -2,7 +2,7 @@
/**
* The template for displaying 404 pages (not found)
*
* @link https://codex.wordpress.org/Creating_an_Error_404_Pag
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/#404-not-found
*
* @package Sophia After Dark
* @since 1.0.0
@ -13,18 +13,23 @@ $sophia_after_dark_pnf_latest_posts = get_theme_mod( 'sophia_after_dark_enable_p
?>
<div id="primary" class="content-area">
<main id="main" class="site-main">
<main id="main" class="site-main" role="main" aria-label="<?php esc_attr_e( '404 Error Content', 'sophia-after-dark' ); ?>">
<section class="error-404 not-found">
<div class="error-num"><span><?php esc_html_e( 'Error', 'sophia-after-dark' );?>&nbsp;</span><?php esc_html_e( '404', 'sophia-after-dark' ); ?></div>
<div class="error-num">
<span><?php esc_html_e( 'Error', 'sophia-after-dark' ); ?>&nbsp;</span><?php esc_html_e( '404', 'sophia-after-dark' ); ?>
</div>
<header class="page-header">
<h1 class="page-title"><?php esc_html_e( 'Oops! That page can&rsquo;t be found.', 'sophia-after-dark' ); ?></h1>
<h1 class="page-title"><?php esc_html_e( 'Oops! That page cant be found.', 'sophia-after-dark' ); ?></h1>
</header>
<div class="page-content">
<p><?php esc_html_e( 'It looks like nothing was found at this location.', 'sophia-after-dark' ); ?></p>
</section>
</div><!-- .page-content -->
</section><!-- .error-404 -->
<?php if ( true === $sophia_after_dark_pnf_latest_posts ) { ?>
<?php if ( true === $sophia_after_dark_pnf_latest_posts ) : ?>
<div class="page-extra-content mt-404-latest-posts-wrapper">
<?php
$sophia_after_dark_pnf_latest_post_count = get_theme_mod( 'sophia_after_dark_pnf_latest_post_count', 3 );
@ -34,31 +39,27 @@ $sophia_after_dark_pnf_latest_posts = get_theme_mod( 'sophia_after_dark_enable_p
'ignore_sticky_posts' => 1,
);
$sophia_after_dark_pnf_query = new WP_Query( $sophia_after_dark_pnf_args );
if ( $sophia_after_dark_pnf_query->have_posts() ) {
if ( $sophia_after_dark_pnf_query->have_posts() ) :
echo '<div class="mt-pnf-latest-posts-wrapper mt-related-posts-wrapper">';
$sophia_after_dark_404_latest_title = get_theme_mod( 'sophia_after_dark_pnf_latest_title', __( 'You May Like', 'sophia-after-dark' ) );
echo '<h2 class="section-title mt-related-post-title">' . esc_html( $sophia_after_dark_404_latest_title ) . '</h2>';
while ( $sophia_after_dark_pnf_query->have_posts() ) {
while ( $sophia_after_dark_pnf_query->have_posts() ) :
$sophia_after_dark_pnf_query->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.
*/
get_template_part( 'template-parts/content', 'related' );
endwhile;
}
echo '</div>';
}
endif;
wp_reset_postdata();
?>
</div>
</div><!-- .mt-404-latest-posts-wrapper -->
<?php endif; ?>
<?php } ?>
</main>
</div>
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_footer();

View File

@ -12,52 +12,59 @@ $archive_style = get_theme_mod( 'sophia_after_dark_archive_style', 'mt-archive--
get_header();
?>
<div class="mt-page-content-wrapper">
<div itemscope id="primary" class="content-area">
<main id="main" class="site-main">
<?php
if ( 'mt-archive--block-grid-style' === $archive_style ) {
echo '<div class="archive-grid-post-wrapper">';
}
if ( have_posts() ) :
if ( 'mt-archive--masonry-style' === $archive_style ) {
?>
<div id="primary" class="content-area" itemscope itemtype="https://schema.org/CollectionPage">
<main id="main" class="site-main" role="main" aria-label="<?php esc_attr_e( 'Archive Content', 'sophia-after-dark' ); ?>">
<?php if ( 'mt-archive--block-grid-style' === $archive_style ) : ?>
<div class="archive-grid-post-wrapper">
<?php endif; ?>
<?php if ( have_posts() ) : ?>
<?php if ( 'mt-archive--masonry-style' === $archive_style ) : ?>
<div class="sophia-after-dark-content-masonry">
<div id="mt-masonry">
<?php endif; ?>
<?php
}
/* Start the Loop */
// Start the Loop
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.
*/
// Load post template part
get_template_part( 'template-parts/content', get_post_type() );
endwhile;
if ( 'mt-archive--masonry-style' === $archive_style ) {
?>
</div>
</div>
<?php if ( 'mt-archive--masonry-style' === $archive_style ) : ?>
</div><!-- #mt-masonry -->
</div><!-- .sophia-after-dark-content-masonry -->
<?php endif; ?>
<?php
}
the_posts_pagination();
else :
get_template_part( 'template-parts/content', 'none' );
endif;
if ( 'mt-archive--block-grid-style' === $archive_style ) {
echo '</div>';
}
// Archive pagination
the_posts_pagination( array(
'prev_text' => __( 'Previous', 'sophia-after-dark' ),
'next_text' => __( 'Next', 'sophia-after-dark' ),
'before_page_number' => '<span class="screen-reader-text">' . esc_html__( 'Page', 'sophia-after-dark' ) . ' </span>',
) );
?>
</main>
</div>
<?php else : ?>
<?php get_template_part( 'template-parts/content', 'none' ); ?>
<?php endif; ?>
<?php if ( 'mt-archive--block-grid-style' === $archive_style ) : ?>
</div><!-- .archive-grid-post-wrapper -->
<?php endif; ?>
</main><!-- #main -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
</div>
<?php
get_footer();
</div><!-- .mt-page-content-wrapper -->
<?php get_footer(); ?>

View File

@ -6,37 +6,36 @@
* Contains handlers to make Theme Customizer preview reload changes asynchronously.
*/
( function( $ ) {
(($) => {
const setText = (selector, text) => $(selector).text(text);
// Site title and description.
wp.customize( 'blogname', function( value ) {
value.bind( function( to ) {
$( '.site-title a' ).text( to );
} );
} );
wp.customize( 'blogdescription', function( value ) {
value.bind( function( to ) {
$( '.site-description' ).text( to );
} );
} );
const setVisibility = (isVisible, color) => {
const titleDesc = $('.site-title, .site-description');
const titleLink = $('.site-title a, .site-description');
// Header text color.
wp.customize( 'header_textcolor', function( value ) {
value.bind( function( to ) {
if ( 'blank' === to ) {
$( '.site-title, .site-description' ).css( {
'clip': 'rect(1px, 1px, 1px, 1px)',
'position': 'absolute'
if (!isVisible) {
titleDesc.css({
clip: 'rect(1px, 1px, 1px, 1px)',
position: 'absolute'
});
} else {
$( '.site-title, .site-description' ).css( {
'clip': 'auto',
'position': 'relative'
} );
$( '.site-title a, .site-description' ).css( {
'color': to
titleDesc.css({
clip: 'auto',
position: 'relative'
});
titleLink.css('color', color);
}
};
wp.customize('blogname', (value) => {
value.bind((to) => setText('.site-title a', to));
});
wp.customize('blogdescription', (value) => {
value.bind((to) => setText('.site-description', to));
});
wp.customize('header_textcolor', (value) => {
value.bind((to) => setVisibility(to !== 'blank', to));
});
})(jQuery);

View File

@ -1,73 +1,59 @@
/**
* Image up-loader functions
* Image uploader functions
*/
var mtSelector;
function upload_media_image(mtSelector){
// ADD IMAGE LINK
jQuery('body').on( 'click', mtSelector , function( event ){
event.preventDefault();
var imgContainer = jQuery(this).closest('.attachment-media-view').find( '.thumbnail-image'),
placeholder = jQuery(this).closest('.attachment-media-view').find( '.placeholder'),
imgIdInput = jQuery(this).siblings('.upload-id');
const initUploadMediaImage = (selector) => {
jQuery('body').on('click', selector, function(e) {
e.preventDefault();
// Create a new media frame
frame = wp.media({
const $button = jQuery(this);
const $mediaView = $button.closest('.attachment-media-view');
const $imgContainer = $mediaView.find('.thumbnail-image');
const $placeholder = $mediaView.find('.placeholder');
const $input = $button.siblings('.upload-id');
const frame = wp.media({
title: 'Select or Upload Image',
button: {
text: 'Use Image'
},
multiple: false // Set to true to allow multiple files to be selected
multiple: false
});
// When an image is selected in the media frame...
frame.on( 'select', function() {
// Get media attachment details from the frame state
var attachment = frame.state().get('selection').first().toJSON();
// Send the attachment URL to our custom image input field.
imgContainer.html( '<img src="'+attachment.url+'" style="max-width:100%;"/>' );
placeholder.addClass('hidden');
imgIdInput.val( attachment.url ).trigger('change');
frame.on('select', () => {
const attachment = frame.state().get('selection').first().toJSON();
$imgContainer.html(`<img src="${attachment.url}" style="max-width:100%;" />`);
$placeholder.addClass('hidden');
$input.val(attachment.url).trigger('change');
});
// Finally, open the modal on click
frame.open();
});
}
};
function delete_media_image(mtSelector){
// DELETE IMAGE LINK
jQuery('body').on( 'click', mtSelector, function( event ){
const initDeleteMediaImage = (selector) => {
jQuery('body').on('click', selector, function(e) {
e.preventDefault();
event.preventDefault();
var imgContainer = jQuery(this).closest('.attachment-media-view').find( '.thumbnail-image'),
placeholder = jQuery(this).closest('.attachment-media-view').find( '.placeholder'),
imgIdInput = jQuery(this).siblings('.upload-id');
// Clear out the preview image
imgContainer.find('img').remove();
placeholder.removeClass('hidden');
// Delete the image id from the hidden input
imgIdInput.val( '' ).trigger('change');
const $button = jQuery(this);
const $mediaView = $button.closest('.attachment-media-view');
const $imgContainer = $mediaView.find('.thumbnail-image');
const $placeholder = $mediaView.find('.placeholder');
const $input = $button.siblings('.upload-id');
$imgContainer.find('img').remove();
$placeholder.removeClass('hidden');
$input.val('').trigger('change');
});
}
};
jQuery(document).ready(function($){
"use strict";
jQuery(($) => {
'use strict';
/**
* Radio Image control in metabox
*/
// Initialize jQuery UI buttonset for radio image controls
$('.mt-meta-options-wrap .buttonset').buttonset();
/**
* Image up-loader
*/
upload_media_image('.mt-upload-button');
delete_media_image('.mt-delete-button');
// Initialize image upload/delete functionality
initUploadMediaImage('.mt-upload-button');
initDeleteMediaImage('.mt-delete-button');
});

View File

@ -5,22 +5,19 @@ jQuery(document).ready(function($) {
/**
* Sophia After Dark Preloader
*/
if($('#preloader-background').length > 0) {
setTimeout(function(){$('#preloader-background').hide();}, 600);
if ($('#preloader-background').length) {
setTimeout(function() {
$('#preloader-background').hide();
}, 600);
}
var grid = document.querySelector(
'.sophia-after-dark-content-masonry'
),
masonry;
if (
grid &&
typeof Masonry !== undefined &&
typeof imagesLoaded !== undefined
) {
imagesLoaded( grid, function( instance ) {
masonry = new Masonry( grid, {
/**
* Masonry grid initialization
*/
const grid = document.querySelector('.sophia-after-dark-content-masonry');
if (grid && typeof Masonry !== 'undefined' && typeof imagesLoaded !== 'undefined') {
imagesLoaded(grid, function() {
new Masonry(grid, {
itemSelector: '.hentry'
});
});
@ -29,39 +26,36 @@ jQuery(document).ready(function($) {
/**
* Header Search script
*/
$('.mt-menu-search .mt-search-icon').click(function() {
$('.mt-form-wrap').toggleClass('search-activate');
$('.mt-form-wrap .search-field').focus();
var element = document.querySelector( '.mt-form-wrap.search-activate' );
if( element ) {
const $searchIcon = $('.mt-menu-search .mt-search-icon');
$searchIcon.click(function() {
$('.mt-form-wrap').toggleClass('search-activate').find('.search-field').focus();
const $element = $('.mt-form-wrap.search-activate');
if ($element.length) {
$(document).on('keydown', function(e) {
var focusable = element.querySelectorAll( 'input, button, [href], select, textarea, [tabindex]:not([tabindex="-1"])');
var firstFocusable = focusable[0];
var lastFocusable = focusable[focusable.length - 1];
const focusable = $element.find('input, button, [href], select, textarea, [tabindex]:not([tabindex="-1"])');
const firstFocusable = focusable[0];
const lastFocusable = focusable[focusable.length - 1];
sophia_after_dark_focus_trap(firstFocusable, lastFocusable, e);
})
});
}
});
/**
* Focus trap in popup.
*/
var KEYCODE_TAB = 9;
const KEYCODE_TAB = 9;
function sophia_after_dark_focus_trap(firstFocusable, lastFocusable, e) {
if (e.key === 'Tab' || e.keyCode === KEYCODE_TAB) {
if ( e.shiftKey ) /* shift + tab */ {
if (document.activeElement === firstFocusable) {
if (e.shiftKey && document.activeElement === firstFocusable) {
lastFocusable.focus();
e.preventDefault();
}
} else /* tab */ {
if ( document.activeElement === lastFocusable ) {
} else if (!e.shiftKey && document.activeElement === lastFocusable) {
firstFocusable.focus();
e.preventDefault();
}
}
}
}
$('.mt-form-wrap .mt-form-close').click(function() {
$('.mt-form-wrap').toggleClass('search-activate');
@ -74,7 +68,6 @@ jQuery(document).ready(function($) {
$(document).on('keydown', function(event) {
if (event.keyCode === 27) {
event.preventDefault();
//$( '.primary-menu-wrap' ).removeClass( 'menu-active' );
$('.mt-menu-search .mt-form-wrap').removeClass('search-activate');
}
});
@ -82,27 +75,18 @@ jQuery(document).ready(function($) {
/**
* Settings about WOW animation
*/
var wowOption = sophia_after_darkObject.wow_effect;
if( wowOption === 'on' ) {
if (sophia_after_darkObject.wow_effect === 'on') {
new WOW().init();
}
/**
* Settings about sticky menu
*/
var stickyOption = sophia_after_darkObject.menu_sticky;
if( stickyOption === 'on' ) {
var windowWidth = $( window ).width();
if( windowWidth < 500 ) {
var wpAdminBar = 0;
} else {
var wpAdminBar = $('#wpadminbar');
}
if ( wpAdminBar.length ) {
$(".mt-social-menu-wrapper").sticky({topSpacing:wpAdminBar.height()});
} else {
$(".mt-social-menu-wrapper").sticky({topSpacing:0});
}
if (sophia_after_darkObject.menu_sticky === 'on') {
const wpAdminBar = $('#wpadminbar').length ? $('#wpadminbar') : 0;
$(".mt-social-menu-wrapper").sticky({
topSpacing: wpAdminBar.length ? wpAdminBar.height() : 0
});
}
/**
@ -115,6 +99,7 @@ jQuery(document).ready(function($) {
$('#mt-scrollup').fadeOut('slow');
}
});
$('#mt-scrollup').click(function() {
$("html, body").animate({
scrollTop: 0
@ -125,61 +110,52 @@ jQuery(document).ready(function($) {
/**
* Slider scripts
*/
$('.front-slider').lightSlider({
function initializeSlider(selector, rtl = true) {
$(selector).lightSlider({
pager: false,
auto: false,
loop: true,
item: 1,
controls: true,
slideMargin: 0,
rtl:true,
rtl: rtl,
nextHtml: '<span class="icon-prev"><i class="fa fa-angle-left"></i></span>',
prevHtml: '<span class="icon-next"><i class="fa fa-angle-right"></i></span>',
onSliderLoad: function() {
$('.front-slider').removeClass('cS-hidden');
$(selector).removeClass('cS-hidden');
}
});
}
});
/**
* Slider scripts
*/
$('.mt-gallery-slider').lightSlider({
pager: false,
auto: false,
loop: true,
item: 1,
controls: true,
});
initializeSlider('.front-slider');
initializeSlider('.mt-gallery-slider', false);
/**
* Responsive menu
*/
$('.mt-social-menu-wrapper .menu-toggle').click(function(event) {
$('.mt-social-menu-wrapper #site-navigation').toggleClass( 'isActive' ).slideToggle('slow');
var element = document.querySelector( '.mt-header-menu-wrap' );
if( element ) {
$('.mt-social-menu-wrapper .menu-toggle').click(function() {
$('#site-navigation').toggleClass('isActive').slideToggle('slow');
const $element = $('.mt-header-menu-wrap');
if ($element.length) {
$(document).on('keydown', function(e) {
if( element.querySelectorAll( '.mt-social-menu-wrapper #site-navigation.isActive' ).length === 1 ) {
var focusable = element.querySelectorAll( 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
var firstFocusable = focusable[0];
var lastFocusable = focusable[focusable.length - 1];
if ($('#site-navigation.isActive').length) {
const focusable = $element.find('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
const firstFocusable = focusable[0];
const lastFocusable = focusable[focusable.length - 1];
sophia_after_dark_focus_trap(firstFocusable, lastFocusable, e);
}
})
});
}
});
/**
* responsive sub menu toggle
* Responsive sub menu toggle
*/
$('<a href="javascript:void(0);" class="sub-toggle"><i class="fa fa-angle-right"></i></a>').insertAfter('#site-navigation .menu-item-has-children>a, #site-navigation .page_item_has_children>a');
$('#site-navigation .sub-toggle').click(function() {
$(this).parent('.menu-item-has-children').children('ul.sub-menu').first().slideToggle('1000');
jQuery(this).parent('.page_item_has_children').children('ul.children').first().slideToggle('1000');
$(this).parent('.menu-item-has-children').children('ul.sub-menu').first().slideToggle(1000);
$(this).parent('.page_item_has_children').children('ul.children').first().slideToggle(1000);
$(this).children('.fa-angle-right').first().toggleClass('fa-angle-down');
});
@ -189,9 +165,8 @@ jQuery(document).ready(function($) {
$(window).on('load', function() {
if ($(window).width() > 839) {
$(".front-slider-wrapper").each(function() {
var imageHeight = $(this).height();
$(this).find(".slider-post-wrap").css('height', imageHeight);
$(this).find(".front-slider ").css('height', imageHeight);
const imageHeight = $(this).height();
$(this).find(".slider-post-wrap, .front-slider").css('height', imageHeight);
});
}
});

View File

@ -13,7 +13,12 @@
}
menu = container.getElementsByTagName('ul')[0];
if (!menu) {
return;
}
menu.setAttribute('aria-expanded', 'false');
if (-1 === menu.className.indexOf('nav-menu')) {
menu.className += ' nav-menu';
}
@ -34,7 +39,7 @@
var self = this;
// Move up through the ancestors of the current link until we hit .nav-menu.
while ( -1 === self.className.indexOf( 'nav-menu' ) ) {
while (self && -1 === self.className.indexOf('nav-menu')) {
// On li elements toggle the class .focus.
if ('li' === self.tagName.toLowerCase()) {
@ -58,15 +63,16 @@
if ('ontouchstart' in window) {
touchStartFn = function(e) {
var menuItem = this.parentNode, i;
var menuItem = this.parentNode,
j;
if (!menuItem.classList.contains('focus')) {
e.preventDefault();
for ( i = 0; i < menuItem.parentNode.children.length; ++i ) {
if ( menuItem === menuItem.parentNode.children[i] ) {
for (j = 0; j < menuItem.parentNode.children.length; ++j) {
if (menuItem === menuItem.parentNode.children[j]) {
continue;
}
menuItem.parentNode.children[i].classList.remove( 'focus' );
menuItem.parentNode.children[j].classList.remove('focus');
}
menuItem.classList.add('focus');
} else {

View File

@ -20,23 +20,29 @@ if ( post_password_required() ) {
return;
}
// Remove URL field from comments
// Remove URL field from comment form
function sophia_after_dark_remove_url_comments($fields) {
unset($fields['url']);
return $fields;
}
add_filter('comment_form_default_fields', 'sophia_after_dark_remove_url_comments');
// Edit Cookie consent text from comments
// Modify cookie consent field
function sophia_after_dark_comment_form_change_cookies($fields) {
$commenter = wp_get_current_commenter();
$consent = empty($commenter['comment_author_email']) ? '' : ' checked="checked"';
$fields['cookies'] = '<p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes"' . esc_attr($consent) . ' /><label for="wp-comment-cookies-consent">' . esc_html__('Save my Name & Email for the next time I comment.', 'sophia-after-dark') . '</label></p>';
$consent = ! empty( $commenter['comment_author_email'] );
$fields['cookies'] = sprintf(
'<p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" %s /> <label for="wp-comment-cookies-consent">%s</label></p>',
checked( $consent, true, false ),
esc_html__( 'Save my Name & Email for the next time I comment.', 'sophia-after-dark' )
);
return $fields;
}
add_filter('comment_form_default_fields', 'sophia_after_dark_comment_form_change_cookies');
// Edit comment-notes text from comments
// Add comment notes above form
function sophia_after_dark_modify_text_before_comment_form($arg) {
$arg['comment_notes_before'] = wp_kses_post(
'<p class="comment-notes">' .
@ -49,13 +55,17 @@ function sophia_after_dark_modify_text_before_comment_form($arg) {
}
add_filter('comment_form_defaults', 'sophia_after_dark_modify_text_before_comment_form');
// Add note below comment form about privacy policy consent
// Add privacy policy consent note below form
function sophia_after_dark_modify_text_comment_form($post_id) {
$link = '<a href="/privacy-policy">' . esc_html__( 'Privacy Policy', 'sophia-after-dark' ) . '</a>';
printf(
'<span class="submit-comment-note">%s</span>',
sprintf(
wp_kses(
__('By commenting, you consent to our <a href="/privacy-policy">Privacy Policy</a>', 'sophia-after-dark'),
__( 'By commenting, you consent to our %s.', 'sophia-after-dark' ),
array( 'a' => array( 'href' => array() ) )
),
$link
)
);
}
@ -64,22 +74,20 @@ add_action('comment_form', 'sophia_after_dark_modify_text_comment_form');
?>
<div id="comments" class="comments-area">
<?php
if ( have_comments() ) :
?>
<h2 class="comments-title">
<?php if ( have_comments() ) : ?>
<h2 class="comments-title" aria-label="<?php esc_attr_e( 'Comments Section', 'sophia-after-dark' ); ?>">
<?php
$sophia_after_dark_comment_count = get_comments_number();
if ( '1' === $sophia_after_dark_comment_count ) {
printf(
/* translators: 1: title. */
esc_html__( 'One Comment on &ldquo;%1$s&rdquo;', 'sophia-after-dark' ),
/* translators: %s: Post title */
esc_html__( 'One Comment on “%s”', 'sophia-after-dark' ),
'<span>' . esc_html( get_the_title() ) . '</span>'
);
} else {
printf(
/* translators: 1: comment count number, 2: title. */
esc_html( _nx( '%1$s Comments on &ldquo;%2$s&rdquo;', '%1$s Comments on &ldquo;%2$s&rdquo;', $sophia_after_dark_comment_count, 'comments title', 'sophia-after-dark' ) ),
/* translators: 1: Comment count, 2: Post title */
esc_html( _nx( '%1$s Comment on “%2$s”', '%1$s Comments on “%2$s”', $sophia_after_dark_comment_count, 'comments title', 'sophia-after-dark' ) ),
number_format_i18n( $sophia_after_dark_comment_count ),
'<span>' . esc_html( get_the_title() ) . '</span>'
);
@ -94,22 +102,17 @@ add_action('comment_form', 'sophia_after_dark_modify_text_comment_form');
wp_list_comments( array(
'style' => 'ol',
'short_ping' => true,
'reply_text' => __( 'Reply', 'sophia-after-dark' ),
) );
?>
</ol>
<?php
the_comments_navigation();
<?php the_comments_navigation(); ?>
if ( ! comments_open() ) :
?>
<?php if ( ! comments_open() ) : ?>
<p class="no-comments"><?php esc_html_e( 'Comments are closed.', 'sophia-after-dark' ); ?></p>
<?php
endif;
endif;
comment_form();
?>
<?php endif; ?>
<?php endif; ?>
<?php comment_form(); ?>
</div>

View File

@ -197,3 +197,40 @@ require get_template_directory() . '/inc/metaboxes/mt-post-sidebar-meta.php';
if ( ! function_exists( 'breadcrumb_trail' ) ) {
require get_template_directory() . '/inc/mt-class-breadcrumbs.php';
}
// Function to allow images in WordPress comments
function allow_images_in_comments($comment_content) {
// Allow only specific HTML tags, including <img>
$allowed_tags = array(
'a' => array('href' => array(), 'title' => array()),
'em' => array(),
'strong' => array(),
'img' => array(
'src' => array(),
'alt' => array(),
'width' => array(),
'height' => array(),
'class' => array(),
),
);
// Strip out disallowed tags but keep allowed ones
return wp_kses($comment_content, $allowed_tags);
}
// Hook to filter the comment text before displaying it
add_filter('comment_text', 'allow_images_in_comments');
// Function to make URLs for images clickable in comments
function clickable_images_in_comments($comment_content) {
// Automatically convert image URLs to HTML <img> tags
$comment_content = preg_replace(
'/(http:\/\/[^\s"]+\.(jpg|jpeg|png|gif))/i',
'<img src="$1" alt="" class="comment-image" />',
$comment_content
);
return $comment_content;
}
// Hook to make image URLs clickable
add_filter('comment_text', 'clickable_images_in_comments');

View File

@ -14,128 +14,74 @@
<!doctype html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="https://gmpg.org/xfn/11">
<?php
$author_id = get_option('sophia_after_dark_home_og_user', 1); // Default to user ID 1 if not set
// Set default author for home page OG metadata
$author_id = (int) get_option( 'sophia_after_dark_home_og_user', 1 );
$author_bio = get_the_author_meta( 'description', $author_id );
echo '<meta charset="' . get_bloginfo('charset') . '">' . "\n";
echo '<meta name="viewport" content="width=device-width, initial-scale=1">' . "\n";
if ( is_front_page() ) {
$home_og_image = get_option( 'sophia_after_dark_home_og_image' );
if ( $home_og_image ) {
echo '<meta property="og:image" content="' . esc_url($home_og_image) . '" />' . "\n";
}
echo '<meta property="og:title" content="' . esc_attr(get_bloginfo('name') . ' - ' . get_bloginfo('description')) . '" />' . "\n";
echo '<meta property="og:description" content="' . esc_attr($author_bio) . '" />' . "\n";
echo '<meta property="og:url" content="' . esc_url(home_url('/')) . '" />' . "\n";
} elseif (is_single() || is_page()) {
global $post;
if (has_post_thumbnail($post->ID)) {
$thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'og-image-size');
if ($thumbnail) {
echo '<meta property="og:image" content="' . esc_url($thumbnail[0]) . '" />' . "\n";
// $thumbnail_url = esc_url($thumbnail[0]);
// $thumbnail_parts = pathinfo($thumbnail_url);
// $thumbnail_new_url = $thumbnail_parts['dirname'] . '/' . $thumbnail_parts['filename'] . '-1536x878.' . $thumbnail_parts['extension'];
// echo '<meta property="og:image" content="' . $thumbnail_new_url . '" />' . "\n";
}
} else {
echo '<meta property="og:image" content="' . esc_url(get_template_directory_uri() . '/assets/images/default-og-image.webp') . '" />' . "\n";
printf( '<meta property="og:image" content="%s" />' . "\n", esc_url( $home_og_image ) );
}
echo '<meta property="og:title" content="' . esc_attr(get_the_title()) . '" />' . "\n";
echo '<meta property="og:description" content="' . esc_attr(get_the_excerpt()) . '" />' . "\n";
echo '<meta property="og:url" content="' . esc_url(get_permalink()) . '" />' . "\n";
printf( '<meta property="og:title" content="%s" />' . "\n", esc_attr( get_bloginfo( 'name' ) . ' - ' . get_bloginfo( 'description' ) ) );
printf( '<meta property="og:description" content="%s" />' . "\n", esc_attr( $author_bio ) );
printf( '<meta property="og:url" content="%s" />' . "\n", esc_url( home_url( '/' ) ) );
} elseif ( is_singular() ) {
global $post;
$thumbnail_url = get_template_directory_uri() . '/assets/images/default-og-image.webp';
if ( has_post_thumbnail( $post?->ID ) ) {
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'og-image-size' );
if ( ! empty( $image[0] ) ) {
$thumbnail_url = $image[0];
}
echo '<link rel="profile" href="https://gmpg.org/xfn/11">' . "\n";
}
printf( '<meta property="og:image" content="%s" />' . "\n", esc_url( $thumbnail_url ) );
printf( '<meta property="og:title" content="%s" />' . "\n", esc_attr( get_the_title() ) );
printf( '<meta property="og:description" content="%s" />' . "\n", esc_attr( get_the_excerpt() ) );
printf( '<meta property="og:url" content="%s" />' . "\n", esc_url( get_permalink() ) );
}
wp_head();
?>
</head>
<body <?php body_class(); ?>>
<?php
if ( function_exists( 'wp_body_open' ) ) {
wp_body_open();
} else {
/**
* Hook: wp_body_open
*
* @since 1.1.0
*/
do_action( 'wp_body_open' );
do_action( 'wp_body_open' ); // Backwards compatibility for < WP 5.2
}
/**
* sophia_after_dark before page hook
*
* @since 1.0.0
*/
do_action( 'sophia_after_dark_before_page' );
?>
<div id="page" class="site">
<a class="skip-link screen-reader-text" href="#content"><?php esc_html_e( 'Skip To Content', 'sophia-after-dark' ) ?></a>
<?php
/**
* sophia_after_dark before header
*
* @since 1.0.0
*/
do_action( 'sophia_after_dark_before_header' );
<a class="skip-link screen-reader-text" href="#content"><?php esc_html_e( 'Skip to content', 'sophia-after-dark' ); ?></a>
$sophia_after_dark_enable_top_header = get_theme_mod( 'sophia_after_dark_enable_top_header', true );
if ( true === $sophia_after_dark_enable_top_header ) {
/**
* hook - sophia_after_dark_top_header
*
* @hooked - sophia_after_dark_top_header_start - 5
* @hooked - sophia_after_dark_trending_section - 10
* @hooked - sophia_after_dark_top_header_nav - 20
* @hooked - sophia_after_dark_top_header_end - 50
*/
<?php
// Top Header
if ( get_theme_mod( 'sophia_after_dark_enable_top_header', false ) ) {
do_action( 'sophia_after_dark_top_header' );
}
/**
* sophia_after_dark main header
*
* @hooked - sophia_after_dark_main_header_start - 5
* @hooked - sophia_after_dark_site_branding - 10
* @hooked - sophia_after_dark_menu_wrapper_start - 15
* @hooked - sophia_after_dark_header_main_menu - 20
* @hooked - sophia_after_dark_menu_icon_wrapper_start - 25
* @hooked - sophia_after_dark_menu_social_icons - 30
* @hooked - sophia_after_dark_menu_search_icon - 35
* @hooked - sophia_after_dark_menu_icon_wrapper_end - 40
* @hooked - sophia_after_dark_menu_wrapper_end - 45
* @hooked - sophia_after_dark_main_header_end - 50
*
* @since 1.0.0
*/
// Main Header
do_action( 'sophia_after_dark_main_header' );
// Front page slider or inner page header
if ( is_front_page() ) {
/**
* hook - front_slider_section
* displays front top section before archive blogs.
*/
do_action( 'sophia_after_dark_front_slider_section' );
}
if ( ! is_front_page() ) {
/**
* sophia_after_dark_innerpage_header hook
*
* @hooked - sophia_after_dark_innerpage_header_start - 5
* @hooked - sophia_after_dark_innerpage_header_title - 10
* @hooked - sophia_after_dark_breadcrumb_content - 15
* @hooked - sophia_after_dark_innerpage_header_end - 20
*
* @since 1.0.0
*/
} else {
do_action( 'sophia_after_dark_innerpage_header' );
}
?>

View File

@ -12,55 +12,55 @@
* @package Sophia After Dark
* @since 1.0.0
*/
$archive_style = get_theme_mod( 'sophia_after_dark_archive_style', 'mt-archive--masonry-style' );
declare(strict_types=1);
get_header();
$archive_style = get_theme_mod('sophia_after_dark_archive_style', 'mt-archive--masonry-style');
?>
<div class="mt-page-content-wrapper">
<div itemscope id="primary" class="content-area">
<main id="main" class="site-main">
<?php
if ( 'mt-archive--block-grid-style' === $archive_style ) {
echo '<div class="archive-grid-post-wrapper">';
}
if ( have_posts() ) :
if ( 'mt-archive--masonry-style' === $archive_style ) {
?>
<?php if ('mt-archive--block-grid-style' === $archive_style): ?>
<div class="archive-grid-post-wrapper">
<?php endif; ?>
<?php if (have_posts()): ?>
<?php if ('mt-archive--masonry-style' === $archive_style): ?>
<div class="sophia-after-dark-content-masonry">
<div id="mt-masonry">
<?php endif; ?>
<?php
}
/* Start the Loop */
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.
*/
get_template_part('template-parts/content', get_post_format());
endwhile;
if ( 'mt-archive--masonry-style' === $archive_style ) {
?>
</div>
</div>
<?php
}
the_posts_pagination();
else :
get_template_part( 'template-parts/content', 'none' );
endif;
<?php if ('mt-archive--masonry-style' === $archive_style): ?>
</div> <!-- #mt-masonry -->
</div> <!-- .sophia-after-dark-content-masonry -->
<?php endif; ?>
<?php the_posts_pagination(); ?>
<?php else: ?>
<?php get_template_part('template-parts/content', 'none'); ?>
<?php endif; ?>
<?php if ('mt-archive--block-grid-style' === $archive_style): ?>
</div> <!-- .archive-grid-post-wrapper -->
<?php endif; ?>
if ( 'mt-archive--block-grid-style' === $archive_style ) {
echo '</div>';
}
?>
</main>
</div>
<?php get_sidebar(); ?>
</div>
<?php
get_footer();
<?php get_footer(); ?>

View File

@ -15,23 +15,27 @@
get_header();
?>
<div class="mt-page-content-wrapper">
<div itemscope id="primary" class="content-area">
<main id="main" class="site-main">
<div id="primary" class="content-area" itemscope itemtype="https://schema.org/WebPage">
<main id="main" class="site-main" role="main" aria-label="<?php esc_attr_e( 'Page Content', 'sophia-after-dark' ); ?>">
<?php
while ( have_posts() ) :
the_post();
get_template_part( 'template-parts/content', 'page' );
// If comments are open or we have at least one comment, load up the comment template.
// Load comments if open or at least one exists.
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;
endwhile; // End of the loop.
endwhile;
?>
</main>
</div>
</main><!-- #main -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
</div>
</div><!-- .mt-page-content-wrapper -->
<?php
get_footer();

View File

@ -12,47 +12,51 @@ get_header();
?>
<div class="mt-page-content-wrapper">
<section id="primary" class="content-area">
<main id="main" class="site-main">
<main id="main" class="site-main" role="main" aria-label="<?php esc_attr_e( 'Search Results', 'sophia-after-dark' ); ?>">
<?php
if ( 'mt-archive--block-grid-style' === $archive_style ) {
echo '<div class="archive-grid-post-wrapper">';
}
if ( have_posts() ) :
if ( 'mt-archive--masonry-style' === $archive_style ) {
if ( 'mt-archive--masonry-style' === $archive_style ) :
?>
<div class="sophia-after-dark-content-masonry">
<div id="mt-masonry">
<?php
}
endif;
/* Start the Loop */
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.
*/
get_template_part( 'template-parts/content', 'search' );
endwhile;
if ( 'mt-archive--masonry-style' === $archive_style ) {
if ( 'mt-archive--masonry-style' === $archive_style ) :
?>
</div>
</div>
</div><!-- #mt-masonry -->
</div><!-- .sophia-after-dark-content-masonry -->
<?php
}
endif;
the_posts_pagination();
else :
get_template_part( 'template-parts/content', 'none' );
endif;
if ( 'mt-archive--block-grid-style' === $archive_style ) {
echo '</div>';
echo '</div><!-- .archive-grid-post-wrapper -->';
}
?>
</main>
</section>
</main><!-- #main -->
</section><!-- #primary -->
<?php get_sidebar(); ?>
</div>
</div><!-- .mt-page-content-wrapper -->
<?php
get_footer();

View File

@ -20,34 +20,42 @@ if ( ! is_active_sidebar( 'footer-sidebar' ) &&
return;
}
$sophia_after_dark_widget_area_layout = get_theme_mod( 'sophia_after_dark_widget_area_layout', 'column-three' );
$layout = get_theme_mod( 'sophia_after_dark_widget_area_layout', 'column-three' );
?>
<div id="top-footer" class="footer-widgets-wrapper footer-<?php echo esc_attr( $sophia_after_dark_widget_area_layout ); ?> mt-clearfix">
<div id="top-footer" class="footer-widgets-wrapper footer-<?php echo esc_attr( $layout ); ?> mt-clearfix">
<div class="mt-container">
<div class="footer-widgets-area mt-clearfix">
<div class="mt-footer-widget-wrapper mt-column-wrapper mt-clearfix">
<div class="mt-footer-widget wow fadeInLeft" data-wow-duration="0.3s">
<?php dynamic_sidebar( 'footer-sidebar' ); ?>
</div>
<?php if ( $sophia_after_dark_widget_area_layout != 'column-one' ){ ?>
<div class="mt-footer-widget wow fadeInLeft" data-woww-duration="0.6s">
<?php dynamic_sidebar( 'footer-sidebar-2' ); ?>
</div>
<?php } ?>
<?php
// Footer widget 1 (always shown)
echo '<div class="mt-footer-widget wow fadeInLeft" data-wow-duration="0.3s">';
dynamic_sidebar( 'footer-sidebar' );
echo '</div>';
<?php if ( $sophia_after_dark_widget_area_layout == 'column-three' || $sophia_after_dark_widget_area_layout == 'column-four' ){ ?>
<div class="mt-footer-widget wow fadeInLeft" data-wow-duration="0.9s">
<?php dynamic_sidebar( 'footer-sidebar-3' ); ?>
</div>
<?php } ?>
// Footer widget 2 (shown in all but column-one layout)
if ( $layout !== 'column-one' ) {
echo '<div class="mt-footer-widget wow fadeInLeft" data-wow-duration="0.6s">';
dynamic_sidebar( 'footer-sidebar-2' );
echo '</div>';
}
// Footer widget 3 (only for three or four column layouts)
if ( in_array( $layout, [ 'column-three', 'column-four' ], true ) ) {
echo '<div class="mt-footer-widget wow fadeInLeft" data-wow-duration="0.9s">';
dynamic_sidebar( 'footer-sidebar-3' );
echo '</div>';
}
// Footer widget 4 (only for four column layout)
if ( $layout === 'column-four' ) {
echo '<div class="mt-footer-widget wow fadeInLeft" data-wow-duration="1.2s">';
dynamic_sidebar( 'footer-sidebar-4' );
echo '</div>';
}
?>
<?php if ( $sophia_after_dark_widget_area_layout == 'column-four' ){ ?>
<div class="mt-footer-widget wow fadeInLeft" data-wow-duration="1.2s">
<?php dynamic_sidebar( 'footer-sidebar-4' ); ?>
</div>
<?php } ?>
</div>
</div>
</div>

View File

@ -11,8 +11,8 @@
get_header();
?>
<div class="mt-page-content-wrapper">
<div itemscope id="primary" class="content-area">
<main id="main" class="site-main">
<div id="primary" class="content-area" itemscope itemtype="https://schema.org/Article">
<main id="main" class="site-main" role="main" aria-label="<?php esc_attr_e( 'Single Post Content', 'sophia-after-dark' ); ?>">
<?php
while ( have_posts() ) :
the_post();
@ -21,20 +21,24 @@ get_header();
the_post_navigation();
// If comments are open or we have at least one comment, load up the comment template.
// Load comments template if comments are open or exist.
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;
endwhile; // End of the loop.
endwhile;
// Load related posts section if enabled in theme settings.
$related_posts_option = get_theme_mod( 'sophia_after_dark_enable_related_posts', true );
if ( true === $related_posts_option && 'post' === get_post_type() ) {
get_template_part( 'template-parts/related/related', 'posts' );
}
?>
</main>
</div>
</main><!-- #main -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
</div>
</div><!-- .mt-page-content-wrapper -->
<?php
get_footer();

View File

@ -3,9 +3,9 @@ Theme Name: Sophia After Dark
Author: Sophia Atkinson, Mystery Themes
Author URI: https://sophia.wtf
Description: Sophia After Dark is a page builder based and colorful free blog style WordPress theme fit for writers and bloggers. With the help of live customizer option makes your site own and present your content in an attractive way. It comes up with an amazing creative blog layouts, fully RTL and translation ready, and also compatible with Gutenberg. The theme works perfectly with Elementor that helps to create a beautiful and unique website faster. As its name suggests, it added staggering variety of color and makes your site attractive and elegant.
Version: 1.3.3
Version: 1.4.1
Requires at least: 4.7
Tested up to: 6.0.2
Tested up to: 6.8.1
Requires PHP: 5.2.4
License: GNU General Public License v3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html

View File

@ -14,30 +14,32 @@ $author_url = get_the_author_meta( 'user_url' );
?>
<div class="mt-author-box">
<?php if ( $author_avatar ) { ?>
<?php if ( $author_avatar ) : ?>
<div itemprop="image" class="mt-author__avatar">
<?php echo wp_kses_post( $author_avatar ); ?>
</div>
<?php } ?>
<?php endif; ?>
<div class="mt-author-info">
<?php if ( $author_post_link ) { ?>
<?php if ( $author_post_link ) : ?>
<h5 itemprop="name" class="mt-author-name"><?php echo wp_kses_post( $author_post_link ); ?></h5>
<?php } ?>
<?php endif; ?>
<?php if ( $author_bio ) { ?>
<?php if ( $author_bio ) : ?>
<div class="mt-author-bio">
<?php echo wp_kses_post( $author_bio ); ?>
</div>
<?php } ?>
<?php endif; ?>
<?php if ( $author_url ) : ?>
<div class="mt-author-meta">
<?php if ( $author_url ) { ?>
<div class="mt-author-website">
<span><?php esc_html_e( 'Website', 'sophia-after-dark' ); ?>&#58;</span>
<a href="<?php echo esc_url( $author_url ); ?>" target="_blank"><?php echo esc_url( $author_url ); ?></a>
</div>
<?php } ?>
<span><?php esc_html_e( 'Website', 'sophia-after-dark' ); ?>:</span>
<a href="<?php echo esc_url( $author_url ); ?>" target="_blank" rel="noopener noreferrer">
<?php echo esc_url( $author_url ); ?>
</a>
</div>
</div>
<?php endif; ?>
</div>
</div>

View File

@ -8,55 +8,55 @@
* @since 1.0.0
*/
$post_content_type = apply_filters( 'sophia_after_dark_archive_post_content_type', 'excerpt' );
if ( has_post_thumbnail() ) {
$post_class = 'has-thumbnail wow fadeInUp';
} else {
$post_class = 'no-thumbnail wow fadeInUp';
}
$post_class = has_post_thumbnail() ? 'has-thumbnail wow fadeInUp' : 'no-thumbnail wow fadeInUp';
?>
<article id="post-<?php the_ID(); ?>" <?php post_class( $post_class ); ?>>
<div class="thumb-cat-wrap">
<?php
echo '<div class="thumb-cat-wrap">';
sophia_after_dark_post_thumbnail();
sophia_after_dark_article_categories_list();
echo '</div>';
if ( 'post' === get_post_type() ) {
?>
</div>
<?php if ( 'post' === get_post_type() ) : ?>
<div class="entry-cat">
<?php
sophia_after_dark_posted_on();
sophia_after_dark_posted_by();
?>
</div>
<?php } ?>
<?php endif; ?>
<header class="entry-header">
<?php the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' ); ?>
<?php the_title(
sprintf(
'<h2 class="entry-title"><a href="%s" rel="bookmark">',
esc_url( get_permalink() )
),
'</a></h2>'
); ?>
</header>
<div class="entry-content">
<?php if ( 'excerpt' === $post_content_type ) : ?>
<?php the_excerpt(); ?>
<?php elseif ( 'content' === $post_content_type ) : ?>
<?php
if ( 'excerpt' === $post_content_type ) {
the_excerpt();
} elseif ( 'content' === $post_content_type ) {
the_content( sprintf(
wp_kses(
/* translators: %s: Name of current post. Only visible to screen readers */
__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'sophia-after-dark' ),
array(
'span' => array(
'class' => array(),
),
)
[ 'span' => [ 'class' => [] ] ]
),
get_the_title()
) );
}
?>
<?php endif; ?>
</div>
<footer class="entry-footer">
<?php sophia_after_dark_entry_footer(); ?>
</footer>
</article>

View File

@ -8,20 +8,14 @@
* @since 1.0.0
*/
if ( has_post_thumbnail() ) {
$post_class = 'has-thumbnail';
} else {
$post_class = 'no-thumbnail';
}
$post_class = has_post_thumbnail() ? 'has-thumbnail' : 'no-thumbnail';
?>
<article id="post-<?php the_ID(); ?>" <?php post_class( $post_class ); ?>>
<?php if ( has_post_thumbnail() ) : ?>
<div class="post-thumbnail">
<?php
if ( has_post_thumbnail() ) {
the_post_thumbnail( 'full' );
}
?>
<?php the_post_thumbnail( 'full' ); ?>
<div class="post-info-wrap">
<div class="post-cat"><?php sophia_after_dark_article_categories_list(); ?></div>
<div class="entry-meta">
@ -33,30 +27,29 @@ if ( has_post_thumbnail() ) {
<?php the_title( '<h3 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h3>' ); ?>
</div>
</div>
<?php endif; ?>
<div class="entry-content">
<?php
the_content( sprintf(
wp_kses(
/* translators: %s: Name of current post. Only visible to screen readers */
__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'sophia-after-dark' ),
array(
'span' => array(
'class' => array(),
),
)
[ 'span' => [ 'class' => [] ] ]
),
get_the_title()
) );
wp_link_pages( array(
wp_link_pages( [
'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'sophia-after-dark' ),
'after' => '</div>',
) );
] );
?>
</div>
<footer class="entry-footer">
<?php sophia_after_dark_entry_footer(); ?>
</footer>
<?php get_template_part( 'template-parts/author/post', 'author-box' ); ?>
</article>

View File

@ -13,32 +13,29 @@ $current_post = $wp_query->current_post;
$archive_style = get_theme_mod( 'sophia_after_dark_archive_style', 'mt-archive--masonry-style' );
$post_content_type = apply_filters( 'sophia_after_dark_archive_post_content_type', 'excerpt' );
if ( has_post_thumbnail() ) {
$post_class = 'has-thumbnail';
} else {
$post_class = 'no-thumbnail';
}
if ( $current_post < 3 && 'mt-archive--masonry-style' === $archive_style ) {
$post_class .= '';
} else {
// Determine post class
$post_class = has_post_thumbnail() ? 'has-thumbnail' : 'no-thumbnail';
if ( $current_post >= 3 || 'mt-archive--masonry-style' !== $archive_style ) {
$post_class .= ' wow fadeInUp';
}
?>
<article id="post-<?php the_ID(); ?>" <?php post_class( $post_class ); ?>>
<div class="thumb-cat-wrap">
<?php
echo '<div class="thumb-cat-wrap">';
sophia_after_dark_post_thumbnail();
sophia_after_dark_article_categories_list();
echo '</div>';
if ( 'post' === get_post_type() ) {
?>
</div>
<?php if ( 'post' === get_post_type() ) : ?>
<div class="entry-cat">
<?php
sophia_after_dark_posted_on();
sophia_after_dark_posted_by();
?>
</div>
<?php } ?>
<?php endif; ?>
<header class="entry-header">
<?php the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' ); ?>
@ -51,13 +48,8 @@ if ( $current_post < 3 && 'mt-archive--masonry-style' === $archive_style ) {
} elseif ( 'content' === $post_content_type ) {
the_content( sprintf(
wp_kses(
/* translators: %s: Name of current post. Only visible to screen readers */
__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'sophia-after-dark' ),
array(
'span' => array(
'class' => array(),
),
)
[ 'span' => [ 'class' => [] ] ]
),
get_the_title()
) );

View File

@ -6,39 +6,31 @@
* @since 1.0.0
*/
if (has_post_thumbnail()) {
$post_class = "has-thumbnail wow fadeInUp";
} else {
$post_class = "no-thumbnail wow fadeInUp";
} ?>
$post_class = has_post_thumbnail() ? "has-thumbnail wow fadeInUp" : "no-thumbnail wow fadeInUp";
?>
<article id="post-<?php the_ID(); ?>" <?php post_class( $post_class ); ?>>
<?php
echo '<div class="thumb-cat-wrap">';
if (has_post_thumbnail()) {
echo '<a href="' . esc_url(get_permalink()) . '" rel="bookmark">';
sophia_after_dark_post_thumbnail();
echo "</a>";
}
sophia_after_dark_article_categories_list();
echo "</div>";
if ("post" === get_post_type()) { ?>
<div class="thumb-cat-wrap">
<?php if ( has_post_thumbnail() ) : ?>
<a href="<?php echo esc_url( get_permalink() ); ?>" rel="bookmark">
<?php sophia_after_dark_post_thumbnail(); ?>
</a>
<?php endif; ?>
<?php sophia_after_dark_article_categories_list(); ?>
</div>
<?php if ( "post" === get_post_type() ) : ?>
<div class="entry-cat">
<?php
sophia_after_dark_posted_on();
sophia_after_dark_posted_by();
?>
</div>
<?php }
?>
<?php endif; ?>
<header class="entry-header">
<?php the_title(
'<h2 class="entry-title"><a href="' .
esc_url(get_permalink()) .
'" rel="bookmark">',
"</a></h2>"
); ?>
<?php the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' ); ?>
</header>
<footer class="entry-footer">

View File

@ -6,39 +6,36 @@
* @since 1.0.0
*/
global $post;
$related_post_id = get_the_id();
$related_post_id = get_the_ID();
$get_categories = get_the_terms( $related_post_id, 'category' );
$selected_cat = array();
$selected_cat = ! empty( $get_categories ) && is_array( $get_categories ) ? wp_list_pluck( $get_categories, 'term_id' ) : [];
// Get only category slug of current post.
if ( $get_categories && is_array( $get_categories ) ) {
foreach ( $get_categories as $category ) {
$selected_cat[] = $category->term_id;
}
}
$related_posts_count = apply_filters( 'sophia_after_dark_related_posts_count', 3 );
$related_posts_title = apply_filters( 'sophia_after_dark_related_posts_section_title', __( 'Related Posts', 'sophia-after-dark' ) );
$related_posts_args = array(
$related_posts_args = [
'posts_per_page' => absint( $related_posts_count ),
'post__not_in' => array( $related_post_id ),
'post__not_in' => [ $related_post_id ],
'category__in' => $selected_cat,
);
];
$related_posts_query = new WP_Query( $related_posts_args );
if ( $related_posts_query->have_posts() ) {
if ( $related_posts_query->have_posts() ) :
?>
<section class="mt-single-related-posts">
<h2 class="mt-related-post-title"><?php echo esc_html( $related_posts_title ); ?></h2>
<div class="mt-related-posts-wrapper">
<?php
while ( $related_posts_query->have_posts() ) {
while ( $related_posts_query->have_posts() ) :
$related_posts_query->the_post();
get_template_part( 'template-parts/related/content', 'related' );
}
endwhile;
?>
</div>
</section>
<?php
}
endif;
wp_reset_postdata();