diff --git a/category.php b/category.php
index a26725a..5dd038e 100644
--- a/category.php
+++ b/category.php
@@ -10,7 +10,7 @@
$loop_featured = new WP_Query(
array(
'category_name' => $cat_name,
- 'posts_per_page' => get_theme_mod( 'featured-posts-count-category', '4' ),
+ 'posts_per_page' => get_theme_mod( 'featured-posts-count-category', '5' ),
));
$ids = array();
?>
diff --git a/functions.php b/functions.php
index 7292ccf..d93fbee 100644
--- a/functions.php
+++ b/functions.php
@@ -14,12 +14,6 @@
// Load Kirki
include( get_template_directory() . '/functions/kirki/kirki.php' );
-// Load theme updater functions
-function featureon_theme_updater() {
- require( get_template_directory() . '/functions/updater/theme-updater.php' );
-}
-add_action( 'after_setup_theme', 'featureon_theme_updater' );
-
if ( ! function_exists( 'featureon_load' ) ) {
function featureon_load() {
diff --git a/functions/updater/theme-updater-admin.php b/functions/updater/theme-updater-admin.php
deleted file mode 100644
index a45bd36..0000000
--- a/functions/updater/theme-updater-admin.php
+++ /dev/null
@@ -1,626 +0,0 @@
- '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' );
- }
- ?>
-
-
-
- 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 = '
' . $strings['renew'] . '';
- } 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'] );
- ?>
-
- '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&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 '
';
- printf(
- $strings['update-available'],
- $theme->get( 'Name' ),
- $api_response->new_version,
- '#TB_inline?width=640&inlineId=' . $this->theme_slug . '_changelog',
- $theme->get( 'Name' ),
- $update_url,
- $update_onclick
- );
- echo '
';
- echo '
';
- echo wpautop( $api_response->sections['changelog'] );
- echo '
';
- }
- }
-
- /**
- * 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;
- }
-
-}
diff --git a/functions/updater/theme-updater.php b/functions/updater/theme-updater.php
deleted file mode 100644
index 6c9bdf4..0000000
--- a/functions/updater/theme-updater.php
+++ /dev/null
@@ -1,54 +0,0 @@
- 'https://alx.media', // Site where EDD is hosted
- 'item_name' => 'Featureon', // Name of theme
- 'theme_slug' => 'featureon', // Theme slug
- 'version' => '2.4.9', // 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', 'featureon' ),
- 'enter-key' => __( 'Enter your theme license key.', 'featureon' ),
- 'license-key' => __( 'License Key', 'featureon' ),
- 'license-action' => __( 'License Action', 'featureon' ),
- 'deactivate-license' => __( 'Deactivate License', 'featureon' ),
- 'activate-license' => __( 'Activate License', 'featureon' ),
- 'status-unknown' => __( 'License status is unknown.', 'featureon' ),
- 'renew' => __( 'Renew?', 'featureon' ),
- 'unlimited' => __( 'unlimited', 'featureon' ),
- 'license-key-is-active' => __( 'License key is active.', 'featureon' ),
- 'expires%s' => __( 'Expires %s.', 'featureon' ),
- 'expires-never' => __( 'Lifetime License.', 'featureon' ),
- '%1$s/%2$-sites' => __( 'You have %1$s / %2$s sites activated.', 'featureon' ),
- 'license-key-expired-%s' => __( 'License key expired %s.', 'featureon' ),
- 'license-key-expired' => __( 'License key has expired.', 'featureon' ),
- 'license-keys-do-not-match' => __( 'License keys do not match.', 'featureon' ),
- 'license-is-inactive' => __( 'License is inactive.', 'featureon' ),
- 'license-key-is-disabled' => __( 'License key is disabled.', 'featureon' ),
- 'site-is-inactive' => __( 'Site is inactive.', 'featureon' ),
- 'license-status-unknown' => __( 'License status is unknown.', 'featureon' ),
- 'update-notice' => __( "Updating this theme will lose any customizations you have made. 'Cancel' to stop, 'OK' to update.", 'featureon' ),
- 'update-available' => __('
%1$s %2$s is available.
Check out what\'s new or
update now.', 'featureon' ),
- )
-
-);
diff --git a/languages/featureon.pot b/languages/featureon.pot
index b2ad61f..3042b4c 100644
--- a/languages/featureon.pot
+++ b/languages/featureon.pot
@@ -2,7 +2,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Featureon\n"
-"POT-Creation-Date: 2021-07-23 18:34+0200\n"
+"POT-Creation-Date: 2022-08-25 10:19+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:91
+#: functions.php:85
msgid "Mobile"
msgstr ""
-#: functions.php:92
+#: functions.php:86
msgid "Topbar"
msgstr ""
-#: functions.php:93 functions/theme-options.php:34
+#: functions.php:87 functions/theme-options.php:34
msgid "Header"
msgstr ""
-#: functions.php:94 functions/theme-options.php:39
+#: functions.php:88 functions/theme-options.php:39
msgid "Footer"
msgstr ""
-#: functions.php:189
+#: functions.php:183
msgid "Primary"
msgstr ""
-#: functions.php:189 functions.php:190
+#: functions.php:183 functions.php:184
msgid "Normal full width sidebar"
msgstr ""
-#: functions.php:190
+#: functions.php:184
msgid "Secondary"
msgstr ""
-#: functions.php:192 functions/theme-options.php:295
+#: functions.php:186 functions/theme-options.php:295
msgid "Header Ads"
msgstr ""
-#: functions.php:193 functions/theme-options.php:322
+#: functions.php:187 functions/theme-options.php:322
msgid "Footer Ads"
msgstr ""
-#: functions.php:193
+#: functions.php:187
msgid "Footer ads area"
msgstr ""
-#: functions.php:195
+#: functions.php:189
msgid "Frontpage Top 1"
msgstr ""
-#: functions.php:195 functions.php:196 functions.php:197 functions.php:198
+#: functions.php:189 functions.php:190 functions.php:191 functions.php:192
msgid "Frontpage area"
msgstr ""
-#: functions.php:196
+#: functions.php:190
msgid "Frontpage Top 2"
msgstr ""
-#: functions.php:197
+#: functions.php:191
msgid "Frontpage Bottom 1"
msgstr ""
-#: functions.php:198
+#: functions.php:192
msgid "Frontpage Bottom 2"
msgstr ""
-#: functions.php:200
+#: functions.php:194
msgid "Footer 1"
msgstr ""
-#: functions.php:200 functions.php:201 functions.php:202 functions.php:203
+#: functions.php:194 functions.php:195 functions.php:196 functions.php:197
msgid "Widgetized footer"
msgstr ""
-#: functions.php:201
+#: functions.php:195
msgid "Footer 2"
msgstr ""
-#: functions.php:202
+#: functions.php:196
msgid "Footer 3"
msgstr ""
-#: functions.php:203
+#: functions.php:197
msgid "Footer 4"
msgstr ""
-#: functions.php:698
+#: functions.php:692
msgid "Alx Extensions"
msgstr ""
-#: functions.php:702
+#: functions.php:696
msgid "Meta Box"
msgstr ""
-#: functions.php:706
+#: functions.php:700
msgid "Regenerate Thumbnails"
msgstr ""
-#: functions.php:710
+#: functions.php:704
msgid "WP-PageNavi"
msgstr ""
diff --git a/readme.txt b/readme.txt
index a5a9752..0e3d114 100644
--- a/readme.txt
+++ b/readme.txt
@@ -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, three-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, three-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 ==
-Featureon is a responsive 100% high resolution theme for blogs and magazines. Unique toggle sidebars give a great browsing and reading experience on both tablet and mobile. The feature list is long: Unlimited accent colors, unlimited widget areas, 0-2 sidebars to the left or right that can be uniquely specified for each page or post, 300px / 300px fixed width sidebars, 0-4 footer widget columns, almost zero layout images, related posts and post nav, featured stories and carousel, 5 post formats, good SEO, 2 flexible custom widgets, localisation support, social links, logo upload and many more useful admin panel features.
+Featureon is a responsive 100% high resolution theme for blogs and magazines. Unique toggle sidebars give a great browsing and reading experience on both tablet and mobile. The feature list is long: Unlimited accent colors, 0-2 sidebars to the left or right that can be uniquely specified for each page or post, 300px / 300px fixed width sidebars, 0-4 footer widget columns, almost zero layout images, related posts and post nav, featured stories and carousel, 5 post formats, good SEO, localisation support, social links, logo upload and many more useful admin panel features. Demo: http://demo.alx.media/x/?theme=Featureon
== Installation ==
@@ -72,8 +72,26 @@ 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)
+5. https://stocksnap.io/photo/E4PSRGAB8Y - CC0 1.0 Universal (CC0 1.0)
+
+Subheader images
+1. https://stocksnap.io/photo/UEQ0178WUT - CC0 1.0 Universal (CC0 1.0)
+2. https://stocksnap.io/photo/IUJP9OI22I - CC0 1.0 Universal (CC0 1.0)
+3. https://stocksnap.io/photo/693PZB7YZT - CC0 1.0 Universal (CC0 1.0)
+4. https://stocksnap.io/photo/CLCT9SWF9E - CC0 1.0 Universal (CC0 1.0)
+5. https://stocksnap.io/photo/13LKG0AGI0 - CC0 1.0 Universal (CC0 1.0)
+6. https://stocksnap.io/photo/1C1A9389B4 - CC0 1.0 Universal (CC0 1.0)
+
== Changelog ==
+= 2.5.0 - 2022-08-25 =
+* Changed theme from premium to free
+
= 2.4.9 - 2022-05-30 =
* Fixed ol and ul box-sizing content-box styling for WP 6.0
* Updated to Kirki 4.0.24
diff --git a/style.css b/style.css
index 605bb01..407b6d8 100644
--- a/style.css
+++ b/style.css
@@ -1,14 +1,14 @@
/*
Theme Name: Featureon
Theme URI: http://alx.media/themes/featureon/
-Version: 2.4.9
+Version: 2.5.0
Requires at least: 5.0
Requires PHP: 5.6
Tested up to: 6.0
-Description:
Featureon is a responsive 100% high resolution theme for blogs and magazines. Unique toggle sidebars give a great browsing and reading experience on both tablet and mobile. The feature list is long: Unlimited accent colors, unlimited widget areas, 0-2 sidebars to the left or right that can be uniquely specified for each page or post, 300px / 300px fixed width sidebars, 0-4 footer widget columns, almost zero layout images, related posts and post nav, featured stories and carousel, 5 post formats, good SEO, 2 flexible custom widgets, localisation support, social links, logo upload and many more useful admin panel features.
+Description:
Featureon is a responsive 100% high resolution theme for blogs and magazines. Unique toggle sidebars give a great browsing and reading experience on both tablet and mobile. The feature list is long: Unlimited accent colors, 0-2 sidebars to the left or right that can be uniquely specified for each page or post, 300px / 300px fixed width sidebars, 0-4 footer widget columns, almost zero layout images, related posts and post nav, featured stories and carousel, 5 post formats, good SEO, localisation support, social links, logo upload and many more useful admin panel features. Demo: http://demo.alx.media/x/?theme=Featureon
Author: Alexander Agnarson
Author URI: http://alx.media
-Tags: blog, one-column, two-columns, three-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, three-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: featureon
Copyright: (c) 2018 Alexander "Alx" Agnarson
@@ -593,7 +593,9 @@ box-shadow: 0 1px 0 rgba(255,255,255,0.1); }
.toggle-search .svg-icon { fill: #333; margin: 0 auto; }
.toggle-search #svg-close { display: none; }
.toggle-search.active #svg-search { display: none; }
-.toggle-search.active #svg-close { display: block; }
+.toggle-search.active #svg-close { display: block; fill: rgba(0,0,0,0.4); }
+.toggle-search:focus #svg-search,
+.toggle-search:focus #svg-close { fill: rgba(0,0,0,0.6); }
/* ------------------------------------------------------------------------- *
@@ -696,6 +698,8 @@ box-shadow: 0 1px 0 rgba(255,255,255,0.1); }
.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; }
@@ -1805,6 +1809,6 @@ user-select: none;
/* ------------------------------------------------------------------------- */
/* 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; }
\ No newline at end of file