2.3.2 - change theme from premium to free

This commit is contained in:
AlxMedia 2022-08-25 18:14:55 +02:00
parent 0f999cec12
commit e3e1709a14
14 changed files with 261 additions and 1081 deletions

View file

@ -9,11 +9,11 @@
<?php if ( have_posts() ) : ?>
<?php if ( get_theme_mod('blog-layout','blog-grid') == 'blog-grid' ) : ?>
<ul class="flex-contain group">
<ul class="grid-contain">
<?php while ( have_posts() ): the_post(); ?>
<?php get_template_part('content'); ?>
<?php endwhile; ?>
</ul><!--/.flex-contain-->
</ul><!--/.grid-contain-->
<?php elseif ( get_theme_mod('blog-layout','blog-grid') == 'blog-list' ) : ?>
<ul class="flex-list group">
<?php while ( have_posts() ): the_post(); ?>

View file

@ -77,11 +77,11 @@
?>
<?php if ( get_theme_mod('blog-layout','blog-grid') == 'blog-grid' ) : ?>
<ul class="flex-contain group">
<ul class="grid-contain">
<?php while( $custom_query->have_posts() ) : $custom_query->the_post(); ?>
<?php get_template_part('content'); ?>
<?php endwhile; ?>
</ul><!--/.flex-contain-->
</ul><!--/.grid-contain-->
<?php elseif ( get_theme_mod('blog-layout','blog-grid') == 'blog-list' ) : ?>
<ul class="flex-list group">
<?php while( $custom_query->have_posts() ) : $custom_query->the_post(); ?>

View file

@ -14,12 +14,6 @@
// Load Kirki
include( get_template_directory() . '/functions/kirki/kirki.php' );
// Load theme updater functions
function agnar_theme_updater() {
require( get_template_directory() . '/functions/updater/theme-updater.php' );
}
add_action( 'after_setup_theme', 'agnar_theme_updater' );
if ( ! function_exists( 'agnar_load' ) ) {
function agnar_load() {

View file

@ -93,7 +93,7 @@ if ( ! function_exists( 'agnar_dynamic_css' ) ) {
if ( get_theme_mod( 'font' ) == 'tahoma' ) { $styles .= 'body { font-family: Tahoma, sans-serif; }'."\n"; }
// container width
if ( get_theme_mod('container-width','1920') != '1920' ) {
if ( get_theme_mod('container-width','1400') != '1400' ) {
if ( get_theme_mod( 'boxed' ) ) {
$styles .= '.boxed #wrapper, .container-inner { max-width: '.esc_attr( get_theme_mod('container-width') ).'px; }'."\n";
}

View file

@ -10,6 +10,24 @@ Kirki::add_config( 'agnar', array(
'option_type' => 'theme_mod',
) );
/* Add Links
/* ------------------------------------ */
Kirki::add_section( 'morelink', array(
'title' => esc_html__( 'AlxMedia', 'agnar' ),
'type' => 'link',
'button_text' => esc_html__( 'View More Themes', 'agnar' ),
'button_url' => 'http://alx.media/themes/',
'priority' => 13,
) );
Kirki::add_section( 'reviewlink', array(
'title' => esc_html__( 'Like This Theme?', 'agnar' ),
'panel' => 'options',
'type' => 'link',
'button_text' => esc_html__( 'Write a Review', 'agnar' ),
'button_url' => 'https://wordpress.org/support/theme/agnar/reviews/#new-post',
'priority' => 1,
) );
/* Add Panels
/* ------------------------------------ */
Kirki::add_panel( 'options', array(
@ -683,7 +701,7 @@ Kirki::add_field( 'agnar_theme', array(
'label' => esc_html__( 'Website Max-width', 'agnar' ),
'description' => esc_html__( 'Max-width of the container', 'agnar' ),
'section' => 'styling',
'default' => '1920',
'default' => '1400',
'choices' => array(
'min' => '1024',
'max' => '1920',

View file

@ -1,626 +0,0 @@
<?php
/**
* Theme updater admin page and functions.
*
* @package EDD Sample Theme
*/
class EDD_Theme_Updater_Admin {
/**
* Variables required for the theme updater
*
* @since 1.0.0
* @type string
*/
protected $remote_api_url = null;
protected $theme_slug = null;
protected $version = null;
protected $author = null;
protected $download_id = null;
protected $renew_url = null;
protected $strings = null;
/**
* Initialize the class.
*
* @since 1.0.0
*/
function __construct( $config = array(), $strings = array() ) {
$config = wp_parse_args( $config, array(
'remote_api_url' => 'http://easydigitaldownloads.com',
'theme_slug' => get_template(),
'item_name' => '',
'license' => '',
'version' => '',
'author' => '',
'download_id' => '',
'renew_url' => '',
'beta' => false,
) );
/**
* Fires after the theme $config is setup.
*
* @since x.x.x
*
* @param array $config Array of EDD SL theme data.
*/
do_action( 'post_edd_sl_theme_updater_setup', $config );
// Set config arguments
$this->remote_api_url = $config['remote_api_url'];
$this->item_name = $config['item_name'];
$this->theme_slug = sanitize_key( $config['theme_slug'] );
$this->version = $config['version'];
$this->author = $config['author'];
$this->download_id = $config['download_id'];
$this->renew_url = $config['renew_url'];
$this->beta = $config['beta'];
// Populate version fallback
if ( '' == $config['version'] ) {
$theme = wp_get_theme( $this->theme_slug );
$this->version = $theme->get( 'Version' );
}
// Strings passed in from the updater config
$this->strings = $strings;
add_action( 'init', array( $this, 'updater' ) );
add_action( 'admin_init', array( $this, 'register_option' ) );
add_action( 'admin_init', array( $this, 'license_action' ) );
add_action( 'admin_menu', array( $this, 'license_menu' ) );
add_action( 'update_option_' . $this->theme_slug . '_license_key', array( $this, 'activate_license' ), 10, 2 );
add_filter( 'http_request_args', array( $this, 'disable_wporg_request' ), 5, 2 );
}
/**
* Creates the updater class.
*
* since 1.0.0
*/
function updater() {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
/* If there is no valid license key status, don't allow updates. */
if ( get_option( $this->theme_slug . '_license_key_status', false) != 'valid' ) {
return;
}
if ( !class_exists( 'EDD_Theme_Updater' ) ) {
// Load our custom theme updater
include( dirname( __FILE__ ) . '/theme-updater-class.php' );
}
new EDD_Theme_Updater(
array(
'remote_api_url' => $this->remote_api_url,
'version' => $this->version,
'license' => trim( get_option( $this->theme_slug . '_license_key' ) ),
'item_name' => $this->item_name,
'author' => $this->author,
'beta' => $this->beta
),
$this->strings
);
}
/**
* Adds a menu item for the theme license under the appearance menu.
*
* since 1.0.0
*/
function license_menu() {
$strings = $this->strings;
add_theme_page(
$strings['theme-license'],
$strings['theme-license'],
'manage_options',
$this->theme_slug . '-license',
array( $this, 'license_page' )
);
}
/**
* Outputs the markup used on the theme license page.
*
* since 1.0.0
*/
function license_page() {
$strings = $this->strings;
$license = trim( get_option( $this->theme_slug . '_license_key' ) );
$status = get_option( $this->theme_slug . '_license_key_status', false );
// Checks license status to display under license key
if ( ! $license ) {
$message = $strings['enter-key'];
} else {
// delete_transient( $this->theme_slug . '_license_message' );
if ( ! get_transient( $this->theme_slug . '_license_message', false ) ) {
set_transient( $this->theme_slug . '_license_message', $this->check_license(), ( 60 * 60 * 24 ) );
}
$message = get_transient( $this->theme_slug . '_license_message' );
}
?>
<div class="wrap">
<h2><?php echo $strings['theme-license'] ?></h2>
<form method="post" action="options.php">
<?php settings_fields( $this->theme_slug . '-license' ); ?>
<table class="form-table">
<tbody>
<tr valign="top">
<th scope="row" valign="top">
<?php echo $strings['license-key']; ?>
</th>
<td>
<input id="<?php echo $this->theme_slug; ?>_license_key" name="<?php echo $this->theme_slug; ?>_license_key" type="text" class="regular-text" value="<?php echo esc_attr( $license ); ?>" />
<p class="description">
<?php echo $message; ?>
</p>
</td>
</tr>
<?php if ( $license ) { ?>
<tr valign="top">
<th scope="row" valign="top">
<?php echo $strings['license-action']; ?>
</th>
<td>
<?php
wp_nonce_field( $this->theme_slug . '_nonce', $this->theme_slug . '_nonce' );
if ( 'valid' == $status ) { ?>
<input type="submit" class="button-secondary" name="<?php echo $this->theme_slug; ?>_license_deactivate" value="<?php esc_attr_e( $strings['deactivate-license'] ); ?>"/>
<?php } else { ?>
<input type="submit" class="button-secondary" name="<?php echo $this->theme_slug; ?>_license_activate" value="<?php esc_attr_e( $strings['activate-license'] ); ?>"/>
<?php }
?>
</td>
</tr>
<?php } ?>
</tbody>
</table>
<?php submit_button(); ?>
</form>
<?php
}
/**
* Registers the option used to store the license key in the options table.
*
* since 1.0.0
*/
function register_option() {
register_setting(
$this->theme_slug . '-license',
$this->theme_slug . '_license_key',
array( $this, 'sanitize_license' )
);
}
/**
* Sanitizes the license key.
*
* since 1.0.0
*
* @param string $new License key that was submitted.
* @return string $new Sanitized license key.
*/
function sanitize_license( $new ) {
$old = get_option( $this->theme_slug . '_license_key' );
if ( $old && $old != $new ) {
// New license has been entered, so must reactivate
delete_option( $this->theme_slug . '_license_key_status' );
delete_transient( $this->theme_slug . '_license_message' );
}
return $new;
}
/**
* Makes a call to the API.
*
* @since 1.0.0
*
* @param array $api_params to be used for wp_remote_get.
* @return array $response decoded JSON response.
*/
function get_api_response( $api_params ) {
// Call the custom API.
$verify_ssl = (bool) apply_filters( 'edd_sl_api_request_verify_ssl', true );
$response = wp_remote_post( $this->remote_api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params ) );
return $response;
}
/**
* Activates the license key.
*
* @since 1.0.0
*/
function activate_license() {
$license = trim( get_option( $this->theme_slug . '_license_key' ) );
// Data to send in our API request.
$api_params = array(
'edd_action' => 'activate_license',
'license' => $license,
'item_name' => urlencode( $this->item_name ),
'url' => home_url()
);
$response = $this->get_api_response( $api_params );
// make sure the response came back okay
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
if ( is_wp_error( $response ) ) {
$message = $response->get_error_message();
} else {
$message = __( 'An error occurred, please try again.' );
}
$base_url = admin_url( 'themes.php?page=' . $this->theme_slug . '-license' );
$redirect = add_query_arg( array( 'sl_theme_activation' => 'false', 'message' => urlencode( $message ) ), $base_url );
wp_redirect( $redirect );
exit();
} else {
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
if ( false === $license_data->success ) {
switch( $license_data->error ) {
case 'expired' :
$message = sprintf(
__( 'Your license key expired on %s.' ),
date_i18n( get_option( 'date_format' ), strtotime( $license_data->expires, current_time( 'timestamp' ) ) )
);
break;
case 'disabled':
case 'revoked' :
$message = __( 'Your license key has been disabled.' );
break;
case 'missing' :
$message = __( 'Invalid license.' );
break;
case 'invalid' :
case 'site_inactive' :
$message = __( 'Your license is not active for this URL.' );
break;
case 'item_name_mismatch' :
$message = sprintf( __( 'This appears to be an invalid license key for %s.' ), $this->item_name );
break;
case 'no_activations_left':
$message = __( 'Your license key has reached its activation limit.' );
break;
default :
$message = __( 'An error occurred, please try again.' );
break;
}
if ( ! empty( $message ) ) {
$base_url = admin_url( 'themes.php?page=' . $this->theme_slug . '-license' );
$redirect = add_query_arg( array( 'sl_theme_activation' => 'false', 'message' => urlencode( $message ) ), $base_url );
wp_redirect( $redirect );
exit();
}
}
}
// $response->license will be either "active" or "inactive"
if ( $license_data && isset( $license_data->license ) ) {
update_option( $this->theme_slug . '_license_key_status', $license_data->license );
delete_transient( $this->theme_slug . '_license_message' );
}
wp_redirect( admin_url( 'themes.php?page=' . $this->theme_slug . '-license' ) );
exit();
}
/**
* Deactivates the license key.
*
* @since 1.0.0
*/
function deactivate_license() {
// Retrieve the license from the database.
$license = trim( get_option( $this->theme_slug . '_license_key' ) );
// Data to send in our API request.
$api_params = array(
'edd_action' => 'deactivate_license',
'license' => $license,
'item_name' => urlencode( $this->item_name ),
'url' => home_url()
);
$response = $this->get_api_response( $api_params );
// make sure the response came back okay
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
if ( is_wp_error( $response ) ) {
$message = $response->get_error_message();
} else {
$message = __( 'An error occurred, please try again.' );
}
$base_url = admin_url( 'themes.php?page=' . $this->theme_slug . '-license' );
$redirect = add_query_arg( array( 'sl_theme_activation' => 'false', 'message' => urlencode( $message ) ), $base_url );
wp_redirect( $redirect );
exit();
} else {
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
// $license_data->license will be either "deactivated" or "failed"
if ( $license_data && ( $license_data->license == 'deactivated' ) ) {
delete_option( $this->theme_slug . '_license_key_status' );
delete_transient( $this->theme_slug . '_license_message' );
}
}
if ( ! empty( $message ) ) {
$base_url = admin_url( 'themes.php?page=' . $this->theme_slug . '-license' );
$redirect = add_query_arg( array( 'sl_theme_activation' => 'false', 'message' => urlencode( $message ) ), $base_url );
wp_redirect( $redirect );
exit();
}
wp_redirect( admin_url( 'themes.php?page=' . $this->theme_slug . '-license' ) );
exit();
}
/**
* Constructs a renewal link
*
* @since 1.0.0
*/
function get_renewal_link() {
// If a renewal link was passed in the config, use that
if ( '' != $this->renew_url ) {
return $this->renew_url;
}
// If download_id was passed in the config, a renewal link can be constructed
$license_key = trim( get_option( $this->theme_slug . '_license_key', false ) );
if ( '' != $this->download_id && $license_key ) {
$url = esc_url( $this->remote_api_url );
$url .= '/checkout/?edd_license_key=' . $license_key . '&download_id=' . $this->download_id;
return $url;
}
// Otherwise return the remote_api_url
return $this->remote_api_url;
}
/**
* Checks if a license action was submitted.
*
* @since 1.0.0
*/
function license_action() {
if ( isset( $_POST[ $this->theme_slug . '_license_activate' ] ) ) {
if ( check_admin_referer( $this->theme_slug . '_nonce', $this->theme_slug . '_nonce' ) ) {
$this->activate_license();
}
}
if ( isset( $_POST[$this->theme_slug . '_license_deactivate'] ) ) {
if ( check_admin_referer( $this->theme_slug . '_nonce', $this->theme_slug . '_nonce' ) ) {
$this->deactivate_license();
}
}
}
/**
* Checks if license is valid and gets expire date.
*
* @since 1.0.0
*
* @return string $message License status message.
*/
function check_license() {
$license = trim( get_option( $this->theme_slug . '_license_key' ) );
$strings = $this->strings;
$api_params = array(
'edd_action' => 'check_license',
'license' => $license,
'item_name' => urlencode( $this->item_name ),
'url' => home_url()
);
$response = $this->get_api_response( $api_params );
// make sure the response came back okay
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
if ( is_wp_error( $response ) ) {
$message = $response->get_error_message();
} else {
$message = $strings['license-status-unknown'];
}
$base_url = admin_url( 'themes.php?page=' . $this->theme_slug . '-license' );
$redirect = add_query_arg( array( 'sl_theme_activation' => 'false', 'message' => urlencode( $message ) ), $base_url );
wp_redirect( $redirect );
exit();
} else {
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
// If response doesn't include license data, return
if ( !isset( $license_data->license ) ) {
$message = $strings['license-status-unknown'];
return $message;
}
// We need to update the license status at the same time the message is updated
if ( $license_data && isset( $license_data->license ) ) {
update_option( $this->theme_slug . '_license_key_status', $license_data->license );
}
// Get expire date
$expires = false;
if ( isset( $license_data->expires ) && 'lifetime' != $license_data->expires ) {
$expires = date_i18n( get_option( 'date_format' ), strtotime( $license_data->expires, current_time( 'timestamp' ) ) );
$renew_link = '<a href="' . esc_url( $this->get_renewal_link() ) . '" target="_blank">' . $strings['renew'] . '</a>';
} elseif ( isset( $license_data->expires ) && 'lifetime' == $license_data->expires ) {
$expires = 'lifetime';
}
// Get site counts
$site_count = $license_data->site_count;
$license_limit = $license_data->license_limit;
// If unlimited
if ( 0 == $license_limit ) {
$license_limit = $strings['unlimited'];
}
if ( $license_data->license == 'valid' ) {
$message = $strings['license-key-is-active'] . ' ';
if ( isset( $expires ) && 'lifetime' != $expires ) {
$message .= sprintf( $strings['expires%s'], $expires ) . ' ';
}
if ( isset( $expires ) && 'lifetime' == $expires ) {
$message .= $strings['expires-never'];
}
if ( $site_count && $license_limit ) {
$message .= sprintf( $strings['%1$s/%2$-sites'], $site_count, $license_limit );
}
} else if ( $license_data->license == 'expired' ) {
if ( $expires ) {
$message = sprintf( $strings['license-key-expired-%s'], $expires );
} else {
$message = $strings['license-key-expired'];
}
if ( $renew_link ) {
$message .= ' ' . $renew_link;
}
} else if ( $license_data->license == 'invalid' ) {
$message = $strings['license-keys-do-not-match'];
} else if ( $license_data->license == 'inactive' ) {
$message = $strings['license-is-inactive'];
} else if ( $license_data->license == 'disabled' ) {
$message = $strings['license-key-is-disabled'];
} else if ( $license_data->license == 'site_inactive' ) {
// Site is inactive
$message = $strings['site-is-inactive'];
} else {
$message = $strings['license-status-unknown'];
}
}
return $message;
}
/**
* Disable requests to wp.org repository for this theme.
*
* @since 1.0.0
*/
function disable_wporg_request( $r, $url ) {
// If it's not a theme update request, bail.
if ( 0 !== strpos( $url, 'https://api.wordpress.org/themes/update-check/1.1/' ) ) {
return $r;
}
// Decode the JSON response
$themes = json_decode( $r['body']['themes'] );
// Remove the active parent and child themes from the check
$parent = get_option( 'template' );
$child = get_option( 'stylesheet' );
unset( $themes->themes->$parent );
unset( $themes->themes->$child );
// Encode the updated JSON response
$r['body']['themes'] = json_encode( $themes );
return $r;
}
}
/**
* This is a means of catching errors from the activation method above and displyaing it to the customer
*/
function edd_sample_theme_admin_notices() {
if ( isset( $_GET['sl_theme_activation'] ) && ! empty( $_GET['message'] ) ) {
switch( $_GET['sl_theme_activation'] ) {
case 'false':
$message = urldecode( $_GET['message'] );
?>
<div class="error">
<p><?php echo $message; ?></p>
</div>
<?php
break;
case 'true':
default:
break;
}
}
}
add_action( 'admin_notices', 'edd_sample_theme_admin_notices' );

View file

@ -1,192 +0,0 @@
<?php
/**
* Theme updater class.
*
* @package EDD Sample Theme
* @version 1.0.3
*/
class EDD_Theme_Updater {
private $remote_api_url;
private $request_data;
private $response_key;
private $theme_slug;
private $license_key;
private $version;
private $author;
protected $strings = null;
/**
* Initiate the Theme updater
*
* @param array $args Array of arguments from the theme requesting an update check
* @param array $strings Strings for the update process
*/
function __construct( $args = array(), $strings = array() ) {
$defaults = array(
'remote_api_url' => 'http://easydigitaldownloads.com',
'request_data' => array(),
'theme_slug' => get_template(), // use get_stylesheet() for child theme updates
'item_name' => '',
'license' => '',
'version' => '',
'author' => '',
'beta' => false,
);
$args = wp_parse_args( $args, $defaults );
$this->license = $args['license'];
$this->item_name = $args['item_name'];
$this->version = $args['version'];
$this->theme_slug = sanitize_key( $args['theme_slug'] );
$this->author = $args['author'];
$this->beta = $args['beta'];
$this->remote_api_url = $args['remote_api_url'];
$this->response_key = $this->theme_slug . '-' . $this->beta . '-update-response';
$this->strings = $strings;
add_filter( 'site_transient_update_themes', array( $this, 'theme_update_transient' ) );
add_filter( 'delete_site_transient_update_themes', array( $this, 'delete_theme_update_transient' ) );
add_action( 'load-update-core.php', array( $this, 'delete_theme_update_transient' ) );
add_action( 'load-themes.php', array( $this, 'delete_theme_update_transient' ) );
add_action( 'load-themes.php', array( $this, 'load_themes_screen' ) );
}
/**
* Show the update notification when neecessary
*
* @return void
*/
function load_themes_screen() {
add_thickbox();
add_action( 'admin_notices', array( $this, 'update_nag' ) );
}
/**
* Display the update notifications
*
* @return void
*/
function update_nag() {
$strings = $this->strings;
$theme = wp_get_theme( $this->theme_slug );
$api_response = get_transient( $this->response_key );
if ( false === $api_response ) {
return;
}
$update_url = wp_nonce_url( 'update.php?action=upgrade-theme&amp;theme=' . urlencode( $this->theme_slug ), 'upgrade-theme_' . $this->theme_slug );
$update_onclick = ' onclick="if ( confirm(\'' . esc_js( $strings['update-notice'] ) . '\') ) {return true;}return false;"';
if ( version_compare( $this->version, $api_response->new_version, '<' ) ) {
echo '<div id="update-nag">';
printf(
$strings['update-available'],
$theme->get( 'Name' ),
$api_response->new_version,
'#TB_inline?width=640&amp;inlineId=' . $this->theme_slug . '_changelog',
$theme->get( 'Name' ),
$update_url,
$update_onclick
);
echo '</div>';
echo '<div id="' . $this->theme_slug . '_' . 'changelog" style="display:none;">';
echo wpautop( $api_response->sections['changelog'] );
echo '</div>';
}
}
/**
* Update the theme update transient with the response from the version check
*
* @param array $value The default update values.
* @return array|boolean If an update is available, returns the update parameters, if no update is needed returns false, if
* the request fails returns false.
*/
function theme_update_transient( $value ) {
$update_data = $this->check_for_update();
if ( $update_data ) {
// Make sure the theme property is set. See issue 1463 on Github in the Software Licensing Repo.
$update_data['theme'] = $this->theme_slug;
$value->response[ $this->theme_slug ] = $update_data;
}
return $value;
}
/**
* Remove the update data for the theme
*
* @return void
*/
function delete_theme_update_transient() {
delete_transient( $this->response_key );
}
/**
* Call the EDD SL API (using the URL in the construct) to get the latest version information
*
* @return array|boolean If an update is available, returns the update parameters, if no update is needed returns false, if
* the request fails returns false.
*/
function check_for_update() {
$update_data = get_transient( $this->response_key );
if ( false === $update_data ) {
$failed = false;
$api_params = array(
'edd_action' => 'get_version',
'license' => $this->license,
'name' => $this->item_name,
'slug' => $this->theme_slug,
'version' => $this->version,
'author' => $this->author,
'beta' => $this->beta
);
$response = wp_remote_post( $this->remote_api_url, array( 'timeout' => 15, 'body' => $api_params ) );
// Make sure the response was successful
if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
$failed = true;
}
$update_data = json_decode( wp_remote_retrieve_body( $response ) );
if ( ! is_object( $update_data ) ) {
$failed = true;
}
// If the response failed, try again in 30 minutes
if ( $failed ) {
$data = new stdClass;
$data->new_version = $this->version;
set_transient( $this->response_key, $data, strtotime( '+30 minutes', time() ) );
return false;
}
// If the status is 'ok', return the update arguments
if ( ! $failed ) {
$update_data->sections = maybe_unserialize( $update_data->sections );
set_transient( $this->response_key, $update_data, strtotime( '+12 hours', time() ) );
}
}
if ( version_compare( $this->version, $update_data->new_version, '>=' ) ) {
return false;
}
return (array) $update_data;
}
}

View file

@ -1,54 +0,0 @@
<?php
/**
* Easy Digital Downloads Theme Updater
*
* @package EDD Sample Theme
*/
// Includes the files needed for the theme updater
if ( !class_exists( 'EDD_Theme_Updater_Admin' ) ) {
include( dirname( __FILE__ ) . '/theme-updater-admin.php' );
}
// Loads the updater classes
$updater = new EDD_Theme_Updater_Admin(
// Config settings
$config = array(
'remote_api_url' => 'https://alx.media', // Site where EDD is hosted
'item_name' => 'Agnar', // Name of theme
'theme_slug' => 'agnar', // Theme slug
'version' => '2.3.1', // The current version of this theme
'author' => 'AlxMedia', // The author of this theme
'download_id' => '', // Optional, used for generating a license renewal link
'renew_url' => '', // Optional, allows for a custom license renewal link
'beta' => false, // Optional, set to true to opt into beta versions
),
// Strings
$strings = array(
'theme-license' => __( 'Theme License', 'agnar' ),
'enter-key' => __( 'Enter your theme license key.', 'agnar' ),
'license-key' => __( 'License Key', 'agnar' ),
'license-action' => __( 'License Action', 'agnar' ),
'deactivate-license' => __( 'Deactivate License', 'agnar' ),
'activate-license' => __( 'Activate License', 'agnar' ),
'status-unknown' => __( 'License status is unknown.', 'agnar' ),
'renew' => __( 'Renew?', 'agnar' ),
'unlimited' => __( 'unlimited', 'agnar' ),
'license-key-is-active' => __( 'License key is active.', 'agnar' ),
'expires%s' => __( 'Expires %s.', 'agnar' ),
'expires-never' => __( 'Lifetime License.', 'agnar' ),
'%1$s/%2$-sites' => __( 'You have %1$s / %2$s sites activated.', 'agnar' ),
'license-key-expired-%s' => __( 'License key expired %s.', 'agnar' ),
'license-key-expired' => __( 'License key has expired.', 'agnar' ),
'license-keys-do-not-match' => __( 'License keys do not match.', 'agnar' ),
'license-is-inactive' => __( 'License is inactive.', 'agnar' ),
'license-key-is-disabled' => __( 'License key is disabled.', 'agnar' ),
'site-is-inactive' => __( 'Site is inactive.', 'agnar' ),
'license-status-unknown' => __( 'License status is unknown.', 'agnar' ),
'update-notice' => __( "Updating this theme will lose any customizations you have made. 'Cancel' to stop, 'OK' to update.", 'agnar' ),
'update-available' => __('<strong>%1$s %2$s</strong> is available. <a href="%3$s" class="thickbox" title="%4s">Check out what\'s new</a> or <a href="%5$s"%6$s>update now</a>.', 'agnar' ),
)
);

View file

@ -11,11 +11,11 @@
<?php if ( have_posts() ) : ?>
<?php if ( get_theme_mod('blog-layout','blog-grid') == 'blog-grid' ) : ?>
<ul class="flex-contain group">
<ul class="grid-contain">
<?php while ( have_posts() ): the_post(); ?>
<?php get_template_part('content'); ?>
<?php endwhile; ?>
</ul><!--/.flex-contain-->
</ul><!--/.grid-contain-->
<?php elseif ( get_theme_mod('blog-layout','blog-grid') == 'blog-list' ) : ?>
<ul class="flex-list group">
<?php while ( have_posts() ): the_post(); ?>

View file

@ -2,7 +2,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Agnar\n"
"POT-Creation-Date: 2021-07-23 18:30+0200\n"
"POT-Creation-Date: 2022-08-25 18:05+0200\n"
"PO-Revision-Date: 2018-09-21 21:27+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -10,7 +10,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.2\n"
"X-Generator: Poedit 3.0\n"
"X-Poedit-KeywordsList: __;_e;_x;_ex;_n;_nx;_n_noop;_nx_noop;"
"translate_nooped_plural;number_format_i18n;date_i18n;esc_html__;esc_html_e;"
"esc_html_x;esc_attr__;esc_attr_e;esc_attr_x\n"
@ -62,99 +62,99 @@ msgstr ""
msgid "Theme by"
msgstr ""
#: functions.php:89
#: functions.php:83
msgid "Mobile"
msgstr ""
#: functions.php:90
#: functions.php:84
msgid "Topbar"
msgstr ""
#: functions.php:91 functions/theme-options.php:34
#: functions.php:85 functions/theme-options.php:52
msgid "Header"
msgstr ""
#: functions.php:92 functions/theme-options.php:39
#: functions.php:86 functions/theme-options.php:57
msgid "Footer"
msgstr ""
#: functions.php:187
#: functions.php:181
msgid "Primary"
msgstr ""
#: functions.php:187
#: functions.php:181
msgid "Normal full width sidebar"
msgstr ""
#: functions.php:189 functions/theme-options.php:289
#: functions.php:183 functions/theme-options.php:307
msgid "Header Ads"
msgstr ""
#: functions.php:190 functions/theme-options.php:316
#: functions.php:184 functions/theme-options.php:334
msgid "Footer Ads"
msgstr ""
#: functions.php:190
#: functions.php:184
msgid "Footer ads area"
msgstr ""
#: functions.php:192
#: functions.php:186
msgid "Frontpage Top 1"
msgstr ""
#: functions.php:192 functions.php:193 functions.php:194 functions.php:195
#: functions.php:186 functions.php:187 functions.php:188 functions.php:189
msgid "Frontpage area"
msgstr ""
#: functions.php:193
#: functions.php:187
msgid "Frontpage Top 2"
msgstr ""
#: functions.php:194
#: functions.php:188
msgid "Frontpage Bottom 1"
msgstr ""
#: functions.php:195
#: functions.php:189
msgid "Frontpage Bottom 2"
msgstr ""
#: functions.php:197
#: functions.php:191
msgid "Footer 1"
msgstr ""
#: functions.php:197 functions.php:198 functions.php:199 functions.php:200
#: functions.php:191 functions.php:192 functions.php:193 functions.php:194
msgid "Widgetized footer"
msgstr ""
#: functions.php:198
#: functions.php:192
msgid "Footer 2"
msgstr ""
#: functions.php:199
#: functions.php:193
msgid "Footer 3"
msgstr ""
#: functions.php:200
#: functions.php:194
msgid "Footer 4"
msgstr ""
#: functions.php:692
#: functions.php:686
msgid "Alx Extensions"
msgstr ""
#: functions.php:696
#: functions.php:690
msgid "Meta Box"
msgstr ""
#: functions.php:700
#: functions.php:694
msgid "Regenerate Thumbnails"
msgstr ""
#: functions.php:704
#: functions.php:698
msgid "WP-PageNavi"
msgstr ""
#: functions.php:708
#: functions.php:702
msgid "BJ Lazy Load"
msgstr ""
@ -167,15 +167,15 @@ msgid "Primary Sidebar"
msgstr ""
#: functions/meta-boxes.php:31 functions/meta-boxes.php:65
#: functions/theme-options.php:515 functions/theme-options.php:525
#: functions/theme-options.php:535 functions/theme-options.php:545
#: functions/theme-options.php:555 functions/theme-options.php:565
#: functions/theme-options.php:575
#: functions/theme-options.php:533 functions/theme-options.php:543
#: functions/theme-options.php:553 functions/theme-options.php:563
#: functions/theme-options.php:573 functions/theme-options.php:583
#: functions/theme-options.php:593
msgid "Select a sidebar"
msgstr ""
#: functions/meta-boxes.php:37 functions/meta-boxes.php:71
#: functions/theme-options.php:44
#: functions/theme-options.php:62
msgid "Layout"
msgstr ""
@ -204,639 +204,655 @@ msgstr ""
msgid "Current Page Parent"
msgstr ""
#: functions/theme-options.php:17
#: functions/theme-options.php:16
msgid "AlxMedia"
msgstr ""
#: functions/theme-options.php:18
msgid "View More Themes"
msgstr ""
#: functions/theme-options.php:23
msgid "Like This Theme?"
msgstr ""
#: functions/theme-options.php:26
msgid "Write a Review"
msgstr ""
#: functions/theme-options.php:35
msgid "Theme Options"
msgstr ""
#: functions/theme-options.php:24
#: functions/theme-options.php:42
msgid "General"
msgstr ""
#: functions/theme-options.php:29
#: functions/theme-options.php:47
msgid "Blog"
msgstr ""
#: functions/theme-options.php:49
#: functions/theme-options.php:67
msgid "Sidebars"
msgstr ""
#: functions/theme-options.php:54
#: functions/theme-options.php:72
msgid "Social Links"
msgstr ""
#: functions/theme-options.php:59
#: functions/theme-options.php:77
msgid "Styling"
msgstr ""
#: functions/theme-options.php:70
#: functions/theme-options.php:88
msgid "Mobile Sidebar Content"
msgstr ""
#: functions/theme-options.php:71
#: functions/theme-options.php:89
msgid "Sidebar content on low-resolution mobile devices (320px)"
msgstr ""
#: functions/theme-options.php:79
#: functions/theme-options.php:97
msgid "Post Comments"
msgstr ""
#: functions/theme-options.php:80
#: functions/theme-options.php:98
msgid "Comments on posts"
msgstr ""
#: functions/theme-options.php:88
#: functions/theme-options.php:106
msgid "Page Comments"
msgstr ""
#: functions/theme-options.php:89
#: functions/theme-options.php:107
msgid "Comments on pages"
msgstr ""
#: functions/theme-options.php:97
#: functions/theme-options.php:115
msgid "Recommended Plugins"
msgstr ""
#: functions/theme-options.php:98
#: functions/theme-options.php:116
msgid "Enable or disable the recommended plugins notice"
msgstr ""
#: functions/theme-options.php:106
#: functions/theme-options.php:124
msgid "Blog Layout"
msgstr ""
#: functions/theme-options.php:110
#: functions/theme-options.php:128
msgid "Grid"
msgstr ""
#: functions/theme-options.php:111
#: functions/theme-options.php:129
msgid "List"
msgstr ""
#: functions/theme-options.php:118
#: functions/theme-options.php:136
msgid "Heading"
msgstr ""
#: functions/theme-options.php:119
#: functions/theme-options.php:137
msgid "Your blog heading"
msgstr ""
#: functions/theme-options.php:127
#: functions/theme-options.php:145
msgid "Subheading"
msgstr ""
#: functions/theme-options.php:128
#: functions/theme-options.php:146
msgid "Your blog subheading"
msgstr ""
#: functions/theme-options.php:136
#: functions/theme-options.php:154
msgid "Featured Title"
msgstr ""
#: functions/theme-options.php:137
#: functions/theme-options.php:155
msgid "Your home header text"
msgstr ""
#: functions/theme-options.php:145
#: functions/theme-options.php:163
msgid "Featured Post Count (Home)"
msgstr ""
#: functions/theme-options.php:146
#: functions/theme-options.php:164
msgid ""
"Max number of featured posts to display on the homepage. Set it to 0 to "
"disable."
msgstr ""
#: functions/theme-options.php:159
#: functions/theme-options.php:177
msgid "Featured Post Count (Category)"
msgstr ""
#: functions/theme-options.php:160
#: functions/theme-options.php:178
msgid ""
"Max number of featured posts to display on category pages. Set it to 0 to "
"disable."
msgstr ""
#: functions/theme-options.php:173
#: functions/theme-options.php:191
msgid "Featured Category"
msgstr ""
#: functions/theme-options.php:174
#: functions/theme-options.php:192
msgid ""
"By not selecting a category, it will show your latest post(s) from all "
"categories"
msgstr ""
#: functions/theme-options.php:178
#: functions/theme-options.php:196
msgid "Select a category"
msgstr ""
#: functions/theme-options.php:184
#: functions/theme-options.php:202
msgid "Featured Posts"
msgstr ""
#: functions/theme-options.php:185
#: functions/theme-options.php:203
msgid ""
"To show featured posts in the slider AND the content below. Usually not "
"recommended."
msgstr ""
#: functions/theme-options.php:193
#: functions/theme-options.php:211
msgid "Frontpage Widgets Top"
msgstr ""
#: functions/theme-options.php:194 functions/theme-options.php:203
#: functions/theme-options.php:212 functions/theme-options.php:221
msgid "2 columns of widgets"
msgstr ""
#: functions/theme-options.php:202
#: functions/theme-options.php:220
msgid "Frontpage Widgets Bottom"
msgstr ""
#: functions/theme-options.php:211
#: functions/theme-options.php:229
msgid "Thumbnail Comment Count"
msgstr ""
#: functions/theme-options.php:212
#: functions/theme-options.php:230
msgid "Comment count on thumbnails"
msgstr ""
#: functions/theme-options.php:220
#: functions/theme-options.php:238
msgid "Excerpt Length"
msgstr ""
#: functions/theme-options.php:221
#: functions/theme-options.php:239
msgid "Max number of words. Set it to 0 to disable."
msgstr ""
#: functions/theme-options.php:234
#: functions/theme-options.php:252
msgid "Post Format Icons"
msgstr ""
#: functions/theme-options.php:235 functions/theme-options.php:244
#: functions/theme-options.php:253 functions/theme-options.php:262
msgid "Shown on post hover"
msgstr ""
#: functions/theme-options.php:243
#: functions/theme-options.php:261
msgid "Author Avatars"
msgstr ""
#: functions/theme-options.php:252
#: functions/theme-options.php:270
msgid "Single - Author Bio"
msgstr ""
#: functions/theme-options.php:253
#: functions/theme-options.php:271
msgid "Shows post author description, if it exists"
msgstr ""
#: functions/theme-options.php:261
#: functions/theme-options.php:279
msgid "Single - Related Posts"
msgstr ""
#: functions/theme-options.php:262
#: functions/theme-options.php:280
msgid "Shows randomized related articles below the post"
msgstr ""
#: functions/theme-options.php:266 functions/theme-options.php:280
#: functions/theme-options.php:284 functions/theme-options.php:298
msgid "Disable"
msgstr ""
#: functions/theme-options.php:267
#: functions/theme-options.php:285
msgid "Related by categories"
msgstr ""
#: functions/theme-options.php:268
#: functions/theme-options.php:286
msgid "Related by tags"
msgstr ""
#: functions/theme-options.php:275
#: functions/theme-options.php:293
msgid "Single - Post Navigation"
msgstr ""
#: functions/theme-options.php:276
#: functions/theme-options.php:294
msgid "Shows links to the next and previous article"
msgstr ""
#: functions/theme-options.php:281
#: functions/theme-options.php:299
msgid "Sidebar Primary"
msgstr ""
#: functions/theme-options.php:282
#: functions/theme-options.php:300
msgid "Below content"
msgstr ""
#: functions/theme-options.php:290
#: functions/theme-options.php:308
msgid "Header widget ads area"
msgstr ""
#: functions/theme-options.php:298
#: functions/theme-options.php:316
msgid "Header Search"
msgstr ""
#: functions/theme-options.php:299
#: functions/theme-options.php:317
msgid "Header search button"
msgstr ""
#: functions/theme-options.php:307
#: functions/theme-options.php:325
msgid "Header Social Links"
msgstr ""
#: functions/theme-options.php:308 functions/theme-options.php:342
#: functions/theme-options.php:326 functions/theme-options.php:360
msgid "Social link icon buttons"
msgstr ""
#: functions/theme-options.php:317
#: functions/theme-options.php:335
msgid "Footer widget ads area"
msgstr ""
#: functions/theme-options.php:325
#: functions/theme-options.php:343
msgid "Footer Widget Columns"
msgstr ""
#: functions/theme-options.php:326
#: functions/theme-options.php:344
msgid "Select columns to enable footer widgets. Recommended number: 3"
msgstr ""
#: functions/theme-options.php:341
#: functions/theme-options.php:359
msgid "Footer Social Links"
msgstr ""
#: functions/theme-options.php:350
#: functions/theme-options.php:368
msgid "Footer Logo"
msgstr ""
#: functions/theme-options.php:351
#: functions/theme-options.php:369
msgid "Upload your custom logo image"
msgstr ""
#: functions/theme-options.php:359
#: functions/theme-options.php:377
msgid "Footer Copyright"
msgstr ""
#: functions/theme-options.php:360
#: functions/theme-options.php:378
msgid "Replace the footer copyright text"
msgstr ""
#: functions/theme-options.php:368
#: functions/theme-options.php:386
msgid "Footer Credit"
msgstr ""
#: functions/theme-options.php:369
#: functions/theme-options.php:387
msgid "Footer credit text"
msgstr ""
#: functions/theme-options.php:377
#: functions/theme-options.php:395
msgid "Global Layout"
msgstr ""
#: functions/theme-options.php:378
#: functions/theme-options.php:396
msgid "Other layouts will override this option if they are set"
msgstr ""
#: functions/theme-options.php:391 functions/theme-options.php:510
#: functions/theme-options.php:409 functions/theme-options.php:528
msgid "Home"
msgstr ""
#: functions/theme-options.php:392
#: functions/theme-options.php:410
msgid "(is_home) Posts homepage layout"
msgstr ""
#: functions/theme-options.php:406 functions/theme-options.php:520
#: functions/theme-options.php:424 functions/theme-options.php:538
msgid "Single"
msgstr ""
#: functions/theme-options.php:407
#: functions/theme-options.php:425
msgid ""
"(is_single) Single post layout - If a post has a set layout, it will "
"override this."
msgstr ""
#: functions/theme-options.php:421 functions/theme-options.php:530
#: functions/theme-options.php:439 functions/theme-options.php:548
msgid "Archive"
msgstr ""
#: functions/theme-options.php:422
#: functions/theme-options.php:440
msgid "(is_archive) Category, date, tag and author archive layout"
msgstr ""
#: functions/theme-options.php:436 functions/theme-options.php:540
#: functions/theme-options.php:454 functions/theme-options.php:558
msgid "Archive - Category"
msgstr ""
#: functions/theme-options.php:437
#: functions/theme-options.php:455
msgid "(is_category) Category archive layout"
msgstr ""
#: functions/theme-options.php:451 functions/theme-options.php:550
#: functions/theme-options.php:469 functions/theme-options.php:568
msgid "Search"
msgstr ""
#: functions/theme-options.php:452
#: functions/theme-options.php:470
msgid "(is_search) Search page layout"
msgstr ""
#: functions/theme-options.php:466 functions/theme-options.php:560
#: functions/theme-options.php:484 functions/theme-options.php:578
msgid "Error 404"
msgstr ""
#: functions/theme-options.php:467
#: functions/theme-options.php:485
msgid "(is_404) Error 404 page layout"
msgstr ""
#: functions/theme-options.php:481 functions/theme-options.php:570
#: functions/theme-options.php:499 functions/theme-options.php:588
msgid "Default Page"
msgstr ""
#: functions/theme-options.php:482
#: functions/theme-options.php:500
msgid ""
"(is_page) Default page layout - If a page has a set layout, it will override "
"this."
msgstr ""
#: functions/theme-options.php:511
#: functions/theme-options.php:529
msgid "(is_home) Primary"
msgstr ""
#: functions/theme-options.php:521
#: functions/theme-options.php:539
msgid ""
"(is_single) Primary - If a single post has a unique sidebar, it will "
"override this."
msgstr ""
#: functions/theme-options.php:531
#: functions/theme-options.php:549
msgid "(is_archive) Primary"
msgstr ""
#: functions/theme-options.php:541
#: functions/theme-options.php:559
msgid "(is_category) Primary"
msgstr ""
#: functions/theme-options.php:551
#: functions/theme-options.php:569
msgid "(is_search) Primary"
msgstr ""
#: functions/theme-options.php:561
#: functions/theme-options.php:579
msgid "(is_404) Primary"
msgstr ""
#: functions/theme-options.php:571
#: functions/theme-options.php:589
msgid ""
"(is_page) Primary - If a page has a unique sidebar, it will override this."
msgstr ""
#: functions/theme-options.php:584
#: functions/theme-options.php:602
msgid "Create Social Links"
msgstr ""
#: functions/theme-options.php:585
#: functions/theme-options.php:603
msgid "Create and organize your social links"
msgstr ""
#: functions/theme-options.php:587
#: functions/theme-options.php:605
msgid "Font Awesome names:"
msgstr ""
#: functions/theme-options.php:587 functions/theme-options.php:604
#: functions/theme-options.php:605 functions/theme-options.php:622
msgid "View All"
msgstr ""
#: functions/theme-options.php:590
#: functions/theme-options.php:608
msgid "social link"
msgstr ""
#: functions/theme-options.php:597
#: functions/theme-options.php:615
msgid "Title"
msgstr ""
#: functions/theme-options.php:598
#: functions/theme-options.php:616
msgid "Ex: Facebook"
msgstr ""
#: functions/theme-options.php:603
#: functions/theme-options.php:621
msgid "Icon Name"
msgstr ""
#: functions/theme-options.php:604
#: functions/theme-options.php:622
msgid "Font Awesome icons. Ex: fa-facebook "
msgstr ""
#: functions/theme-options.php:609 inc/page-title.php:69
#: functions/theme-options.php:627 inc/page-title.php:69
msgid "Link"
msgstr ""
#: functions/theme-options.php:610
#: functions/theme-options.php:628
msgid "Enter the full url for your icon button"
msgstr ""
#: functions/theme-options.php:615
#: functions/theme-options.php:633
msgid "Icon Color"
msgstr ""
#: functions/theme-options.php:616
#: functions/theme-options.php:634
msgid "Set a unique color for your icon (optional)"
msgstr ""
#: functions/theme-options.php:621
#: functions/theme-options.php:639
msgid "Open in new window"
msgstr ""
#: functions/theme-options.php:630
#: functions/theme-options.php:648
msgid "Dynamic Styles"
msgstr ""
#: functions/theme-options.php:631
#: functions/theme-options.php:649
msgid "Turn on to use the styling options below"
msgstr ""
#: functions/theme-options.php:639
#: functions/theme-options.php:657
msgid "Boxed Layout"
msgstr ""
#: functions/theme-options.php:640
#: functions/theme-options.php:658
msgid "Use a boxed layout"
msgstr ""
#: functions/theme-options.php:648
#: functions/theme-options.php:666
msgid "Font"
msgstr ""
#: functions/theme-options.php:649
#: functions/theme-options.php:667
msgid "Select font for the theme"
msgstr ""
#: functions/theme-options.php:653
#: functions/theme-options.php:671
msgid "Titillium Web, Latin (Self-hosted)"
msgstr ""
#: functions/theme-options.php:654
#: functions/theme-options.php:672
msgid "Titillium Web, Latin-Ext"
msgstr ""
#: functions/theme-options.php:655
#: functions/theme-options.php:673
msgid "Droid Serif, Latin"
msgstr ""
#: functions/theme-options.php:656
#: functions/theme-options.php:674
msgid "Source Sans Pro, Latin-Ext"
msgstr ""
#: functions/theme-options.php:657
#: functions/theme-options.php:675
msgid "Lato, Latin"
msgstr ""
#: functions/theme-options.php:658
#: functions/theme-options.php:676
msgid "Raleway, Latin"
msgstr ""
#: functions/theme-options.php:659
#: functions/theme-options.php:677
msgid "Ubuntu, Latin-Ext"
msgstr ""
#: functions/theme-options.php:660
#: functions/theme-options.php:678
msgid "Ubuntu, Latin / Cyrillic-Ext"
msgstr ""
#: functions/theme-options.php:661
#: functions/theme-options.php:679
msgid "Roboto, Latin-Ext"
msgstr ""
#: functions/theme-options.php:662
#: functions/theme-options.php:680
msgid "Roboto, Latin / Cyrillic-Ext"
msgstr ""
#: functions/theme-options.php:663
#: functions/theme-options.php:681
msgid "Roboto Condensed, Latin-Ext"
msgstr ""
#: functions/theme-options.php:664
#: functions/theme-options.php:682
msgid "Roboto Condensed, Latin / Cyrillic-Ext"
msgstr ""
#: functions/theme-options.php:665
#: functions/theme-options.php:683
msgid "Roboto Slab, Latin-Ext"
msgstr ""
#: functions/theme-options.php:666
#: functions/theme-options.php:684
msgid "Roboto Slab, Latin / Cyrillic-Ext"
msgstr ""
#: functions/theme-options.php:667
#: functions/theme-options.php:685
msgid "Playfair Display, Latin-Ext"
msgstr ""
#: functions/theme-options.php:668
#: functions/theme-options.php:686
msgid "Playfair Display, Latin / Cyrillic"
msgstr ""
#: functions/theme-options.php:669
#: functions/theme-options.php:687
msgid "Open Sans, Latin-Ext"
msgstr ""
#: functions/theme-options.php:670
#: functions/theme-options.php:688
msgid "Open Sans, Latin / Cyrillic-Ext"
msgstr ""
#: functions/theme-options.php:671
#: functions/theme-options.php:689
msgid "PT Serif, Latin-Ext"
msgstr ""
#: functions/theme-options.php:672
#: functions/theme-options.php:690
msgid "PT Serif, Latin / Cyrillic-Ext"
msgstr ""
#: functions/theme-options.php:673
#: functions/theme-options.php:691
msgid "Arial"
msgstr ""
#: functions/theme-options.php:674
#: functions/theme-options.php:692
msgid "Georgia"
msgstr ""
#: functions/theme-options.php:675
#: functions/theme-options.php:693
msgid "Verdana"
msgstr ""
#: functions/theme-options.php:676
#: functions/theme-options.php:694
msgid "Tahoma"
msgstr ""
#: functions/theme-options.php:683
#: functions/theme-options.php:701
msgid "Website Max-width"
msgstr ""
#: functions/theme-options.php:684
#: functions/theme-options.php:702
msgid "Max-width of the container"
msgstr ""
#: functions/theme-options.php:697
#: functions/theme-options.php:715
msgid "Featured Section Height"
msgstr ""
#: functions/theme-options.php:698
#: functions/theme-options.php:716
msgid "Height of the featured posts section"
msgstr ""
#: functions/theme-options.php:711
#: functions/theme-options.php:729
msgid "Primary Color"
msgstr ""
#: functions/theme-options.php:719
#: functions/theme-options.php:737
msgid "Mobile Menu Color"
msgstr ""
#: functions/theme-options.php:727
#: functions/theme-options.php:745
msgid "Topbar Menu Color"
msgstr ""
#: functions/theme-options.php:735
#: functions/theme-options.php:753
msgid "Header Border Line"
msgstr ""
#: functions/theme-options.php:743
#: functions/theme-options.php:761
msgid "Header Border Line Height"
msgstr ""
#: functions/theme-options.php:744
#: functions/theme-options.php:762
msgid "Set to 0 to disable"
msgstr ""
#: functions/theme-options.php:757
#: functions/theme-options.php:775
msgid "Header Color"
msgstr ""
#: functions/theme-options.php:765
#: functions/theme-options.php:783
msgid "Header Logo Image Max-height"
msgstr ""
#: functions/theme-options.php:766 functions/theme-options.php:810
#: functions/theme-options.php:784 functions/theme-options.php:828
msgid ""
"Your logo image should have the double height of this to be high resolution"
msgstr ""
#: functions/theme-options.php:779
#: functions/theme-options.php:797
msgid "Site Description Top Margin"
msgstr ""
#: functions/theme-options.php:780
#: functions/theme-options.php:798
msgid "The distance to the top for your site description"
msgstr ""
#: functions/theme-options.php:793
#: functions/theme-options.php:811
msgid "Footer Menu Color"
msgstr ""
#: functions/theme-options.php:801
#: functions/theme-options.php:819
msgid "Footer Color"
msgstr ""
#: functions/theme-options.php:809
#: functions/theme-options.php:827
msgid "Footer Logo Image Max-height"
msgstr ""
#: functions/theme-options.php:823
#: functions/theme-options.php:841
msgid "Image Border Radius"
msgstr ""
#: functions/theme-options.php:824
#: functions/theme-options.php:842
msgid "Give your thumbnails and layout images rounded corners"
msgstr ""

View file

@ -4,11 +4,11 @@ Requires at least: 5.0
Tested up to: 6.0
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Tags: blog, one-column, two-columns, right-sidebar, left-sidebar, custom-colors, custom-menu, featured-images, flexible-header, full-width-template, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, custom-logo, custom-header, custom-background
Tags: blog, one-column, two-columns, right-sidebar, left-sidebar, custom-colors, custom-menu, featured-images, flexible-header, full-width-template, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, custom-logo, custom-header, custom-background, news, entertainment, footer-widgets
== Description ==
Agnar is a flexible theme for magazines and blogs. What makes it special is how well it scales all the way up to 1920px width and fill the entire screen beautifully, with a wall of visual posts.
Agnar is a flexible theme for magazines and blogs. It comes packed with plenty of options to make it easy for you to customize it as you want. Demo: http://demo.alx.media/x/?theme=Agnar
== Installation ==
@ -67,8 +67,27 @@ Screenshot images
License: CC0 1.0 Universal (CC0 1.0)
Source: https://stocksnap.io
Header images
1. https://stocksnap.io/photo/TNK87N7464 - CC0 1.0 Universal (CC0 1.0)
2. https://stocksnap.io/photo/SA20YXQRC4 - CC0 1.0 Universal (CC0 1.0)
3. https://stocksnap.io/photo/RKS9M8PY0X - CC0 1.0 Universal (CC0 1.0)
4. https://stocksnap.io/photo/EPNK1H7KBP - CC0 1.0 Universal (CC0 1.0)
Content images
1. https://stocksnap.io/photo/23H66MTGXA - CC0 1.0 Universal (CC0 1.0)
2. https://stocksnap.io/photo/Y01VDYAX63 - CC0 1.0 Universal (CC0 1.0)
3. https://stocksnap.io/photo/DGYLV0KMUY - CC0 1.0 Universal (CC0 1.0)
Sidebar images
1. https://stocksnap.io/photo/23H66MTGXA - CC0 1.0 Universal (CC0 1.0)
2. https://stocksnap.io/photo/Y01VDYAX63 - CC0 1.0 Universal (CC0 1.0)
3. https://stocksnap.io/photo/DGYLV0KMUY - CC0 1.0 Universal (CC0 1.0)
== Changelog ==
= 2.3.2 - 2022-08-26 =
* Changed theme from premium to free
= 2.3.1 - 2022-05-30 =
* Fixed ol and ul box-sizing content-box styling for WP 6.0
* Updated to Kirki 4.0.24

Binary file not shown.

Before

Width:  |  Height:  |  Size: 599 KiB

After

Width:  |  Height:  |  Size: 572 KiB

Before After
Before After

View file

@ -21,11 +21,11 @@
<?php if ( have_posts() ) : ?>
<?php if ( get_theme_mod('blog-layout','blog-grid') == 'blog-grid' ) : ?>
<ul class="flex-contain group">
<ul class="grid-contain group">
<?php while ( have_posts() ): the_post(); ?>
<?php get_template_part('content'); ?>
<?php endwhile; ?>
</ul><!--/.flex-contain-->
</ul><!--/.grid-contain-->
<?php elseif ( get_theme_mod('blog-layout','blog-grid') == 'blog-list' ) : ?>
<ul class="flex-list group">
<?php while ( have_posts() ): the_post(); ?>

View file

@ -1,14 +1,14 @@
/*
Theme Name: Agnar
Theme URI: http://alx.media/themes/agnar/
Version: 2.3.1
Version: 2.3.2
Requires at least: 5.0
Requires PHP: 5.6
Tested up to: 6.0
Description: <a href="http://alx.media/themes/agnar/">Agnar</a> is a flexible theme for magazines and blogs. What makes it special is how well it scales all the way up to 1920px width and fill the entire screen beautifully, with a wall of visual posts.
Description: <a href="http://alx.media/themes/agnar/">Agnar</a> is a flexible theme for magazines and blogs. It comes packed with plenty of options to make it easy for you to customize it as you want. Demo: http://demo.alx.media/x/?theme=Agnar
Author: Alexander Agnarson
Author URI: http://alx.media
Tags: blog, one-column, two-columns, right-sidebar, left-sidebar, custom-colors, custom-menu, featured-images, flexible-header, full-width-template, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, custom-logo, custom-header, custom-background
Tags: blog, one-column, two-columns, right-sidebar, left-sidebar, custom-colors, custom-menu, featured-images, flexible-header, full-width-template, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, custom-logo, custom-header, custom-background, news, entertainment, footer-widgets
Text Domain: agnar
Copyright: (c) 2018 Alexander "Alx" Agnarson
@ -244,6 +244,7 @@ input, textarea, button, select, label { font-family: inherit; }
/* base : entry
/* ------------------------------------ */
.entry { font-size: 17px; line-height: 1.6em; }
.entry a { text-decoration: underline; }
.entry p,
.entry dd { margin-bottom: 1em; }
.entry dt { color: #222; }
@ -369,7 +370,7 @@ h1, h2, h3, h4, h5, h6 { color: #000; font-weight: 600; -ms-word-wrap: break-wor
/* ------------------------------------ */
#wrapper { background: #f5f5f5; min-width: 1024px; height: 100%; margin: 0 auto; }
.container { position: relative; }
.container-inner { margin: 0 auto; max-width: 1920px; }
.container-inner { margin: 0 auto; max-width: 1400px; }
.pad { padding: 30px; }
/* boxed */
@ -521,6 +522,7 @@ border-radius: 3px; }
.toggle-search #svg-close { display: none; }
.toggle-search.active #svg-search { display: none; }
.toggle-search.active #svg-close { display: block; }
.toggle-search:focus { box-shadow: inset 0 0 20px rgba(0,0,0,0.06); }
/* ------------------------------------------------------------------------- *
@ -623,6 +625,8 @@ border-radius: 3px; }
.nav-menu.mobile.toggled > div > ul.menu ul.sub-menu { visibility: hidden; transition: all 0.3s ease; }
.nav-menu.mobile.toggled > div > ul.menu,
.nav-menu.mobile.toggled > div > ul.menu ul.sub-menu.active { visibility: visible; }
.nav-menu.mobile button:focus,
.menu-toggle:focus { background: rgba(0,0,0,0.04); }
/* menu styling */
.nav-menu a { color: #fff; }
@ -926,6 +930,7 @@ border-radius: 0 0 3px 3px; }
/* post : grid
/* ------------------------------------ */
.grid-contain { display: grid; grid-template-columns: repeat(auto-fill,minmax(300px,1fr)); gap: 0; }
.flex-contain { display: flex; flex: 1 1 auto; flex-wrap: wrap; }
.flex-item { background: #fff; position: relative; border: 1px solid #ddd; flex: 1 1 240px; min-width: 240px; margin: 10px; transition: all .3s ease; }
.flex-item:hover { box-shadow: 0 10px 10px rgba(0,0,0,0.1), 0 2px 2px rgba(0,0,0,0.1); border-color: #ccc; }
@ -1725,6 +1730,6 @@ html[xmlns] .slides { display: block; }
/* ------------------------------------------------------------------------- */
/* Text meant only for screen readers. */
.screen-reader-text{ border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute!important; width: 1px; word-wrap: normal!important; }
.screen-reader-text:focus { background-color: #fff; border-radius: 3px; box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1); clip: auto!important; clip-path: none; color: #333; display: block; font-size: 14px; font-size: 0.875rem; font-weight: bold; height: auto; right: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; }
.screen-reader-text:focus { background-color: #fff; border-radius: 3px; box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1); clip: auto!important; clip-path: none; color: #333; display: block; font-size: 14px; font-size: 0.875rem; font-weight: bold; height: auto; left: auto; right: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; }
/* Do not show the outline on the skip link target. */
#page[tabindex="-1"]:focus{ outline: 0; }