get_settings(); add_image_size( 'aip_magazine-cover-image', apply_filters( 'aip_magazine-cover-image-width', $settings['cover_image_width'] ), apply_filters( 'aip_magazine-cover-image-height', $settings['cover_image_height'] ), true ); add_image_size( 'aip_magazine-featured-rotator-image', apply_filters( 'aip_magazine-featured-rotator-image-width', $settings['featured_image_width'] ), apply_filters( 'aip_magazine-featured-rotator-image-height', $settings['featured_image_height'] ), true ); add_image_size( 'aip_magazine-featured-thumb-image', apply_filters( 'aip_magazine-featured-thumb-image-width', $settings['featured_thumb_width'] ), apply_filters( 'aip_magazine-featured-thumb-image-height', $settings['featured_thumb_height'] ), true ); add_action( 'admin_init', array( $this, 'upgrade' ) ); add_action( 'admin_menu', array( $this, 'admin_menu' ) ); add_action( 'admin_notices', array( $this, 'aip_magazine_notification' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'admin_wp_enqueue_scripts' ) ); add_action( 'admin_print_styles', array( $this, 'admin_wp_print_styles' ) ); add_action( 'wp_enqueue_scripts', array( $this, 'frontend_scripts' ) ); register_activation_hook( __FILE__, array( $this, 'activation' ) ); register_deactivation_hook( __FILE__, array( $this, 'deactivation' ) ); add_action( 'wp_ajax_aip_magazine_process_notice_link', array( $this, 'ajax_process_notice_link' ) ); if ( !empty( $settings['aip_magazine_author_name'] ) && !is_admin() ) add_filter( 'the_author', array( $this, 'the_author' ) ); if ( !empty( $settings['use_wp_taxonomies'] ) ) add_action( 'pre_get_posts', array( $this, 'add_aip_magazine_articles_to_tag_query' ) ); if ( !is_admin() ) add_action( 'pre_get_posts', array( $this, 'remove_draft_issues_from_main_query' ) ); /*classe che implementa il filtro di ricerca per le riviste*/ if( ! class_exists( 'Aip_Magazine_Parent_Category_Filter' ) ) { require_once('aip_magazine-parent-category-filter.php'); } $pcf = new Aip_Magazine_Parent_Category_Filter(); $pcf->register_hooks(); } /** * Runs activation routines when AipMagazine is activated * * @since 1.0.0 * */ function activation() { add_option( 'aip_magazine_flush_rewrite_rules', 'true' ); } /** * Initialize AipMagazine Admin Menu * * @since 1.0.0 */ function admin_menu() { add_submenu_page( 'edit.php?post_type=aip_article', __( 'Settings', 'aip_magazine' ), __( 'Settings', 'aip_magazine' ), apply_filters( 'manage_aip_magazine_settings', 'manage_aip_magazine_settings' ), 'aip_magazine', array( $this, 'settings_page' ) ); add_submenu_page( 'edit.php?post_type=aip_article', __( 'Help', 'aip_magazine' ), __( 'Help', 'aip_magazine' ), apply_filters( 'manage_aip_magazine_settings', 'manage_aip_magazine_settings' ), 'aip_magazine-help', array( $this, 'help_page' ) ); } /** * Replaces Author Name with AipMagazine setting, if it is set * Otherwise, uses WordPress's Author name * * @since 1.0.0 * * @param string $wp_author WordPress Author name * @return string Author Name */ function the_author( $wp_author ) { global $post; if ( !empty( $post->ID ) ) { if ( $author_name = get_post_meta( $post->ID, '_aip_magazine_author_name', true ) ) return $author_name; else return $wp_author; } return $wp_author; } /** * Modifies WordPress query to include Articles in Tag/Category queries * * @since 1.0.0 * * @param object $query WordPress Query Object */ function add_aip_magazine_articles_to_tag_query( $query ) { if ( $query->is_main_query() && ( $query->is_tag() || $query->is_category() ) ) $query->set( 'post_type', array( 'post', 'aip_article' ) ); } /** * Modifies WordPress query to remove draft Issues from queries * Except for users with permission to see drafts * * @since 1.2.0 * * @param object $query WordPress Query Object */ function remove_draft_issues_from_main_query( $query ) { if ( !is_admin() && $query->is_main_query() && !current_user_can( apply_filters( 'see_aip_magazine_draft_issues', 'manage_issues' ) ) ) { $term_ids = get_aip_magazine_draft_issues(); $draft_issues = array( 'taxonomy' => 'aip_magazine_issue', 'field' => 'id', 'terms' => $term_ids, 'operator' => 'NOT IN', ); if ( !$query->is_tax() ) { $query->set( 'tax_query', array( $draft_issues, ) ); } else { $term_ids = get_aip_magazine_draft_issues(); $tax_query = $query->tax_query->queries; $tax_query[] = $draft_issues; $tax_query['relation'] = 'AND'; $query->set( 'tax_query', $tax_query ); } } } /** * Enqueues styles used by AipMagazine WordPress Dashboard * * @since 1.0.0 * @uses wp_enqueue_style() to enqueue CSS files */ function admin_wp_print_styles() { global $hook_suffix; if ( 'article_page_aip_magazine' == $hook_suffix || ( 'edit.php' == $hook_suffix && !empty( $_GET['post_type'] ) && 'aip_article' == $_GET['post_type'] ) || ( 'edit-tags.php' == $hook_suffix && !empty( $_GET['post_type'] ) && 'aip_article' == $_GET['post_type'] ) ) wp_enqueue_style( 'aip_magazine_admin_style', AIPMAGAZINE_URL . '/css/aip_magazine-admin.css', '', AIPMAGAZINE_VERSION ); } /** * Enqueues scripts used by AipMagazine WordPress Dashboard * * @since 1.0.0 * @uses wp_enqueue_script() to enqueue JS files */ function admin_wp_enqueue_scripts( $hook_suffix ) { // Hack for edit-tags to include the "enctype=multipart/form-data" argument in the edit tags HTML form, // for uploading issue cover images if ( ('edit-tags.php'==$hook_suffix || 'term.php' == $hook_suffix) && !empty( $_GET['taxonomy'] ) && 'aip_magazine_issue' == $_GET['taxonomy']) wp_enqueue_script( 'aip_magazine_issue-custom-tax-hacks', AIPMAGAZINE_URL . '/js/aip_magazine_issue-custom-tax-hacks.js', array( 'jquery' ), AIPMAGAZINE_VERSION ); if ( 'post.php' == $hook_suffix ) wp_enqueue_script( 'aip_magazine_issue-edit-article-hacks', AIPMAGAZINE_URL . '/js/aip_magazine_issue-edit-article-hacks.js', array( 'jquery' ), AIPMAGAZINE_VERSION ); if ( 'widgets.php'== $hook_suffix ) wp_enqueue_script( 'aip_magazine_issue-widgets', AIPMAGAZINE_URL . '/js/aip_magazine_issue-widgets.js', array( 'jquery' ), AIPMAGAZINE_VERSION ); if ( 'aip_article_page_aip_magazine' == $hook_suffix ) wp_enqueue_script( 'aip_magazine-admin', AIPMAGAZINE_URL . '/js/aip_magazine-admin.js', array( 'jquery' ), AIPMAGAZINE_VERSION ); wp_enqueue_media(); wp_enqueue_script( 'aip_magazine-script', AIPMAGAZINE_URL . 'js/script.js', array( 'jquery' ), AIPMAGAZINE_VERSION ); wp_localize_script( 'aip_magazine-script', 'aip_magazine_ajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'noticeNonce' => wp_create_nonce( 'aip_magazine-notice-nonce') ) ); } /** * Enqueues styles and scripts used by AipMagazine on the frontend * * @since 1.0.0 * @uses wp_enqueue_script() to enqueue JS files * @uses wp_enqueue_style() to enqueue CSS files */ function frontend_scripts() { $settings = $this->get_settings(); if ( apply_filters( 'enqueue_aip_magazine_styles', 'true' ) ) { switch( $settings['css_style'] ) { case 'none' : break; case 'default' : default : wp_enqueue_style( 'aip_magazine_style', AIPMAGAZINE_URL . '/css/aip_magazine.css', '', AIPMAGAZINE_VERSION ); break; } } wp_enqueue_script( 'jquery-aip_magazine-flexslider', AIPMAGAZINE_URL . '/js/swiper.min.js', array( 'jquery' ), AIPMAGAZINE_VERSION ); wp_enqueue_style( 'jquery-aip_magazine-flexslider', AIPMAGAZINE_URL . '/css/swiper.css', '', AIPMAGAZINE_VERSION ); } /** * Gets AipMagazine settings * * @since 1.0.0 * * @return array AipMagazine settings, merged with defaults. \ */ function get_settings() { $defaults = array( 'page_for_articles' => 0, 'page_for_articles_active_issue' => 0, 'page_for_archives' => 0, 'page_of_journals_articles_active_issue' => 0, 'page_of_journals_articles_archives' => 0, 'pdf_title' => __( 'Download PDF', 'aip_magazine' ), 'pdf_only_title' => __( 'Download PDF', 'aip_magazine' ), 'pdf_open_target' => '_blank', 'cover_image_width' => 200, 'cover_image_height' => 268, 'featured_image_width' => 600, 'featured_image_height' => 338, 'featured_thumb_width' => 160, 'featured_thumb_height' => 120, 'default_issue_image' => apply_filters( 'aip_magazine_default_issue_image', AIPMAGAZINE_URL . '/images/archive-image-unavailable.jpg' ), 'custom_image_used' => 0, 'display_byline_as' => 'user_firstlast', 'aip_magazine_author_name' => '', 'use_wp_taxonomies' => '', 'use_issue_tax_links' => '', 'article_format' => '

%CATEGORY[1]%

' . "\n" . '

%TITLE%

' . "\n" . '

%EXCERPT%

' . "\n" . '

%BYLINE%

' . "\n", 'css_style' => 'default', 'show_rotator_control' => '', 'show_rotator_direction' => '', 'animation_type' => 'slide', ); $defaults = apply_filters( 'aip_magazine_default_settings', $defaults ); $settings = get_option( 'aip_magazine' ); return wp_parse_args( $settings, $defaults ); } /** * Update AipMagazine settings * * @since 1.2.0 * * @param array AipMagazine settings \ */ function update_settings( $settings ) { update_option( 'aip_magazine', $settings ); } /** * Outputs the AipMagazine settings page * * @since 1.0 * @todo perform the save function earlier */ function settings_page() { // Get the user options $settings = $this->get_settings(); if ( !empty( $_REQUEST['remove_default_issue_image'] ) ) { wp_delete_attachment( sanitize_text_key($_REQUEST['remove_default_issue_image']) ); unset( $settings['default_issue_image'] ); unset( $settings['custom_image_used'] ); $this->update_settings( $settings ); $settings = $this->get_settings(); } if ( !empty( $_REQUEST['update_aip_magazine_settings'] ) ) { if ( isset( $_REQUEST['page_for_articles'] ) ) $settings['page_for_articles'] = sanitize_text_field($_REQUEST['page_for_articles']); if ( isset( $_REQUEST['page_for_articles_active_issue'] ) ) $settings['page_for_articles_active_issue'] = sanitize_text_field($_REQUEST['page_for_articles_active_issue']); if ( isset( $_REQUEST['page_for_archives'] ) ) $settings['page_for_archives'] = sanitize_text_field($_REQUEST['page_for_archives']); if ( isset( $_REQUEST['page_of_journals_articles_active_issue'] ) ){ $settings['page_of_journals_articles_active_issue'] = sanitize_text_field($_REQUEST['page_of_journals_articles_active_issue']); } if ( isset( $_REQUEST['page_of_journals_articles_archives'] ) ){ $settings['page_of_journals_articles_archives'] = sanitize_text_field($_REQUEST['page_of_journals_articles_archives']); } if ( !empty( $_REQUEST['css_style'] ) ) $settings['css_style'] = sanitize_text_field($_REQUEST['css_style']); if ( !empty( $_REQUEST['pdf_title'] ) ) $settings['pdf_title'] = sanitize_text_field($_REQUEST['pdf_title']); if ( !empty( $_REQUEST['pdf_only_title'] ) ) $settings['pdf_only_title'] = sanitize_text_field($_REQUEST['pdf_only_title']); if ( !empty( $_REQUEST['pdf_open_target'] ) ) $settings['pdf_open_target'] = sanitize_text_field($_REQUEST['pdf_open_target']); if ( !empty( $_REQUEST['article_format'] ) ) $settings['article_format'] = sanitize_text_field($_REQUEST['article_format']); if ( !empty( $_REQUEST['cover_image_width'] ) ) $settings['cover_image_width'] = sanitize_text_field($_REQUEST['cover_image_width']); else unset( $settings['cover_image_width'] ); if ( !empty( $_REQUEST['cover_image_height'] ) ) $settings['cover_image_height'] = sanitize_text_field($_REQUEST['cover_image_height']); else unset( $settings['cover_image_height'] ); if ( !empty( $_REQUEST['featured_image_width'] ) ) $settings['featured_image_width'] = sanitize_text_field($_REQUEST['featured_image_width']); else unset( $settings['featured_image_width'] ); if ( !empty( $_REQUEST['featured_image_height'] ) ) $settings['featured_image_height'] = sanitize_text_field($_REQUEST['featured_image_height']); else unset( $settings['featured_image_height'] ); if ( !empty( $_REQUEST['featured_thumb_width'] ) ) $settings['featured_thumb_width'] = sanitize_text_field($_REQUEST['featured_thumb_width']); else unset( $settings['featured_thumb_width'] ); if ( !empty( $_REQUEST['featured_thumb_height'] ) ) $settings['featured_thumb_height'] = sanitize_text_field($_REQUEST['featured_thumb_height']); else unset( $settings['featured_thumb_height'] ); if ( !empty( $_REQUEST['default_issue_image'] ) ) { $settings['default_issue_image'] = sanitize_key($_REQUEST['default_issue_image']); $settings['custom_image_used'] = 1; } if ( !empty( $_REQUEST['display_byline_as'] ) ) $settings['display_byline_as'] = sanitize_text_field($_REQUEST['display_byline_as']); if ( !empty( $_REQUEST['aip_magazine_author_name'] ) ) $settings['aip_magazine_author_name'] = sanitize_text_field($_REQUEST['aip_magazine_author_name']); else unset( $settings['aip_magazine_author_name'] ); if ( !empty( $_REQUEST['show_thumbnail_byline'] ) ) $settings['show_thumbnail_byline'] = sanitize_text_field($_REQUEST['show_thumbnail_byline']); else unset( $settings['show_thumbnail_byline'] ); if ( !empty( $_REQUEST['use_wp_taxonomies'] ) ) $settings['use_wp_taxonomies'] = sanitize_text_field($_REQUEST['use_wp_taxonomies']); else unset( $settings['use_wp_taxonomies'] ); if ( !empty( $_REQUEST['use_issue_tax_links'] ) ) $settings['use_issue_tax_links'] = sanitize_text_field($_REQUEST['use_issue_tax_links']); else unset( $settings['use_issue_tax_links'] ); if ( !empty( $_REQUEST['show_rotator_control'] ) ) $settings['show_rotator_control'] = sanitize_text_field($_REQUEST['show_rotator_control']); else unset( $settings['show_rotator_control'] ); if ( !empty( $_REQUEST['show_rotator_direction'] ) ) $settings['show_rotator_direction'] = sanitize_text_field($_REQUEST['show_rotator_direction']); else unset( $settings['show_rotator_direction'] ); if ( !empty( $_REQUEST['animation_type'] ) ) $settings['animation_type'] = sanitize_text_field($_REQUEST['animation_type']); $settings = apply_filters( 'aip_magazine_save_settings', $settings ); $this->update_settings( $settings ); // It's not pretty, but the easiest way to get the menu to refresh after save... ?>

'page_for_articles', 'echo' => 0, 'show_option_none' => __( '— Select —' ), 'option_none_value' => '0', 'selected' => $settings['page_for_articles'] ) ); ?>
'page_for_articles_active_issue', 'echo' => 0, 'show_option_none' => __( '— Select —' ), 'option_none_value' => '0', 'selected' => $settings['page_for_articles_active_issue'] ) ); ?>    
'page_for_archives', 'echo' => 0, 'show_option_none' => __( '— Select —' ), 'option_none_value' => '0', 'selected' => $settings['page_for_archives'] ) ); ?>    
px      px
px      px
px      px

Enter a URL or upload an image

" />
" />
/>

" />
" />

This controls the article output of the [aip_magazine_articles] shortcode on the Current Issue page.

If you find the AipMagazine plugin helpful, please leave us a review on WordPress.org. Your honest feedback helps us improve AipMagazine for everyone.

Rate AipMagazine on WordPress.org

  1. Add New and search for AipMagazine', 'aip_magazine' ); ?>

  1. Add New', 'aip_magazine' ); ?>

  1. Settings', 'aip_magazine' ); ?>

  1. Journals', 'aip_magazine' ); ?>

  1. Issues', 'aip_magazine' ); ?>

  1. Add New', 'aip_magazine' ); ?>

  1. Widgets', 'aip_magazine' ); ?>

  1. Issues', 'aip_magazine' ); ?>

[aip_magazine_issue_title]


[aip_magazine_articles]

[aip_magazine_articles post_per_page="3"]


[aip_magazine_featured_rotator]

[aip_magazine_featured_rotator journal_id="1"]

[aip_magazine_featured_rotator issue="issue-5" orderby="title" order="ASC"]


[aip_magazine_featured_thumbnails]

.

[aip_magazine_featured_thumbnails journal_id="2"]

[aip_magazine_featured_thumbnails issue="issue-5" orderby="menu_order" order="DESC"]


: [aip_magazine_archives]

[aip_magazine_archives journal_id="1"]

[aip_magazine_archives journal_id="1" orderby="name" order="ASC" limit=5]


get_settings(); if ( !empty( $settings['version'] ) ) $old_version = $settings['version']; else $old_version = 0; if ( version_compare( $old_version, '1.2.0', '<' ) ) $this->upgrade_to_1_2_0( $old_version ); $settings['version'] = AIPMAGAZINE_VERSION; $this->update_settings( $settings ); } /** * Initialized permissions * * @since 1.2.0 */ function upgrade_to_1_2_0( $old_version ) { $role = get_role('administrator'); if ($role !== NULL) // Articles $role->add_cap('edit_article'); $role->add_cap('read_article'); $role->add_cap('delete_article'); $role->add_cap('edit_articles'); $role->add_cap('edit_others_articles'); $role->add_cap('publish_articles'); $role->add_cap('read_private_articles'); $role->add_cap('delete_articles'); $role->add_cap('delete_private_articles'); $role->add_cap('delete_published_articles'); $role->add_cap('delete_others_articles'); $role->add_cap('edit_private_articles'); $role->add_cap('edit_published_articles'); // Issues $role->add_cap('manage_aip_magazine_settings'); $role->add_cap('manage_issues'); $role->add_cap('manage_article_categories'); $role->add_cap('manage_article_tags'); $role->add_cap('manage_article_journals'); $role->add_cap('edit_issues'); $role->add_cap('edit_others_issues'); $role->add_cap('edit_published_issues'); $role->add_cap('publish_issues'); $role = get_role('editor'); if ($role !== NULL) {} // Articles $role->add_cap('edit_articles'); $role->add_cap('edit_others_articles'); $role->add_cap('edit_published_articles'); $role->add_cap('publish_articles'); $role->add_cap('delete_published_articles'); $role->add_cap('delete_others_articles'); $role->add_cap('delete_articles'); $role->add_cap('delete_private_articles'); $role->add_cap('edit_private_articles'); $role->add_cap('read_private_articles'); // Issues $role->add_cap('manage_issues'); $role->add_cap('manage_article_categories'); $role->add_cap('manage_article_tags'); $role->add_cap('manage_article_journals'); $role->add_cap('edit_issues'); $role->add_cap('edit_others_issues'); $role->add_cap('edit_published_issues'); $role->add_cap('publish_issues'); $role = get_role('author'); if ($role !== NULL) {} // Articles $role->add_cap('edit_articles'); $role->add_cap('edit_published_articles'); $role->add_cap('publish_articles'); $role->add_cap('delete_articles'); $role->add_cap('delete_published_articles'); // Issues $role->add_cap('edit_issues'); $role->add_cap('edit_published_issues'); $role->add_cap('publish_issues'); $role = get_role('contributor'); if ($role !== NULL) {} // Articles $role->add_cap('edit_articles'); $role->add_cap('delete_articles'); // Issues $role->add_cap('edit_issues'); if ( 0 != $old_version ) { update_option( 'aip_magazine_nag', 'Attention AipMagazine Subscribers! We have launched a new version of AipMagazine and split out the Advanced Search and Migration Tool into their own plugins. If you were using either of these functions in your previous version of AipMagazine, you will need to download them from your account at AipMagazine and install them on your site.
Sorry for any inconvenience this may have caused you and thank you for your continued support!' ); } } /** * Verify the API status reported back to AipMagazine * * @since 1.0.0 * * @param object $response WordPress remote query body */ function api_status( $response ) { if ( 1 < $response->account_status ) { update_option( 'aip_magazine_nag', $response->response ); } else { delete_option( 'aip_magazine_nag' ); delete_option( 'aip_magazine_nag_version_dismissed' ); } } /** * Returns the style available with AipMagazine * * @since 1.0.0 * @uses apply_filters on 'aip_magazine_css_styles' hook, for extending AipMagazine */ function get_css_styles() { $styles = array( 'default' => __( 'Default', 'aip_magazine' ), 'none' => __( 'None', 'aip_magazine' ), ); return apply_filters( 'aip_magazine_css_styles', $styles ); } /** * If an AipMagazine notification is set, display it. * Called by teh admin_notices hook * * @since 1.0.0 */ function aip_magazine_notification() { if ( !empty( $_REQUEST['remove_aip_magazine_nag'] ) ) { delete_option( 'aip_magazine_nag' ); update_option( 'aip_magazine_nag_version_dismissed', AIPMAGAZINE_VERSION ); } if ( ( $notification = get_option( 'aip_magazine_nag' ) ) && version_compare( get_option( 'aip_magazine_nag_version_dismissed' ), AIPMAGAZINE_VERSION, '<' ) ) echo '

' . $notification . '

' . __( 'Dismiss', 'aip_magazine' ) . '

'; } /** * Process ajax calls for notice links * * @since 2.0.3 */ function ajax_process_notice_link() { $nonce = $_POST['nonce']; if ( ! wp_verify_nonce( $nonce, 'aip_magazine-notice-nonce' ) ) die ( 'Busted!'); global $current_user; update_user_meta( $current_user->ID, 'aip_magazine_rss_item_notice_link', 1 ); echo get_user_meta( $current_user->ID, 'aip_magazine_rss_item_notice_link', true ); exit; } } }