Essential Content Types - Version 1.0.1

Version Description

  • Bug Fixed: Featured Content compatibility with themes with Jetpack: Featured Content Support
  • Bug Fixed: Admin CSS
Download this release

Release Info

Developer catchthemes
Plugin Icon Essential Content Types
Version 1.0.1
Comparing to
See all releases

Code changes from version 1.0.0 to 1.0.1

README.txt CHANGED
@@ -124,5 +124,9 @@ The example will display up to ten testimonials in two columns, in ascending alp
124
 
125
  == Changelog ==
126
 
 
 
 
 
127
  = 1.0.0 =
128
  * Initial Release
124
 
125
  == Changelog ==
126
 
127
+ = 1.0.1 =
128
+ * Bug Fixed: Featured Content compatibility with themes with Jetpack: Featured Content Support
129
+ * Bug Fixed: Admin CSS
130
+
131
  = 1.0.0 =
132
  * Initial Release
admin/class-featured-content.php CHANGED
@@ -29,38 +29,17 @@ class Essential_Content_Featured_Content {
29
  * If user has CPT enabled, show in admin
30
  */
31
  function __construct() {
32
- // Add an option to enable the CPT
33
- add_action( 'admin_init', array( $this, 'settings_api_init' ) );
34
-
35
- // Check on theme switch if theme supports CPT and setting is disabled
36
- add_action( 'after_switch_theme', array( $this, 'activation_post_type_support' ) );
37
-
38
  // Make sure the post types are loaded for imports
39
  add_action( 'import_start', array( $this, 'register_post_types' ) );
40
 
41
  // Add to REST API post type whitelist
42
  add_filter( 'rest_api_allowed_post_types', array( $this, 'allow_featured_content_rest_api_type' ) );
43
 
44
- $setting = 1;
45
-
46
- if ( class_exists( 'Jetpack_Options' ) ) {
47
- $setting = Jetpack_Options::get_option_and_ensure_autoload( self::OPTION_NAME, '0' );
48
- }
49
-
50
- // Bail early if Featured Content option is not set and the theme doesn't declare support
51
- if ( empty( $setting ) && ! $this->site_supports_custom_post_type() ) {
52
- return;
53
- }
54
-
55
- // Enable Omnisearch for Featured Content Items.
56
- if ( class_exists( 'Jetpack_Omnisearch_Posts' ) )
57
- new Jetpack_Omnisearch_Posts( self::CUSTOM_POST_TYPE );
58
-
59
  // CPT magic
60
  $this->register_post_types();
61
  add_action( sprintf( 'add_option_%s', self::OPTION_NAME ), array( $this, 'flush_rules_on_enable' ), 10 );
62
  add_action( sprintf( 'update_option_%s', self::OPTION_NAME ), array( $this, 'flush_rules_on_enable' ), 10 );
63
- add_action( sprintf( 'publish_%s', self::CUSTOM_POST_TYPE), array( $this, 'flush_rules_on_first_project' ) );
64
  add_action( 'after_switch_theme', array( $this, 'flush_rules_on_switch' ) );
65
 
66
  // Admin Customization
@@ -78,85 +57,6 @@ class Essential_Content_Featured_Content {
78
 
79
  // Adjust CPT archive and custom taxonomies to obey CPT reading setting
80
  add_filter( 'pre_get_posts', array( $this, 'query_reading_setting' ) );
81
-
82
- // If CPT was enabled programatically and no CPT items exist when user switches away, disable
83
- if ( $setting && $this->site_supports_custom_post_type() ) {
84
- add_action( 'switch_theme', array( $this, 'deactivation_post_type_support' ) );
85
- }
86
- }
87
-
88
- /**
89
- * Add a checkbox field in 'Settings' > 'Writing'
90
- * for enabling CPT functionality.
91
- *
92
- * @return null
93
- */
94
- function settings_api_init() {
95
- add_settings_field(
96
- self::OPTION_NAME,
97
- '<span class="cpt-options">' . __( 'Featured Contents', 'essential-content-types' ) . '</span>',
98
- array( $this, 'setting_html' ),
99
- 'writing',
100
- 'jetpack_cpt_section'
101
- );
102
- register_setting(
103
- 'writing',
104
- self::OPTION_NAME,
105
- 'intval'
106
- );
107
-
108
- // Check if CPT is enabled first so that intval doesn't get set to NULL on re-registering
109
- if ( get_option( self::OPTION_NAME, '0' ) || current_theme_supports( self::CUSTOM_POST_TYPE ) ) {
110
- register_setting(
111
- 'writing',
112
- self::OPTION_READING_SETTING,
113
- 'intval'
114
- );
115
- }
116
- }
117
-
118
- /**
119
- * HTML code to display a checkbox true/false option
120
- * for the Featured Content CPT setting.
121
- *
122
- * @return html
123
- */
124
- function setting_html() {
125
- if ( current_theme_supports( self::CUSTOM_POST_TYPE ) ) : ?>
126
- <p><?php printf( /* translators: %s is the name of a custom post type such as "featured-content" */ __( 'Your theme supports <strong>%s</strong>', 'essential-content-types' ), self::CUSTOM_POST_TYPE ); ?></p>
127
- <?php else : ?>
128
- <label for="<?php echo esc_attr( self::OPTION_NAME ); ?>">
129
- <input name="<?php echo esc_attr( self::OPTION_NAME ); ?>" id="<?php echo esc_attr( self::OPTION_NAME ); ?>" <?php echo checked( get_option( self::OPTION_NAME, '0' ), true, false ); ?> type="checkbox" value="1" />
130
- <?php esc_html_e( 'Enable Featured Contents for this site.', 'essential-content-types' ); ?>
131
- <a target="_blank" href="http://en.support.wordpress.com/featured_contents/"><?php esc_html_e( 'Learn More', 'essential-content-types' ); ?></a>
132
- </label>
133
- <?php endif;
134
- if ( get_option( self::OPTION_NAME, '0' ) || current_theme_supports( self::CUSTOM_POST_TYPE ) ) :
135
- printf( '<p><label for="%1$s">%2$s</label></p>',
136
- esc_attr( self::OPTION_READING_SETTING ),
137
- /* translators: %1$s is replaced with an input field for numbers */
138
- sprintf( __( 'Featured Content pages display at most %1$s projects', 'essential-content-types' ),
139
- sprintf( '<input name="%1$s" id="%1$s" type="number" step="1" min="1" value="%2$s" class="small-text" />',
140
- esc_attr( self::OPTION_READING_SETTING ),
141
- esc_attr( get_option( self::OPTION_READING_SETTING, '10' ) )
142
- )
143
- )
144
- );
145
- endif;
146
- }
147
-
148
- /**
149
- * Should this Custom Post Type be made available?
150
- */
151
- function site_supports_custom_post_type() {
152
- // If the current theme requests it.
153
- if ( current_theme_supports( self::CUSTOM_POST_TYPE ) || get_option( self::OPTION_NAME, '0' ) ) {
154
- return true;
155
- }
156
-
157
- // Otherwise, say no unless something wants to filter us to say yes.
158
- /** This action is documented in modules/custom-post-types/nova.php */
159
- return (bool) apply_filters( 'jetpack_enable_cpt', false, self::CUSTOM_POST_TYPE );
160
  }
161
 
162
  /*
@@ -167,17 +67,17 @@ class Essential_Content_Featured_Content {
167
  }
168
 
169
  /*
170
- * Count published projects and flush permalinks when first projects is published
171
  */
172
- function flush_rules_on_first_project() {
173
- $projects = get_transient( 'featured-content-count-cache' );
174
 
175
- if ( false === $projects ) {
176
  flush_rewrite_rules();
177
- $projects = (int) wp_count_posts( self::CUSTOM_POST_TYPE )->publish;
178
 
179
- if ( ! empty( $projects ) ) {
180
- set_transient( 'featured-content-count-cache', $projects, HOUR_IN_SECONDS * 12 );
181
  }
182
  }
183
  }
@@ -186,34 +86,7 @@ class Essential_Content_Featured_Content {
186
  * Flush permalinks when CPT supported theme is activated
187
  */
188
  function flush_rules_on_switch() {
189
- if ( current_theme_supports( self::CUSTOM_POST_TYPE ) ) {
190
- flush_rewrite_rules();
191
- }
192
- }
193
-
194
- /**
195
- * On plugin/theme activation, check if current theme supports CPT
196
- */
197
- static function activation_post_type_support() {
198
- if ( current_theme_supports( self::CUSTOM_POST_TYPE ) ) {
199
- update_option( self::OPTION_NAME, '1' );
200
- }
201
- }
202
-
203
- /**
204
- * On theme switch, check if CPT item exists and disable if not
205
- */
206
- function deactivation_post_type_support() {
207
- $featured_contents = get_posts( array(
208
- 'fields' => 'ids',
209
- 'posts_per_page' => 1,
210
- 'post_type' => self::CUSTOM_POST_TYPE,
211
- 'suppress_filters' => false
212
- ) );
213
-
214
- if ( empty( $featured_contents ) ) {
215
- update_option( self::OPTION_NAME, '0' );
216
- }
217
  }
218
 
219
  /**
@@ -239,7 +112,7 @@ class Essential_Content_Featured_Content {
239
  'search_items' => esc_html__( 'Search Contents', 'essential-content-types' ),
240
  'not_found' => esc_html__( 'No Contents found', 'essential-content-types' ),
241
  'not_found_in_trash' => esc_html__( 'No Contents found in Trash', 'essential-content-types' ),
242
- 'filter_items_list' => esc_html__( 'Filter projects list', 'essential-content-types' ),
243
  'items_list_navigation' => esc_html__( 'Content list navigation', 'essential-content-types' ),
244
  'items_list' => esc_html__( 'Contents list', 'essential-content-types' ),
245
  ),
@@ -292,7 +165,7 @@ class Essential_Content_Featured_Content {
292
  'show_in_rest' => true,
293
  'show_admin_column' => true,
294
  'query_var' => true,
295
- 'rewrite' => array( 'slug' => 'project-type' ),
296
  ) );
297
 
298
  register_taxonomy( self::CUSTOM_TAXONOMY_TAG, self::CUSTOM_POST_TYPE, array(
@@ -322,7 +195,7 @@ class Essential_Content_Featured_Content {
322
  'show_in_rest' => true,
323
  'show_admin_column' => true,
324
  'query_var' => true,
325
- 'rewrite' => array( 'slug' => 'project-tag' ),
326
  ) );
327
  }
328
 
@@ -340,13 +213,13 @@ class Essential_Content_Featured_Content {
340
  4 => esc_html__( 'Content updated.', 'essential-content-types' ),
341
  /* translators: %s: date and time of the revision */
342
  5 => isset( $_GET['revision'] ) ? sprintf( esc_html__( 'Content restored to revision from %s', 'essential-content-types'), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
343
- 6 => sprintf( __( 'Content published. <a href="%s">View project</a>', 'essential-content-types' ), esc_url( get_permalink( $post->ID ) ) ),
344
  7 => esc_html__( 'Content saved.', 'essential-content-types' ),
345
- 8 => sprintf( __( 'Content submitted. <a target="_blank" href="%s">Preview project</a>', 'essential-content-types'), esc_url( add_query_arg( 'preview', 'true', get_permalink( $post->ID ) ) ) ),
346
- 9 => sprintf( __( 'Content scheduled for: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Preview project</a>', 'essential-content-types' ),
347
  // translators: Publish box date format, see http://php.net/date
348
  date_i18n( __( 'M j, Y @ G:i', 'essential-content-types' ), strtotime( $post->post_date ) ), esc_url( get_permalink( $post->ID ) ) ),
349
- 10 => sprintf( __( 'Content item draft updated. <a target="_blank" href="%s">Preview project</a>', 'essential-content-types' ), esc_url( add_query_arg( 'preview', 'true', get_permalink( $post->ID ) ) ) ),
350
  );
351
 
352
  return $messages;
@@ -394,62 +267,49 @@ class Essential_Content_Featured_Content {
394
  * Adds featured_content section to the Customizer.
395
  */
396
  function customize_register( $wp_customize ) {
397
- $options = get_theme_support( self::CUSTOM_POST_TYPE );
398
-
399
- if ( ( ! isset( $options[0]['title'] ) || true !== $options[0]['title'] ) && ( ! isset( $options[0]['content'] ) || true !== $options[0]['content'] ) && ( ! isset( $options[0]['featured-image'] ) || true !== $options[0]['featured-image'] ) ) {
400
- return;
401
- }
402
-
403
- $wp_customize->add_section( 'featured_content', array(
404
  'title' => esc_html__( 'Featured Content', 'essential-content-types' ),
405
- 'theme_supports' => self::CUSTOM_POST_TYPE,
406
  'priority' => 130,
407
  ) );
408
 
409
- if ( isset( $options[0]['title'] ) && true === $options[0]['title'] ) {
410
- $wp_customize->add_setting( 'featured_content_title', array(
411
- 'default' => esc_html__( 'Contents', 'essential-content-types' ),
412
- 'type' => 'option',
413
- 'sanitize_callback' => 'sanitize_text_field',
414
- 'sanitize_js_callback' => 'sanitize_text_field',
415
- ) );
416
-
417
- $wp_customize->add_control( 'featured_content_title', array(
418
- 'section' => 'featured_content',
419
- 'label' => esc_html__( 'Featured Content Archive Title', 'essential-content-types' ),
420
- 'type' => 'text',
421
- ) );
422
- }
423
 
424
- if ( isset( $options[0]['content'] ) && true === $options[0]['content'] ) {
425
- $wp_customize->add_setting( 'featured_content_content', array(
426
- 'default' => '',
427
- 'type' => 'option',
428
- 'sanitize_callback' => 'wp_kses_post',
429
- 'sanitize_js_callback' => 'wp_kses_post',
430
- ) );
431
 
432
- $wp_customize->add_control( 'featured_content_content', array(
433
- 'section' => 'featured_content',
434
- 'label' => esc_html__( 'Featured Content Archive Content', 'essential-content-types' ),
435
- 'type' => 'textarea',
436
- ) );
437
- }
438
 
439
- if ( isset( $options[0]['featured-image'] ) && true === $options[0]['featured-image'] ) {
440
- $wp_customize->add_setting( 'featured_content_featured_image', array(
441
- 'default' => '',
442
- 'type' => 'option',
443
- 'sanitize_callback' => 'attachment_url_to_postid',
444
- 'sanitize_js_callback' => 'attachment_url_to_postid',
445
- 'theme_supports' => 'post-thumbnails',
446
- ) );
 
 
 
 
 
447
 
448
- $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'featured_content_featured_image', array(
449
- 'section' => 'featured_content',
450
- 'label' => esc_html__( 'Featured Content Archive Featured Image', 'essential-content-types' ),
451
- ) ) );
452
- }
453
  }
454
 
455
  /**
@@ -640,7 +500,7 @@ class Essential_Content_Featured_Content {
640
  $query->the_post();
641
  $post_id = get_the_ID();
642
  ?>
643
- <div class="featured-content-entry <?php echo esc_attr( self::get_project_class( $featured_content_index_number, $atts['columns'] ) ); ?>">
644
  <header class="featured-content-entry-header">
645
  <?php
646
  // Featured image
@@ -654,15 +514,15 @@ class Essential_Content_Featured_Content {
654
  <div class="featured-content-entry-meta">
655
  <?php
656
  if ( false != $atts['display_types'] ) {
657
- echo self::get_project_type( $post_id );
658
  }
659
 
660
  if ( false != $atts['display_tags'] ) {
661
- echo self::get_project_tags( $post_id );
662
  }
663
 
664
  if ( false != $atts['display_author'] ) {
665
- echo self::get_project_author( $post_id );
666
  }
667
  ?>
668
  </div>
@@ -707,18 +567,18 @@ class Essential_Content_Featured_Content {
707
  }
708
 
709
  /**
710
- * Individual project class
711
  *
712
  * @return string
713
  */
714
- static function get_project_class( $featured_content_index_number, $columns ) {
715
- $project_types = wp_get_object_terms( get_the_ID(), self::CUSTOM_TAXONOMY_TYPE, array( 'fields' => 'slugs' ) );
716
  $class = array();
717
 
718
  $class[] = 'featured-content-entry-column-'.$columns;
719
- // add a type- class for each project type
720
- foreach ( $project_types as $project_type ) {
721
- $class[] = 'type-' . esc_html( $project_type );
722
  }
723
  if( $columns > 1) {
724
  if ( ( $featured_content_index_number % 2 ) == 0 ) {
@@ -737,7 +597,7 @@ class Essential_Content_Featured_Content {
737
 
738
 
739
  /**
740
- * Filter the class applied to project div in the featured_content
741
  *
742
  * @module custom-content-types
743
  *
@@ -748,33 +608,33 @@ class Essential_Content_Featured_Content {
748
  * @param int $columns number of columns to display the content in.
749
  *
750
  */
751
- return apply_filters( 'featured-content-project-post-class', implode( " ", $class ) , $featured_content_index_number, $columns );
752
  }
753
 
754
  /**
755
- * Displays the project type that a project belongs to.
756
  *
757
  * @return html
758
  */
759
- static function get_project_type( $post_id ) {
760
- $project_types = get_the_terms( $post_id, self::CUSTOM_TAXONOMY_TYPE );
761
 
762
  // If no types, return empty string
763
- if ( empty( $project_types ) || is_wp_error( $project_types ) ) {
764
  return;
765
  }
766
 
767
- $html = '<div class="project-types"><span>' . __( 'Types', 'essential-content-types' ) . ':</span>';
768
  $types = array();
769
  // Loop thorugh all the types
770
- foreach ( $project_types as $project_type ) {
771
- $project_type_link = get_term_link( $project_type, self::CUSTOM_TAXONOMY_TYPE );
772
 
773
- if ( is_wp_error( $project_type_link ) ) {
774
- return $project_type_link;
775
  }
776
 
777
- $types[] = '<a href="' . esc_url( $project_type_link ) . '" rel="tag">' . esc_html( $project_type->name ) . '</a>';
778
  }
779
  $html .= ' '.implode( ', ', $types );
780
  $html .= '</div>';
@@ -783,29 +643,29 @@ class Essential_Content_Featured_Content {
783
  }
784
 
785
  /**
786
- * Displays the project tags that a project belongs to.
787
  *
788
  * @return html
789
  */
790
- static function get_project_tags( $post_id ) {
791
- $project_tags = get_the_terms( $post_id, self::CUSTOM_TAXONOMY_TAG );
792
 
793
  // If no tags, return empty string
794
- if ( empty( $project_tags ) || is_wp_error( $project_tags ) ) {
795
  return false;
796
  }
797
 
798
- $html = '<div class="project-tags"><span>' . __( 'Tags', 'essential-content-types' ) . ':</span>';
799
  $tags = array();
800
  // Loop thorugh all the tags
801
- foreach ( $project_tags as $project_tag ) {
802
- $project_tag_link = get_term_link( $project_tag, self::CUSTOM_TAXONOMY_TYPE );
803
 
804
- if ( is_wp_error( $project_tag_link ) ) {
805
- return $project_tag_link;
806
  }
807
 
808
- $tags[] = '<a href="' . esc_url( $project_tag_link ) . '" rel="tag">' . esc_html( $project_tag->name ) . '</a>';
809
  }
810
  $html .= ' '. implode( ', ', $tags );
811
  $html .= '</div>';
@@ -814,12 +674,12 @@ class Essential_Content_Featured_Content {
814
  }
815
 
816
  /**
817
- * Displays the author of the current featured_content project.
818
  *
819
  * @return html
820
  */
821
- static function get_project_author() {
822
- $html = '<div class="project-author">';
823
  /* translators: %1$s is link to author posts, %2$s is author display name */
824
  $html .= sprintf( __( '<span>Author:</span> <a href="%1$s">%2$s</a>', 'essential-content-types' ),
825
  esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
@@ -850,16 +710,4 @@ class Essential_Content_Featured_Content {
850
  }
851
  }
852
  }
853
- add_action( 'init', array( 'Essential_Content_Featured_Content', 'init' ) );
854
-
855
- /**
856
- * Add Featured Content support
857
- */
858
- function essential_content_feature_content_support() {
859
- add_theme_support( 'featured-content', array(
860
- 'title' => true,
861
- 'content' => true,
862
- 'featured-image' => true,
863
- ) );
864
- }
865
- add_action( 'after_setup_theme', 'essential_content_feature_content_support' );
29
  * If user has CPT enabled, show in admin
30
  */
31
  function __construct() {
 
 
 
 
 
 
32
  // Make sure the post types are loaded for imports
33
  add_action( 'import_start', array( $this, 'register_post_types' ) );
34
 
35
  // Add to REST API post type whitelist
36
  add_filter( 'rest_api_allowed_post_types', array( $this, 'allow_featured_content_rest_api_type' ) );
37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  // CPT magic
39
  $this->register_post_types();
40
  add_action( sprintf( 'add_option_%s', self::OPTION_NAME ), array( $this, 'flush_rules_on_enable' ), 10 );
41
  add_action( sprintf( 'update_option_%s', self::OPTION_NAME ), array( $this, 'flush_rules_on_enable' ), 10 );
42
+ add_action( sprintf( 'publish_%s', self::CUSTOM_POST_TYPE), array( $this, 'flush_rules_on_first_content' ) );
43
  add_action( 'after_switch_theme', array( $this, 'flush_rules_on_switch' ) );
44
 
45
  // Admin Customization
57
 
58
  // Adjust CPT archive and custom taxonomies to obey CPT reading setting
59
  add_filter( 'pre_get_posts', array( $this, 'query_reading_setting' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  }
61
 
62
  /*
67
  }
68
 
69
  /*
70
+ * Count published contents and flush permalinks when first contents is published
71
  */
72
+ function flush_rules_on_first_content() {
73
+ $contents = get_transient( 'featured-content-count-cache' );
74
 
75
+ if ( false === $contents ) {
76
  flush_rewrite_rules();
77
+ $contents = (int) wp_count_posts( self::CUSTOM_POST_TYPE )->publish;
78
 
79
+ if ( ! empty( $contents ) ) {
80
+ set_transient( 'featured-content-count-cache', $contents, HOUR_IN_SECONDS * 12 );
81
  }
82
  }
83
  }
86
  * Flush permalinks when CPT supported theme is activated
87
  */
88
  function flush_rules_on_switch() {
89
+ flush_rewrite_rules();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  }
91
 
92
  /**
112
  'search_items' => esc_html__( 'Search Contents', 'essential-content-types' ),
113
  'not_found' => esc_html__( 'No Contents found', 'essential-content-types' ),
114
  'not_found_in_trash' => esc_html__( 'No Contents found in Trash', 'essential-content-types' ),
115
+ 'filter_items_list' => esc_html__( 'Filter contents list', 'essential-content-types' ),
116
  'items_list_navigation' => esc_html__( 'Content list navigation', 'essential-content-types' ),
117
  'items_list' => esc_html__( 'Contents list', 'essential-content-types' ),
118
  ),
165
  'show_in_rest' => true,
166
  'show_admin_column' => true,
167
  'query_var' => true,
168
+ 'rewrite' => array( 'slug' => 'content-type' ),
169
  ) );
170
 
171
  register_taxonomy( self::CUSTOM_TAXONOMY_TAG, self::CUSTOM_POST_TYPE, array(
195
  'show_in_rest' => true,
196
  'show_admin_column' => true,
197
  'query_var' => true,
198
+ 'rewrite' => array( 'slug' => 'content-tag' ),
199
  ) );
200
  }
201
 
213
  4 => esc_html__( 'Content updated.', 'essential-content-types' ),
214
  /* translators: %s: date and time of the revision */
215
  5 => isset( $_GET['revision'] ) ? sprintf( esc_html__( 'Content restored to revision from %s', 'essential-content-types'), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
216
+ 6 => sprintf( __( 'Content published. <a href="%s">View content</a>', 'essential-content-types' ), esc_url( get_permalink( $post->ID ) ) ),
217
  7 => esc_html__( 'Content saved.', 'essential-content-types' ),
218
+ 8 => sprintf( __( 'Content submitted. <a target="_blank" href="%s">Preview content</a>', 'essential-content-types'), esc_url( add_query_arg( 'preview', 'true', get_permalink( $post->ID ) ) ) ),
219
+ 9 => sprintf( __( 'Content scheduled for: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Preview content</a>', 'essential-content-types' ),
220
  // translators: Publish box date format, see http://php.net/date
221
  date_i18n( __( 'M j, Y @ G:i', 'essential-content-types' ), strtotime( $post->post_date ) ), esc_url( get_permalink( $post->ID ) ) ),
222
+ 10 => sprintf( __( 'Content item draft updated. <a target="_blank" href="%s">Preview content</a>', 'essential-content-types' ), esc_url( add_query_arg( 'preview', 'true', get_permalink( $post->ID ) ) ) ),
223
  );
224
 
225
  return $messages;
267
  * Adds featured_content section to the Customizer.
268
  */
269
  function customize_register( $wp_customize ) {
270
+ $wp_customize->add_section( 'ect_featured_content', array(
 
 
 
 
 
 
271
  'title' => esc_html__( 'Featured Content', 'essential-content-types' ),
 
272
  'priority' => 130,
273
  ) );
274
 
275
+ $wp_customize->add_setting( 'featured_content_title', array(
276
+ 'default' => esc_html__( 'Contents', 'essential-content-types' ),
277
+ 'type' => 'option',
278
+ 'sanitize_callback' => 'sanitize_text_field',
279
+ 'sanitize_js_callback' => 'sanitize_text_field',
280
+ ) );
 
 
 
 
 
 
 
 
281
 
282
+ $wp_customize->add_control( 'featured_content_title', array(
283
+ 'section' => 'ect_featured_content',
284
+ 'label' => esc_html__( 'Featured Content Archive Title', 'essential-content-types' ),
285
+ 'type' => 'text',
286
+ ) );
 
 
287
 
288
+ $wp_customize->add_setting( 'featured_content_content', array(
289
+ 'default' => '',
290
+ 'type' => 'option',
291
+ 'sanitize_callback' => 'wp_kses_post',
292
+ 'sanitize_js_callback' => 'wp_kses_post',
293
+ ) );
294
 
295
+ $wp_customize->add_control( 'featured_content_content', array(
296
+ 'section' => 'ect_featured_content',
297
+ 'label' => esc_html__( 'Featured Content Archive Content', 'essential-content-types' ),
298
+ 'type' => 'textarea',
299
+ ) );
300
+
301
+ $wp_customize->add_setting( 'featured_content_featured_image', array(
302
+ 'default' => '',
303
+ 'type' => 'option',
304
+ 'sanitize_callback' => 'attachment_url_to_postid',
305
+ 'sanitize_js_callback' => 'attachment_url_to_postid',
306
+ 'theme_supports' => 'post-thumbnails',
307
+ ) );
308
 
309
+ $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'featured_content_featured_image', array(
310
+ 'section' => 'ect_featured_content',
311
+ 'label' => esc_html__( 'Featured Content Archive Featured Image', 'essential-content-types' ),
312
+ ) ) );
 
313
  }
314
 
315
  /**
500
  $query->the_post();
501
  $post_id = get_the_ID();
502
  ?>
503
+ <div class="featured-content-entry <?php echo esc_attr( self::get_content_class( $featured_content_index_number, $atts['columns'] ) ); ?>">
504
  <header class="featured-content-entry-header">
505
  <?php
506
  // Featured image
514
  <div class="featured-content-entry-meta">
515
  <?php
516
  if ( false != $atts['display_types'] ) {
517
+ echo self::get_content_type( $post_id );
518
  }
519
 
520
  if ( false != $atts['display_tags'] ) {
521
+ echo self::get_content_tags( $post_id );
522
  }
523
 
524
  if ( false != $atts['display_author'] ) {
525
+ echo self::get_content_author( $post_id );
526
  }
527
  ?>
528
  </div>
567
  }
568
 
569
  /**
570
+ * Individual content class
571
  *
572
  * @return string
573
  */
574
+ static function get_content_class( $featured_content_index_number, $columns ) {
575
+ $content_types = wp_get_object_terms( get_the_ID(), self::CUSTOM_TAXONOMY_TYPE, array( 'fields' => 'slugs' ) );
576
  $class = array();
577
 
578
  $class[] = 'featured-content-entry-column-'.$columns;
579
+ // add a type- class for each content type
580
+ foreach ( $content_types as $content_type ) {
581
+ $class[] = 'type-' . esc_html( $content_type );
582
  }
583
  if( $columns > 1) {
584
  if ( ( $featured_content_index_number % 2 ) == 0 ) {
597
 
598
 
599
  /**
600
+ * Filter the class applied to content div in the featured_content
601
  *
602
  * @module custom-content-types
603
  *
608
  * @param int $columns number of columns to display the content in.
609
  *
610
  */
611
+ return apply_filters( 'featured-content-content-post-class', implode( " ", $class ) , $featured_content_index_number, $columns );
612
  }
613
 
614
  /**
615
+ * Displays the content type that a content belongs to.
616
  *
617
  * @return html
618
  */
619
+ static function get_content_type( $post_id ) {
620
+ $content_types = get_the_terms( $post_id, self::CUSTOM_TAXONOMY_TYPE );
621
 
622
  // If no types, return empty string
623
+ if ( empty( $content_types ) || is_wp_error( $content_types ) ) {
624
  return;
625
  }
626
 
627
+ $html = '<div class="content-types"><span>' . __( 'Types', 'essential-content-types' ) . ':</span>';
628
  $types = array();
629
  // Loop thorugh all the types
630
+ foreach ( $content_types as $content_type ) {
631
+ $content_type_link = get_term_link( $content_type, self::CUSTOM_TAXONOMY_TYPE );
632
 
633
+ if ( is_wp_error( $content_type_link ) ) {
634
+ return $content_type_link;
635
  }
636
 
637
+ $types[] = '<a href="' . esc_url( $content_type_link ) . '" rel="tag">' . esc_html( $content_type->name ) . '</a>';
638
  }
639
  $html .= ' '.implode( ', ', $types );
640
  $html .= '</div>';
643
  }
644
 
645
  /**
646
+ * Displays the content tags that a content belongs to.
647
  *
648
  * @return html
649
  */
650
+ static function get_content_tags( $post_id ) {
651
+ $content_tags = get_the_terms( $post_id, self::CUSTOM_TAXONOMY_TAG );
652
 
653
  // If no tags, return empty string
654
+ if ( empty( $content_tags ) || is_wp_error( $content_tags ) ) {
655
  return false;
656
  }
657
 
658
+ $html = '<div class="content-tags"><span>' . __( 'Tags', 'essential-content-types' ) . ':</span>';
659
  $tags = array();
660
  // Loop thorugh all the tags
661
+ foreach ( $content_tags as $content_tag ) {
662
+ $content_tag_link = get_term_link( $content_tag, self::CUSTOM_TAXONOMY_TYPE );
663
 
664
+ if ( is_wp_error( $content_tag_link ) ) {
665
+ return $content_tag_link;
666
  }
667
 
668
+ $tags[] = '<a href="' . esc_url( $content_tag_link ) . '" rel="tag">' . esc_html( $content_tag->name ) . '</a>';
669
  }
670
  $html .= ' '. implode( ', ', $tags );
671
  $html .= '</div>';
674
  }
675
 
676
  /**
677
+ * Displays the author of the current featured_content content.
678
  *
679
  * @return html
680
  */
681
+ static function get_content_author() {
682
+ $html = '<div class="content-author">';
683
  /* translators: %1$s is link to author posts, %2$s is author display name */
684
  $html .= sprintf( __( '<span>Author:</span> <a href="%1$s">%2$s</a>', 'essential-content-types' ),
685
  esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
710
  }
711
  }
712
  }
713
+ add_action( 'init', array( 'Essential_Content_Featured_Content', 'init' ) );
 
 
 
 
 
 
 
 
 
 
 
 
admin/css/essential-content-types-admin.css CHANGED
@@ -26,12 +26,12 @@
26
  /*--------------------------------------------------------------
27
  # Typography
28
  --------------------------------------------------------------*/
29
- body,
30
- button,
31
- input,
32
- select,
33
- textarea,
34
- p {
35
  color: #1a1a1a;
36
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
37
  font-size: 16px;
@@ -45,12 +45,12 @@ p {
45
  hyphens: auto;
46
  }
47
 
48
- h1,
49
- h2,
50
- h3,
51
- h4,
52
- h5,
53
- h6 {
54
  clear: both;
55
  font-weight: 700;
56
  line-height: 1.3;
@@ -58,75 +58,71 @@ h6 {
58
  text-rendering: optimizeLegibility;
59
  }
60
 
61
- h1 {
62
  font-size: 24px;
63
  font-size: 1.5rem;
64
  }
65
 
66
- h2 {
67
  font-size: 20px;
68
  font-size: 1.25rem;
69
  }
70
 
71
- h3 {
72
  font-size: 18px;
73
  font-size: 1.125rem;
74
  }
75
 
76
- h4 {
77
  font-size: 16px;
78
  font-size: 1rem;
79
  }
80
 
81
- h5 {
82
  font-size: 14px;
83
  font-size: 0.875rem;
84
  }
85
 
86
- h6 {
87
  font-size: 13px;
88
  font-size: 0.8125rem;
89
  }
90
 
91
- p {
92
  margin: 0 0 1.5em;
93
  }
94
 
95
  /*--------------------------------------------------------------
96
  # Layout
97
  --------------------------------------------------------------*/
98
- html {
99
  -webkit-box-sizing: border-box;
100
  -moz-box-sizing: border-box;
101
  box-sizing: border-box;
102
  }
103
 
104
- *,
105
- *:before,
106
- *:after {
107
  -webkit-box-sizing: inherit;
108
  -moz-box-sizing: inherit;
109
  box-sizing: inherit;
110
  }
111
 
112
- * {
113
  padding: 0;
114
  margin: 0;
115
  }
116
 
117
- body {
118
  background-color: #fff;
119
  }
120
 
121
- #wpcontent {
122
- padding-left: 0;
123
  }
124
 
125
- .container {
126
- padding: 20px;
127
- }
128
-
129
- #dashboard {
130
  max-width: 1220px;
131
  margin: 0 auto;
132
  }
@@ -134,53 +130,53 @@ body {
134
  /*--------------------------------------------------------------
135
  # Clearing
136
  --------------------------------------------------------------*/
137
- .clear:before,
138
- .clear:after {
139
  content: "";
140
  display: table;
141
  }
142
 
143
- .clear:after {
144
  clear: both;
145
  }
146
 
147
  /*--------------------------------------------------------------
148
  # Lists
149
  --------------------------------------------------------------*/
150
- ul,
151
- ol {
152
  margin: 0 0 1.5em 2em;
153
  padding: 0;
154
  }
155
 
156
- li {
157
  margin: 0;
158
  }
159
 
160
- ul {
161
  list-style: disc;
162
  }
163
 
164
- ol {
165
  list-style: decimal;
166
  }
167
 
168
- li > ul,
169
- li > ol {
170
  margin-top: 0.55em;
171
  margin-left: 1.5em;
172
  margin-bottom: 0;
173
  }
174
 
175
- li {
176
  margin-bottom: 0.55em;
177
  }
178
 
179
- dt {
180
  font-weight: 700;
181
  }
182
 
183
- dd {
184
  margin: 0 1.5em 1.5em;
185
  }
186
 
@@ -188,7 +184,7 @@ dd {
188
  /*--------------------------------------------------------------
189
  # Media
190
  --------------------------------------------------------------*/
191
- img {
192
  height: auto; /* Make sure images are scaled correctly. */
193
  max-width: 100%; /* Adhere to container width. */
194
  vertical-align: middle;
@@ -198,32 +194,32 @@ img {
198
  /*--------------------------------------------------------------
199
  # Links
200
  --------------------------------------------------------------*/
201
- a {
202
  color: #0085c3;
203
  cursor: pointer;
204
  text-decoration: none;
205
  }
206
 
207
- a:hover,
208
- a:focus,
209
- a:active {
210
  color: #444;
211
  text-decoration: underline;
212
  }
213
 
214
- a:focus {
215
  outline: thin dotted;
216
  }
217
 
218
- a:hover,
219
- a:active {
220
  outline: 0;
221
  }
222
 
223
  /*--------------------------------------------------------------
224
  # Header
225
  --------------------------------------------------------------*/
226
- #masthead {
227
  background: url("../images/header_1680x394.jpg");
228
  background-attachment: fixed;
229
  background-repeat: no-repeat;
@@ -231,7 +227,7 @@ a:active {
231
  background-position: center;
232
  }
233
 
234
- #masthead .wrapper {
235
  display: -webkit-box;
236
  display: -ms-flexbox;
237
  display: flex;
@@ -239,18 +235,18 @@ a:active {
239
  flex-flow : column wrap;
240
  }
241
 
242
- #plugin-description {
243
  margin: 0 auto;
244
  max-width: 960px;
245
  padding-bottom: 20px;
246
  text-align: center;
247
  }
248
 
249
- #plugin-description p:last-child {
250
  margin-bottom: 0;
251
  }
252
 
253
- #site-branding {
254
  display: block;
255
  order: 1;
256
  padding: 30px 20px;
@@ -258,20 +254,25 @@ a:active {
258
  width: 100%;
259
  }
260
 
261
- .site-title {
262
  font-family: "Trebuchet MS", Helvetica, sans-serif;
263
  text-transform: capitalize;
264
  }
265
 
266
- .site-title a {
267
  color: #0085c3;
268
  }
269
 
270
- .site-title-additional {
 
 
 
 
 
271
  color: #006ea4;
272
  }
273
 
274
- .setting {
275
  padding: 0 7px;
276
  color: #fff;
277
  }
@@ -279,7 +280,7 @@ a:active {
279
  /*--------------------------------------------------------------
280
  # Content
281
  --------------------------------------------------------------*/
282
- .container {
283
  display: -webkit-box;
284
  display: -ms-flexbox;
285
  display: flex;
@@ -290,7 +291,7 @@ a:active {
290
  max-width: 680px;
291
  }
292
 
293
- .module-container {
294
  display: -webkit-box;
295
  display: -ms-flexbox;
296
  display: flex;
@@ -301,7 +302,7 @@ a:active {
301
  justify-content:flex-start;
302
  }
303
 
304
- .module-header {
305
  background-color: #0685c3 ;
306
  cursor: pointer;
307
  display: -webkit-box;
@@ -314,7 +315,7 @@ a:active {
314
  position: relative;
315
  }
316
 
317
- .module-header.active {
318
  background-color: #0685c3;
319
  -webkit-transition: all 0.2s ease;
320
  -moz-transition: all 0.2s ease;
@@ -322,7 +323,7 @@ a:active {
322
  transition: all 0.2s ease;
323
  }
324
 
325
- .module-header.inactive {
326
  background-color:#00618d;
327
  -webkit-transition: all 0.2s ease;
328
  -moz-transition: all 0.2s ease;
@@ -330,15 +331,15 @@ a:active {
330
  transition: all 0.2s ease;
331
  }
332
 
333
- .module-title,
334
- .other-catchthemes-products .module-content {
335
  color: #fff;
336
  font-family: "Trebuchet MS", Helvetica, sans-serif;
337
  font-weight: normal;
338
  text-transform: uppercase;
339
  }
340
 
341
- .catch-modules {
342
  background-color: #f9f9f9;
343
  border-radius: 3px;
344
  border: 2px solid #ccc;
@@ -348,9 +349,10 @@ a:active {
348
  display: flex;
349
  -ms-flex-flow: column wrap;
350
  flex-flow: column wrap;
 
351
  }
352
 
353
- .catch-module-long {
354
  background-color: #f9f9f9;
355
  border-radius: 3px;
356
  border: 2px solid #ccc;
@@ -362,22 +364,22 @@ a:active {
362
  flex-flow:column wrap;
363
  }
364
 
365
- .module-content {
366
  padding: 15px;
367
  }
368
 
369
- .module-content p:last-child {
370
  margin-bottom: 0;
371
  }
372
 
373
- #main-nav .dashicons {
374
  line-height: 2.7;
375
  }
376
 
377
  /*--------------------------------------------------------------
378
  # Toggle Switch
379
  --------------------------------------------------------------*/
380
- .switch {
381
  -webkit-box-flex: 0;
382
  -webkit-flex-grow: 0;
383
  -moz-box-flex: 0;
@@ -391,11 +393,11 @@ a:active {
391
  right: 0;
392
  }
393
 
394
- .module-title.active {
395
  background-color: #0085c3;
396
  }
397
 
398
- .switch label {
399
  background-color: #fff;
400
  border-radius: 11px;
401
  cursor: pointer;
@@ -406,11 +408,11 @@ a:active {
406
  width: 41px;
407
  }
408
 
409
- .switch input[type="checkbox"] {
410
  visibility: hidden;
411
  }
412
 
413
- .switch label:after {
414
  background-color: #00618d;
415
  border-radius: 100%;
416
  content: '';
@@ -425,12 +427,12 @@ a:active {
425
  width: 17px;
426
  }
427
 
428
- .switch input[type="checkbox"]:checked + label:after {
429
  left: 22px;
430
  background-color: #0085c3;
431
  }
432
 
433
- .loader {
434
  border: 5px solid #00618d;
435
  border-radius: 50%;
436
  border-top: 2px solid transparent;
@@ -457,36 +459,37 @@ a:active {
457
  /*--------------------------------------------------------------
458
  # Other Products
459
  --------------------------------------------------------------*/
460
- .other-catchthemes-products {
461
  background-color: #f9f9f9;
462
  clear: both;
463
  display: block;
464
  }
465
- .other-catchthemes-products .module-content {
 
466
  border: none;
467
  padding: 0;
468
  position: relative;
469
  text-align: center;
470
  }
471
 
472
- .other-catchthemes-products .catch-modules {
473
  background-color: #fff;
474
  border: 1px solid #dedede;
475
  }
476
 
477
- .other-catchthemes-products .catch-modules a {
478
  color: #444;
479
  display: block;
480
  padding: 1em;
481
  }
482
 
483
- .other-catchthemes-products .catch-modules a:hover,
484
- .other-catchthemes-products .catch-modules a:focus {
485
  color: #0085c3;
486
  text-decoration: none;
487
  }
488
 
489
- .other-catchthemes-products .catch-modules .more-details {
490
  background-color: #00618d;
491
  color: #fff;
492
  padding: 16px;
@@ -503,47 +506,47 @@ a:active {
503
  transition: opacity 0.1s ease-in-out;
504
  }
505
 
506
- .other-catchthemes-products .module-content:hover .more-details,
507
- .other-catchthemes-products .module-content:focus .more-details {
508
  color: #fff;
509
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
510
  opacity: 1;
511
  text-decoration: none;
512
  }
513
 
514
- .other-catchthemes-products .catch-modules .modules-thumbnail {
515
  padding: 0;
516
  }
517
 
518
  /*--------------------------------------------------------------
519
  # Footer
520
  --------------------------------------------------------------*/
521
- .footer-navigation {
522
  font-family: "Trebuchet MS", Helvetica, sans-serif;
523
  }
524
 
525
- .menu-footer-container {
526
  padding: 10px 20px 30px;
527
  }
528
 
529
- .footer-navigation ul {
530
  list-style: none;
531
  }
532
 
533
- .footer-navigation a {
534
  color: #444;
535
  text-transform: capitalize;
536
  padding: 10px 8px 10px 6px;
537
  display: block;
538
  }
539
 
540
- .footer-navigation a:hover,
541
- .footer-navigation a:focus {
542
  color: #0085c3;
543
  text-decoration: none;
544
  }
545
 
546
- .site-footer .menu-footer {
547
  display: -webkit-box;
548
  display: -ms-flexbox;
549
  display: flex;
@@ -556,14 +559,10 @@ a:active {
556
  margin: 0;
557
  }
558
 
559
- .site-footer .menu-footer li {
560
  margin: 0;
561
  }
562
 
563
- .auto-fold #wpcontent {
564
- padding-left: 0;
565
- }
566
-
567
  /*--------------------------------------------------------------
568
  # Media Queries
569
  --------------------------------------------------------------*/
@@ -572,7 +571,7 @@ a:active {
572
  ## >= 320px
573
  --------------------------------------------------------------*/
574
  @media screen and (min-width: 20em) {
575
- .module-header {
576
  display: -webkit-box;
577
  display: -ms-flexbox;
578
  display: flex;
@@ -583,11 +582,11 @@ a:active {
583
  justify-content: space-between;
584
  }
585
 
586
- .module-title {
587
  margin-bottom: 0;
588
  }
589
 
590
- .switch {
591
  margin-right: 25px;
592
  }
593
  }
@@ -596,12 +595,12 @@ a:active {
596
  ## >= 768px
597
  --------------------------------------------------------------*/
598
  @media screen and (min-width: 48em) {
599
- .container {
600
  padding: 30px;
601
  max-width: 100%;
602
  }
603
 
604
- .module-container {
605
  -ms-flex-flow: row wrap;
606
  flex-flow: row wrap;
607
  -webkit-box-pack: space-between;
@@ -609,19 +608,19 @@ a:active {
609
  justify-content: space-between;
610
  }
611
 
612
- #plugin-description {
613
  padding-bottom: 30px;
614
  }
615
 
616
- .catch-modules {
617
  flex: 0 1 48.5%;
618
  }
619
 
620
- .module-content {
621
  padding: 20px;
622
  }
623
 
624
- .menu-footer-container {
625
  padding: 10px 40px 30px;
626
  }
627
  }
@@ -630,27 +629,27 @@ a:active {
630
  ## >= 1024px
631
  --------------------------------------------------------------*/
632
  @media screen and (min-width: 64em) {
633
- h1 {
634
  font-size: 32px;
635
  font-size: 2rem;
636
  }
637
 
638
- h2 {
639
  font-size: 22px;
640
  font-size: 1.375rem;
641
  }
642
 
643
- #site-branding {
644
  padding: 80px 40px;
645
  }
646
 
647
- .module-container {
648
  -webkit-box-pack: flex-start;
649
  -ms-flex-pack: flex-start;
650
  justify-content: flex-start;
651
  }
652
 
653
- .module-container .wrapper {
654
  display: -webkit-box;
655
  display: -ms-flexbox;
656
  display: flex;
@@ -662,18 +661,18 @@ a:active {
662
  justify-content: flex-start;
663
  }
664
 
665
- .catch-modules {
666
  -ms-flex: 31.33%;
667
  -webkit-flex: 31.33%;
668
  flex: 0 1 31.33%;
669
  margin: 0 1%;
670
  }
671
 
672
- .menu-footer-container {
673
  padding: 25px 40px;
674
  }
675
 
676
- .footer-navigation a {
677
  padding: 10px;
678
  }
679
  }
@@ -682,48 +681,48 @@ a:active {
682
  ## >= 1280px
683
  --------------------------------------------------------------*/
684
  @media screen and (min-width: 80em) {
685
- body,
686
- button,
687
- input,
688
- select,
689
- textarea,
690
- p {
691
  font-size: 18px;
692
  font-size: 1.1875rem;
693
  }
694
 
695
- h1 {
696
  font-size: 48px;
697
  font-size: 3rem;
698
  }
699
 
700
- h2 {
701
  font-size: 24px;
702
  font-size: 1.5rem;
703
  }
704
 
705
- h3 {
706
  font-size: 20px;
707
  font-size: 1.25rem;
708
  }
709
 
710
- .container {
711
  padding: 60px 40px;
712
  }
713
 
714
- #plugin-description {
715
  padding-bottom: 40px;
716
  }
717
 
718
- #site-branding {
719
  padding: 100px 50px;
720
  }
721
 
722
- .module-content {
723
  padding: 25px;
724
  }
725
 
726
- .footer-navigation a {
727
  padding: 10px 10px 10px 13px;
728
  }
729
  }
26
  /*--------------------------------------------------------------
27
  # Typography
28
  --------------------------------------------------------------*/
29
+ .ect-main,
30
+ .ect-main button,
31
+ .ect-main input,
32
+ .ect-main select,
33
+ .ect-main textarea,
34
+ .ect-main p {
35
  color: #1a1a1a;
36
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
37
  font-size: 16px;
45
  hyphens: auto;
46
  }
47
 
48
+ .ect-main h1,
49
+ .ect-main h2,
50
+ .ect-main h3,
51
+ .ect-main h4,
52
+ .ect-main h5,
53
+ .ect-main h6 {
54
  clear: both;
55
  font-weight: 700;
56
  line-height: 1.3;
58
  text-rendering: optimizeLegibility;
59
  }
60
 
61
+ .ect-main h1 {
62
  font-size: 24px;
63
  font-size: 1.5rem;
64
  }
65
 
66
+ .ect-main h2 {
67
  font-size: 20px;
68
  font-size: 1.25rem;
69
  }
70
 
71
+ .ect-main h3 {
72
  font-size: 18px;
73
  font-size: 1.125rem;
74
  }
75
 
76
+ .ect-main h4 {
77
  font-size: 16px;
78
  font-size: 1rem;
79
  }
80
 
81
+ .ect-main h5 {
82
  font-size: 14px;
83
  font-size: 0.875rem;
84
  }
85
 
86
+ .ect-main h6 {
87
  font-size: 13px;
88
  font-size: 0.8125rem;
89
  }
90
 
91
+ .ect-main p {
92
  margin: 0 0 1.5em;
93
  }
94
 
95
  /*--------------------------------------------------------------
96
  # Layout
97
  --------------------------------------------------------------*/
98
+ .ect-main {
99
  -webkit-box-sizing: border-box;
100
  -moz-box-sizing: border-box;
101
  box-sizing: border-box;
102
  }
103
 
104
+ .ect-main *,
105
+ .ect-main *:before,
106
+ .ect-main *:after {
107
  -webkit-box-sizing: inherit;
108
  -moz-box-sizing: inherit;
109
  box-sizing: inherit;
110
  }
111
 
112
+ .ect-main * {
113
  padding: 0;
114
  margin: 0;
115
  }
116
 
117
+ .ect-main {
118
  background-color: #fff;
119
  }
120
 
121
+ .ect-main .container {
122
+ padding: 20px 20px 0;
123
  }
124
 
125
+ .ect-main #dashboard {
 
 
 
 
126
  max-width: 1220px;
127
  margin: 0 auto;
128
  }
130
  /*--------------------------------------------------------------
131
  # Clearing
132
  --------------------------------------------------------------*/
133
+ .ect-main .clear:before,
134
+ .ect-main .clear:after {
135
  content: "";
136
  display: table;
137
  }
138
 
139
+ .ect-main .clear:after {
140
  clear: both;
141
  }
142
 
143
  /*--------------------------------------------------------------
144
  # Lists
145
  --------------------------------------------------------------*/
146
+ .ect-main .ul,
147
+ .ect-main ol {
148
  margin: 0 0 1.5em 2em;
149
  padding: 0;
150
  }
151
 
152
+ .ect-main li {
153
  margin: 0;
154
  }
155
 
156
+ .ect-main ul {
157
  list-style: disc;
158
  }
159
 
160
+ .ect-main ol {
161
  list-style: decimal;
162
  }
163
 
164
+ .ect-main li > ul,
165
+ .ect-main li > ol {
166
  margin-top: 0.55em;
167
  margin-left: 1.5em;
168
  margin-bottom: 0;
169
  }
170
 
171
+ .ect-main li {
172
  margin-bottom: 0.55em;
173
  }
174
 
175
+ .ect-main dt {
176
  font-weight: 700;
177
  }
178
 
179
+ .ect-main dd {
180
  margin: 0 1.5em 1.5em;
181
  }
182
 
184
  /*--------------------------------------------------------------
185
  # Media
186
  --------------------------------------------------------------*/
187
+ .ect-main img {
188
  height: auto; /* Make sure images are scaled correctly. */
189
  max-width: 100%; /* Adhere to container width. */
190
  vertical-align: middle;
194
  /*--------------------------------------------------------------
195
  # Links
196
  --------------------------------------------------------------*/
197
+ .ect-main a {
198
  color: #0085c3;
199
  cursor: pointer;
200
  text-decoration: none;
201
  }
202
 
203
+ .ect-main a:hover,
204
+ .ect-main a:focus,
205
+ .ect-main a:active {
206
  color: #444;
207
  text-decoration: underline;
208
  }
209
 
210
+ .ect-main a:focus {
211
  outline: thin dotted;
212
  }
213
 
214
+ .ect-main a:hover,
215
+ .ect-main a:active {
216
  outline: 0;
217
  }
218
 
219
  /*--------------------------------------------------------------
220
  # Header
221
  --------------------------------------------------------------*/
222
+ .ect-main #masthead {
223
  background: url("../images/header_1680x394.jpg");
224
  background-attachment: fixed;
225
  background-repeat: no-repeat;
227
  background-position: center;
228
  }
229
 
230
+ .ect-main #masthead .wrapper {
231
  display: -webkit-box;
232
  display: -ms-flexbox;
233
  display: flex;
235
  flex-flow : column wrap;
236
  }
237
 
238
+ .ect-main #plugin-description {
239
  margin: 0 auto;
240
  max-width: 960px;
241
  padding-bottom: 20px;
242
  text-align: center;
243
  }
244
 
245
+ .ect-main #plugin-description p:last-child {
246
  margin-bottom: 0;
247
  }
248
 
249
+ .ect-main #site-branding {
250
  display: block;
251
  order: 1;
252
  padding: 30px 20px;
254
  width: 100%;
255
  }
256
 
257
+ .ect-main .site-title {
258
  font-family: "Trebuchet MS", Helvetica, sans-serif;
259
  text-transform: capitalize;
260
  }
261
 
262
+ .ect-main .site-title a {
263
  color: #0085c3;
264
  }
265
 
266
+ .ect-main .site-title a:hover,
267
+ .ect-main .site-title a:focus {
268
+ text-decoration: none;
269
+ }
270
+
271
+ .ect-main .site-title-additional {
272
  color: #006ea4;
273
  }
274
 
275
+ .ect-main .setting {
276
  padding: 0 7px;
277
  color: #fff;
278
  }
280
  /*--------------------------------------------------------------
281
  # Content
282
  --------------------------------------------------------------*/
283
+ .ect-main .container {
284
  display: -webkit-box;
285
  display: -ms-flexbox;
286
  display: flex;
291
  max-width: 680px;
292
  }
293
 
294
+ .ect-main .module-container {
295
  display: -webkit-box;
296
  display: -ms-flexbox;
297
  display: flex;
302
  justify-content:flex-start;
303
  }
304
 
305
+ .ect-main .module-header {
306
  background-color: #0685c3 ;
307
  cursor: pointer;
308
  display: -webkit-box;
315
  position: relative;
316
  }
317
 
318
+ .ect-main .module-header.active {
319
  background-color: #0685c3;
320
  -webkit-transition: all 0.2s ease;
321
  -moz-transition: all 0.2s ease;
323
  transition: all 0.2s ease;
324
  }
325
 
326
+ .ect-main .module-header.inactive {
327
  background-color:#00618d;
328
  -webkit-transition: all 0.2s ease;
329
  -moz-transition: all 0.2s ease;
331
  transition: all 0.2s ease;
332
  }
333
 
334
+ .ect-main .module-title,
335
+ .ect-main .other-catchthemes-products .module-content {
336
  color: #fff;
337
  font-family: "Trebuchet MS", Helvetica, sans-serif;
338
  font-weight: normal;
339
  text-transform: uppercase;
340
  }
341
 
342
+ .ect-main .catch-modules {
343
  background-color: #f9f9f9;
344
  border-radius: 3px;
345
  border: 2px solid #ccc;
349
  display: flex;
350
  -ms-flex-flow: column wrap;
351
  flex-flow: column wrap;
352
+ margin-bottom: 20px;
353
  }
354
 
355
+ .ect-main .catch-module-long {
356
  background-color: #f9f9f9;
357
  border-radius: 3px;
358
  border: 2px solid #ccc;
364
  flex-flow:column wrap;
365
  }
366
 
367
+ .ect-main .module-content {
368
  padding: 15px;
369
  }
370
 
371
+ .ect-main .module-content p:last-child {
372
  margin-bottom: 0;
373
  }
374
 
375
+ .ect-main #main-nav .dashicons {
376
  line-height: 2.7;
377
  }
378
 
379
  /*--------------------------------------------------------------
380
  # Toggle Switch
381
  --------------------------------------------------------------*/
382
+ .ect-main .switch {
383
  -webkit-box-flex: 0;
384
  -webkit-flex-grow: 0;
385
  -moz-box-flex: 0;
393
  right: 0;
394
  }
395
 
396
+ .ect-main .module-title.active {
397
  background-color: #0085c3;
398
  }
399
 
400
+ .ect-main .switch label {
401
  background-color: #fff;
402
  border-radius: 11px;
403
  cursor: pointer;
408
  width: 41px;
409
  }
410
 
411
+ .ect-main .switch input[type="checkbox"] {
412
  visibility: hidden;
413
  }
414
 
415
+ .ect-main .switch label:after {
416
  background-color: #00618d;
417
  border-radius: 100%;
418
  content: '';
427
  width: 17px;
428
  }
429
 
430
+ .ect-main .switch input[type="checkbox"]:checked + label:after {
431
  left: 22px;
432
  background-color: #0085c3;
433
  }
434
 
435
+ .ect-main .loader {
436
  border: 5px solid #00618d;
437
  border-radius: 50%;
438
  border-top: 2px solid transparent;
459
  /*--------------------------------------------------------------
460
  # Other Products
461
  --------------------------------------------------------------*/
462
+ .ect-main .other-catchthemes-products {
463
  background-color: #f9f9f9;
464
  clear: both;
465
  display: block;
466
  }
467
+
468
+ .ect-main .other-catchthemes-products .module-content {
469
  border: none;
470
  padding: 0;
471
  position: relative;
472
  text-align: center;
473
  }
474
 
475
+ .ect-main .other-catchthemes-products .catch-modules {
476
  background-color: #fff;
477
  border: 1px solid #dedede;
478
  }
479
 
480
+ .ect-main .other-catchthemes-products .catch-modules a {
481
  color: #444;
482
  display: block;
483
  padding: 1em;
484
  }
485
 
486
+ .ect-main .other-catchthemes-products .catch-modules a:hover,
487
+ .ect-main .other-catchthemes-products .catch-modules a:focus {
488
  color: #0085c3;
489
  text-decoration: none;
490
  }
491
 
492
+ .ect-main .other-catchthemes-products .catch-modules .more-details {
493
  background-color: #00618d;
494
  color: #fff;
495
  padding: 16px;
506
  transition: opacity 0.1s ease-in-out;
507
  }
508
 
509
+ .ect-main .other-catchthemes-products .module-content:hover .more-details,
510
+ .ect-main .other-catchthemes-products .module-content:focus .more-details {
511
  color: #fff;
512
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
513
  opacity: 1;
514
  text-decoration: none;
515
  }
516
 
517
+ .ect-main .other-catchthemes-products .catch-modules .modules-thumbnail {
518
  padding: 0;
519
  }
520
 
521
  /*--------------------------------------------------------------
522
  # Footer
523
  --------------------------------------------------------------*/
524
+ .ect-main .footer-navigation {
525
  font-family: "Trebuchet MS", Helvetica, sans-serif;
526
  }
527
 
528
+ .ect-main .menu-footer-container {
529
  padding: 10px 20px 30px;
530
  }
531
 
532
+ .ect-main .footer-navigation ul {
533
  list-style: none;
534
  }
535
 
536
+ .ect-main .footer-navigation a {
537
  color: #444;
538
  text-transform: capitalize;
539
  padding: 10px 8px 10px 6px;
540
  display: block;
541
  }
542
 
543
+ .ect-main .footer-navigation a:hover,
544
+ .ect-main .footer-navigation a:focus {
545
  color: #0085c3;
546
  text-decoration: none;
547
  }
548
 
549
+ .ect-main .site-footer .menu-footer {
550
  display: -webkit-box;
551
  display: -ms-flexbox;
552
  display: flex;
559
  margin: 0;
560
  }
561
 
562
+ .ect-main .site-footer .menu-footer li {
563
  margin: 0;
564
  }
565
 
 
 
 
 
566
  /*--------------------------------------------------------------
567
  # Media Queries
568
  --------------------------------------------------------------*/
571
  ## >= 320px
572
  --------------------------------------------------------------*/
573
  @media screen and (min-width: 20em) {
574
+ .ect-main .module-header {
575
  display: -webkit-box;
576
  display: -ms-flexbox;
577
  display: flex;
582
  justify-content: space-between;
583
  }
584
 
585
+ .ect-main .module-title {
586
  margin-bottom: 0;
587
  }
588
 
589
+ .ect-main .switch {
590
  margin-right: 25px;
591
  }
592
  }
595
  ## >= 768px
596
  --------------------------------------------------------------*/
597
  @media screen and (min-width: 48em) {
598
+ .ect-main .container {
599
  padding: 30px;
600
  max-width: 100%;
601
  }
602
 
603
+ .ect-main .module-container {
604
  -ms-flex-flow: row wrap;
605
  flex-flow: row wrap;
606
  -webkit-box-pack: space-between;
608
  justify-content: space-between;
609
  }
610
 
611
+ .ect-main #plugin-description {
612
  padding-bottom: 30px;
613
  }
614
 
615
+ .ect-main .catch-modules {
616
  flex: 0 1 48.5%;
617
  }
618
 
619
+ .ect-main .module-content {
620
  padding: 20px;
621
  }
622
 
623
+ .ect-main .menu-footer-container {
624
  padding: 10px 40px 30px;
625
  }
626
  }
629
  ## >= 1024px
630
  --------------------------------------------------------------*/
631
  @media screen and (min-width: 64em) {
632
+ .ect-main h1 {
633
  font-size: 32px;
634
  font-size: 2rem;
635
  }
636
 
637
+ .ect-main h2 {
638
  font-size: 22px;
639
  font-size: 1.375rem;
640
  }
641
 
642
+ .ect-main #site-branding {
643
  padding: 80px 40px;
644
  }
645
 
646
+ .ect-main .module-container {
647
  -webkit-box-pack: flex-start;
648
  -ms-flex-pack: flex-start;
649
  justify-content: flex-start;
650
  }
651
 
652
+ .ect-main .module-container .wrapper {
653
  display: -webkit-box;
654
  display: -ms-flexbox;
655
  display: flex;
661
  justify-content: flex-start;
662
  }
663
 
664
+ .ect-main .catch-modules {
665
  -ms-flex: 31.33%;
666
  -webkit-flex: 31.33%;
667
  flex: 0 1 31.33%;
668
  margin: 0 1%;
669
  }
670
 
671
+ .ect-main .menu-footer-container {
672
  padding: 25px 40px;
673
  }
674
 
675
+ .ect-main .footer-navigation a {
676
  padding: 10px;
677
  }
678
  }
681
  ## >= 1280px
682
  --------------------------------------------------------------*/
683
  @media screen and (min-width: 80em) {
684
+ .ect-main,
685
+ .ect-main button,
686
+ .ect-main input,
687
+ .ect-main select,
688
+ .ect-main textarea,
689
+ .ect-main p {
690
  font-size: 18px;
691
  font-size: 1.1875rem;
692
  }
693
 
694
+ .ect-main h1 {
695
  font-size: 48px;
696
  font-size: 3rem;
697
  }
698
 
699
+ .ect-main h2 {
700
  font-size: 24px;
701
  font-size: 1.5rem;
702
  }
703
 
704
+ .ect-main h3 {
705
  font-size: 20px;
706
  font-size: 1.25rem;
707
  }
708
 
709
+ .ect-main .container {
710
  padding: 60px 40px;
711
  }
712
 
713
+ .ect-main #plugin-description {
714
  padding-bottom: 40px;
715
  }
716
 
717
+ .ect-main #site-branding {
718
  padding: 100px 50px;
719
  }
720
 
721
+ .ect-main .module-content {
722
  padding: 25px;
723
  }
724
 
725
+ .ect-main .footer-navigation a {
726
  padding: 10px 10px 10px 13px;
727
  }
728
  }
admin/partials/dashboard-display.php CHANGED
@@ -13,7 +13,7 @@
13
  */
14
  ?>
15
 
16
- <div class="wpbody-content" aria-label="Main Content">
17
  <?php
18
  //Add header
19
  require_once plugin_dir_path( dirname( __FILE__ ) ) . '/partials/header.php';
13
  */
14
  ?>
15
 
16
+ <div id="essential-content-types" class="ect-main" aria-label="Main Content">
17
  <?php
18
  //Add header
19
  require_once plugin_dir_path( dirname( __FILE__ ) ) . '/partials/header.php';
admin/partials/header.php CHANGED
@@ -16,7 +16,7 @@
16
  <header id="masthead" class="site-header" role="banner">
17
  <div class="wrapper">
18
  <div id="site-branding">
19
- <h1 class="site-title"><a href="#">ESSENTIAL <span class="site-title-additional">CONTENT TYPES</span></a></h1>
20
  </div>
21
  </div><!-- .wrapper-->
22
  </header> <!-- #masthead -->
16
  <header id="masthead" class="site-header" role="banner">
17
  <div class="wrapper">
18
  <div id="site-branding">
19
+ <h1 class="site-title"><a href="https://catchthemes.com/wp-plugins/essential-content-types" target="_blank">ESSENTIAL <span class="site-title-additional">CONTENT TYPES</span></a></h1>
20
  </div>
21
  </div><!-- .wrapper-->
22
  </header> <!-- #masthead -->
essential-content-types.php CHANGED
@@ -16,7 +16,7 @@
16
  * Plugin Name: Essential Content Types
17
  * Plugin URI: https://catchthemes.com/wp-plugins/essential-content-types/
18
  * Description: Essential Content Types allows you to feature the impressive content through different content/post types on your website just the way you want it. These content/post types are missed by the themes in WordPress Theme Directory as the feature falls more towards the plugins’ territory.
19
- * Version: 1.0.0
20
  * Author: Catch Themes
21
  * Author URI: https://catchthemes.com
22
  * License: GPL-3.0+
16
  * Plugin Name: Essential Content Types
17
  * Plugin URI: https://catchthemes.com/wp-plugins/essential-content-types/
18
  * Description: Essential Content Types allows you to feature the impressive content through different content/post types on your website just the way you want it. These content/post types are missed by the themes in WordPress Theme Directory as the feature falls more towards the plugins’ territory.
19
+ * Version: 1.0.1
20
  * Author: Catch Themes
21
  * Author URI: https://catchthemes.com
22
  * License: GPL-3.0+
languages/essential-content-types.pot CHANGED
@@ -5,7 +5,7 @@ msgid ""
5
  msgstr ""
6
  "Project-Id-Version: Essential Content Types\n"
7
  "Report-Msgid-Bugs-To: https://wordpress.org/tags/_s\n"
8
- "POT-Creation-Date: 2017-04-20 09:18+0545\n"
9
  "PO-Revision-Date: 2016-12-07 23:04-0500\n"
10
  "Last-Translator: Sakin Shrestha <info@catchthemes.com>\n"
11
  "Language-Team: Catch Themes <info@catchthemes.com>\n"
@@ -34,301 +34,281 @@ msgstr ""
34
  msgid "Connection Error. Please try again."
35
  msgstr ""
36
 
37
- #: ../admin/class-featured-content.php:97
38
- #: ../admin/class-featured-content.php:230
39
- msgid "Featured Contents"
40
- msgstr ""
41
-
42
- #: ../admin/class-featured-content.php:126 ../admin/class-portfolio.php:126
43
- #, php-format
44
- msgid "Your theme supports <strong>%s</strong>"
45
- msgstr ""
46
-
47
- #: ../admin/class-featured-content.php:130
48
- msgid "Enable Featured Contents for this site."
49
- msgstr ""
50
-
51
- #: ../admin/class-featured-content.php:131 ../admin/class-portfolio.php:131
52
- #: ../admin/class-testimonial.php:153
53
- msgid "Learn More"
54
- msgstr ""
55
-
56
- #: ../admin/class-featured-content.php:138
57
- #, php-format
58
- msgid "Featured Content pages display at most %1$s projects"
59
  msgstr ""
60
 
61
- #: ../admin/class-featured-content.php:228
62
- msgid "Featured Content Items"
63
  msgstr ""
64
 
65
- #: ../admin/class-featured-content.php:231
66
- #: ../admin/class-featured-content.php:232
67
- #: ../admin/class-featured-content.php:404
68
  #: ../admin/partials/dashboard-display.php:80
69
  msgid "Featured Content"
70
  msgstr ""
71
 
72
- #: ../admin/class-featured-content.php:233
73
  msgid "All Contents"
74
  msgstr ""
75
 
76
- #: ../admin/class-featured-content.php:234 ../admin/class-portfolio.php:234
77
  #: ../admin/class-testimonial.php:267
78
  msgid "Add New"
79
  msgstr ""
80
 
81
- #: ../admin/class-featured-content.php:235
82
  msgid "Add New Content"
83
  msgstr ""
84
 
85
- #: ../admin/class-featured-content.php:236
86
  msgid "Edit Content"
87
  msgstr ""
88
 
89
- #: ../admin/class-featured-content.php:237
90
  msgid "New Content"
91
  msgstr ""
92
 
93
- #: ../admin/class-featured-content.php:238
94
  msgid "View Content"
95
  msgstr ""
96
 
97
- #: ../admin/class-featured-content.php:239
98
  msgid "Search Contents"
99
  msgstr ""
100
 
101
- #: ../admin/class-featured-content.php:240
102
  msgid "No Contents found"
103
  msgstr ""
104
 
105
- #: ../admin/class-featured-content.php:241
106
  msgid "No Contents found in Trash"
107
  msgstr ""
108
 
109
- #: ../admin/class-featured-content.php:242 ../admin/class-portfolio.php:242
110
- msgid "Filter projects list"
111
  msgstr ""
112
 
113
- #: ../admin/class-featured-content.php:243
114
  msgid "Content list navigation"
115
  msgstr ""
116
 
117
- #: ../admin/class-featured-content.php:244
118
  msgid "Contents list"
119
  msgstr ""
120
 
121
- #: ../admin/class-featured-content.php:274
122
- #: ../admin/class-featured-content.php:276
123
  msgid "Content Types"
124
  msgstr ""
125
 
126
- #: ../admin/class-featured-content.php:275
127
  msgid "Content Type"
128
  msgstr ""
129
 
130
- #: ../admin/class-featured-content.php:277
131
  msgid "All Content Types"
132
  msgstr ""
133
 
134
- #: ../admin/class-featured-content.php:278
135
  msgid "Edit Content Type"
136
  msgstr ""
137
 
138
- #: ../admin/class-featured-content.php:279
139
  msgid "View Content Type"
140
  msgstr ""
141
 
142
- #: ../admin/class-featured-content.php:280
143
  msgid "Update Content Type"
144
  msgstr ""
145
 
146
- #: ../admin/class-featured-content.php:281
147
  msgid "Add New Content Type"
148
  msgstr ""
149
 
150
- #: ../admin/class-featured-content.php:282
151
  msgid "New Content Type Name"
152
  msgstr ""
153
 
154
- #: ../admin/class-featured-content.php:283
155
  msgid "Parent Content Type"
156
  msgstr ""
157
 
158
- #: ../admin/class-featured-content.php:284
159
  msgid "Parent Content Type:"
160
  msgstr ""
161
 
162
- #: ../admin/class-featured-content.php:285
163
  msgid "Search Content Types"
164
  msgstr ""
165
 
166
- #: ../admin/class-featured-content.php:286
167
  msgid "Content type list navigation"
168
  msgstr ""
169
 
170
- #: ../admin/class-featured-content.php:287
171
  msgid "Content type list"
172
  msgstr ""
173
 
174
- #: ../admin/class-featured-content.php:301
175
- #: ../admin/class-featured-content.php:303
176
  msgid "Content Tags"
177
  msgstr ""
178
 
179
- #: ../admin/class-featured-content.php:302
180
  msgid "Content Tag"
181
  msgstr ""
182
 
183
- #: ../admin/class-featured-content.php:304
184
  msgid "All Content Tags"
185
  msgstr ""
186
 
187
- #: ../admin/class-featured-content.php:305
188
  msgid "Edit Content Tag"
189
  msgstr ""
190
 
191
- #: ../admin/class-featured-content.php:306
192
  msgid "View Content Tag"
193
  msgstr ""
194
 
195
- #: ../admin/class-featured-content.php:307
196
  msgid "Update Content Tag"
197
  msgstr ""
198
 
199
- #: ../admin/class-featured-content.php:308
200
  msgid "Add New Content Tag"
201
  msgstr ""
202
 
203
- #: ../admin/class-featured-content.php:309
204
  msgid "New Content Tag Name"
205
  msgstr ""
206
 
207
- #: ../admin/class-featured-content.php:310
208
  msgid "Search Content Tags"
209
  msgstr ""
210
 
211
- #: ../admin/class-featured-content.php:311
212
  msgid "Popular Content Tags"
213
  msgstr ""
214
 
215
- #: ../admin/class-featured-content.php:312 ../admin/class-portfolio.php:313
216
  msgid "Separate tags with commas"
217
  msgstr ""
218
 
219
- #: ../admin/class-featured-content.php:313 ../admin/class-portfolio.php:314
220
  msgid "Add or remove tags"
221
  msgstr ""
222
 
223
- #: ../admin/class-featured-content.php:314 ../admin/class-portfolio.php:315
224
  msgid "Choose from the most used tags"
225
  msgstr ""
226
 
227
- #: ../admin/class-featured-content.php:315 ../admin/class-portfolio.php:316
228
  msgid "No tags found."
229
  msgstr ""
230
 
231
- #: ../admin/class-featured-content.php:316
232
  msgid "Content tag list navigation"
233
  msgstr ""
234
 
235
- #: ../admin/class-featured-content.php:317
236
  msgid "Content tag list"
237
  msgstr ""
238
 
239
- #: ../admin/class-featured-content.php:337
240
  #, php-format
241
  msgid "Content updated. <a href=\"%s\">View item</a>"
242
  msgstr ""
243
 
244
- #: ../admin/class-featured-content.php:338 ../admin/class-portfolio.php:339
245
  #: ../admin/class-testimonial.php:313
246
  msgid "Custom field updated."
247
  msgstr ""
248
 
249
- #: ../admin/class-featured-content.php:339 ../admin/class-portfolio.php:340
250
  #: ../admin/class-testimonial.php:314
251
  msgid "Custom field deleted."
252
  msgstr ""
253
 
254
- #: ../admin/class-featured-content.php:340
255
  msgid "Content updated."
256
  msgstr ""
257
 
258
- #: ../admin/class-featured-content.php:342
259
  #, php-format
260
  msgid "Content restored to revision from %s"
261
  msgstr ""
262
 
263
- #: ../admin/class-featured-content.php:343
264
  #, php-format
265
- msgid "Content published. <a href=\"%s\">View project</a>"
266
  msgstr ""
267
 
268
- #: ../admin/class-featured-content.php:344
269
  msgid "Content saved."
270
  msgstr ""
271
 
272
- #: ../admin/class-featured-content.php:345
273
  #, php-format
274
  msgid ""
275
- "Content submitted. <a target=\"_blank\" href=\"%s\">Preview project</a>"
276
  msgstr ""
277
 
278
- #: ../admin/class-featured-content.php:346
279
  #, php-format
280
  msgid ""
281
  "Content scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href="
282
- "\"%2$s\">Preview project</a>"
283
  msgstr ""
284
 
285
- #: ../admin/class-featured-content.php:348 ../admin/class-portfolio.php:349
286
  #: ../admin/class-testimonial.php:323
287
  msgid "M j, Y @ G:i"
288
  msgstr ""
289
 
290
- #: ../admin/class-featured-content.php:349
291
  #, php-format
292
  msgid ""
293
  "Content item draft updated. <a target=\"_blank\" href=\"%s\">Preview "
294
- "project</a>"
295
  msgstr ""
296
 
297
- #: ../admin/class-featured-content.php:361
298
  msgid "Content"
299
  msgstr ""
300
 
301
- #: ../admin/class-featured-content.php:411
302
  msgid "Contents"
303
  msgstr ""
304
 
305
- #: ../admin/class-featured-content.php:419
306
  msgid "Featured Content Archive Title"
307
  msgstr ""
308
 
309
- #: ../admin/class-featured-content.php:434
310
  msgid "Featured Content Archive Content"
311
  msgstr ""
312
 
313
- #: ../admin/class-featured-content.php:450
314
  msgid "Featured Content Archive Featured Image"
315
  msgstr ""
316
 
317
- #: ../admin/class-featured-content.php:695
318
  msgid ""
319
  "Your Featured Content Archive currently has no entries. You can start "
320
  "creating them on your dashboard."
321
  msgstr ""
322
 
323
- #: ../admin/class-featured-content.php:767 ../admin/class-portfolio.php:761
324
  msgid "Types"
325
  msgstr ""
326
 
327
- #: ../admin/class-featured-content.php:798 ../admin/class-portfolio.php:792
328
  msgid "Tags"
329
  msgstr ""
330
 
331
- #: ../admin/class-featured-content.php:824 ../admin/class-portfolio.php:818
332
  #, php-format
333
  msgid "<span>Author:</span> <a href=\"%1$s\">%2$s</a>"
334
  msgstr ""
@@ -337,10 +317,19 @@ msgstr ""
337
  msgid "Portfolio Projects"
338
  msgstr ""
339
 
 
 
 
 
 
340
  #: ../admin/class-portfolio.php:130
341
  msgid "Enable Portfolio Projects for this site."
342
  msgstr ""
343
 
 
 
 
 
344
  #: ../admin/class-portfolio.php:138
345
  #, php-format
346
  msgid "Portfolio pages display at most %1$s projects"
@@ -394,6 +383,10 @@ msgstr ""
394
  msgid "No Projects found in Trash"
395
  msgstr ""
396
 
 
 
 
 
397
  #: ../admin/class-portfolio.php:243
398
  msgid "Project list navigation"
399
  msgstr ""
5
  msgstr ""
6
  "Project-Id-Version: Essential Content Types\n"
7
  "Report-Msgid-Bugs-To: https://wordpress.org/tags/_s\n"
8
+ "POT-Creation-Date: 2017-04-20 15:24+0545\n"
9
  "PO-Revision-Date: 2016-12-07 23:04-0500\n"
10
  "Last-Translator: Sakin Shrestha <info@catchthemes.com>\n"
11
  "Language-Team: Catch Themes <info@catchthemes.com>\n"
34
  msgid "Connection Error. Please try again."
35
  msgstr ""
36
 
37
+ #: ../admin/class-featured-content.php:101
38
+ msgid "Featured Content Items"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  msgstr ""
40
 
41
+ #: ../admin/class-featured-content.php:103
42
+ msgid "Featured Contents"
43
  msgstr ""
44
 
45
+ #: ../admin/class-featured-content.php:104
46
+ #: ../admin/class-featured-content.php:105
47
+ #: ../admin/class-featured-content.php:271
48
  #: ../admin/partials/dashboard-display.php:80
49
  msgid "Featured Content"
50
  msgstr ""
51
 
52
+ #: ../admin/class-featured-content.php:106
53
  msgid "All Contents"
54
  msgstr ""
55
 
56
+ #: ../admin/class-featured-content.php:107 ../admin/class-portfolio.php:234
57
  #: ../admin/class-testimonial.php:267
58
  msgid "Add New"
59
  msgstr ""
60
 
61
+ #: ../admin/class-featured-content.php:108
62
  msgid "Add New Content"
63
  msgstr ""
64
 
65
+ #: ../admin/class-featured-content.php:109
66
  msgid "Edit Content"
67
  msgstr ""
68
 
69
+ #: ../admin/class-featured-content.php:110
70
  msgid "New Content"
71
  msgstr ""
72
 
73
+ #: ../admin/class-featured-content.php:111
74
  msgid "View Content"
75
  msgstr ""
76
 
77
+ #: ../admin/class-featured-content.php:112
78
  msgid "Search Contents"
79
  msgstr ""
80
 
81
+ #: ../admin/class-featured-content.php:113
82
  msgid "No Contents found"
83
  msgstr ""
84
 
85
+ #: ../admin/class-featured-content.php:114
86
  msgid "No Contents found in Trash"
87
  msgstr ""
88
 
89
+ #: ../admin/class-featured-content.php:115
90
+ msgid "Filter contents list"
91
  msgstr ""
92
 
93
+ #: ../admin/class-featured-content.php:116
94
  msgid "Content list navigation"
95
  msgstr ""
96
 
97
+ #: ../admin/class-featured-content.php:117
98
  msgid "Contents list"
99
  msgstr ""
100
 
101
+ #: ../admin/class-featured-content.php:147
102
+ #: ../admin/class-featured-content.php:149
103
  msgid "Content Types"
104
  msgstr ""
105
 
106
+ #: ../admin/class-featured-content.php:148
107
  msgid "Content Type"
108
  msgstr ""
109
 
110
+ #: ../admin/class-featured-content.php:150
111
  msgid "All Content Types"
112
  msgstr ""
113
 
114
+ #: ../admin/class-featured-content.php:151
115
  msgid "Edit Content Type"
116
  msgstr ""
117
 
118
+ #: ../admin/class-featured-content.php:152
119
  msgid "View Content Type"
120
  msgstr ""
121
 
122
+ #: ../admin/class-featured-content.php:153
123
  msgid "Update Content Type"
124
  msgstr ""
125
 
126
+ #: ../admin/class-featured-content.php:154
127
  msgid "Add New Content Type"
128
  msgstr ""
129
 
130
+ #: ../admin/class-featured-content.php:155
131
  msgid "New Content Type Name"
132
  msgstr ""
133
 
134
+ #: ../admin/class-featured-content.php:156
135
  msgid "Parent Content Type"
136
  msgstr ""
137
 
138
+ #: ../admin/class-featured-content.php:157
139
  msgid "Parent Content Type:"
140
  msgstr ""
141
 
142
+ #: ../admin/class-featured-content.php:158
143
  msgid "Search Content Types"
144
  msgstr ""
145
 
146
+ #: ../admin/class-featured-content.php:159
147
  msgid "Content type list navigation"
148
  msgstr ""
149
 
150
+ #: ../admin/class-featured-content.php:160
151
  msgid "Content type list"
152
  msgstr ""
153
 
154
+ #: ../admin/class-featured-content.php:174
155
+ #: ../admin/class-featured-content.php:176
156
  msgid "Content Tags"
157
  msgstr ""
158
 
159
+ #: ../admin/class-featured-content.php:175
160
  msgid "Content Tag"
161
  msgstr ""
162
 
163
+ #: ../admin/class-featured-content.php:177
164
  msgid "All Content Tags"
165
  msgstr ""
166
 
167
+ #: ../admin/class-featured-content.php:178
168
  msgid "Edit Content Tag"
169
  msgstr ""
170
 
171
+ #: ../admin/class-featured-content.php:179
172
  msgid "View Content Tag"
173
  msgstr ""
174
 
175
+ #: ../admin/class-featured-content.php:180
176
  msgid "Update Content Tag"
177
  msgstr ""
178
 
179
+ #: ../admin/class-featured-content.php:181
180
  msgid "Add New Content Tag"
181
  msgstr ""
182
 
183
+ #: ../admin/class-featured-content.php:182
184
  msgid "New Content Tag Name"
185
  msgstr ""
186
 
187
+ #: ../admin/class-featured-content.php:183
188
  msgid "Search Content Tags"
189
  msgstr ""
190
 
191
+ #: ../admin/class-featured-content.php:184
192
  msgid "Popular Content Tags"
193
  msgstr ""
194
 
195
+ #: ../admin/class-featured-content.php:185 ../admin/class-portfolio.php:313
196
  msgid "Separate tags with commas"
197
  msgstr ""
198
 
199
+ #: ../admin/class-featured-content.php:186 ../admin/class-portfolio.php:314
200
  msgid "Add or remove tags"
201
  msgstr ""
202
 
203
+ #: ../admin/class-featured-content.php:187 ../admin/class-portfolio.php:315
204
  msgid "Choose from the most used tags"
205
  msgstr ""
206
 
207
+ #: ../admin/class-featured-content.php:188 ../admin/class-portfolio.php:316
208
  msgid "No tags found."
209
  msgstr ""
210
 
211
+ #: ../admin/class-featured-content.php:189
212
  msgid "Content tag list navigation"
213
  msgstr ""
214
 
215
+ #: ../admin/class-featured-content.php:190
216
  msgid "Content tag list"
217
  msgstr ""
218
 
219
+ #: ../admin/class-featured-content.php:210
220
  #, php-format
221
  msgid "Content updated. <a href=\"%s\">View item</a>"
222
  msgstr ""
223
 
224
+ #: ../admin/class-featured-content.php:211 ../admin/class-portfolio.php:339
225
  #: ../admin/class-testimonial.php:313
226
  msgid "Custom field updated."
227
  msgstr ""
228
 
229
+ #: ../admin/class-featured-content.php:212 ../admin/class-portfolio.php:340
230
  #: ../admin/class-testimonial.php:314
231
  msgid "Custom field deleted."
232
  msgstr ""
233
 
234
+ #: ../admin/class-featured-content.php:213
235
  msgid "Content updated."
236
  msgstr ""
237
 
238
+ #: ../admin/class-featured-content.php:215
239
  #, php-format
240
  msgid "Content restored to revision from %s"
241
  msgstr ""
242
 
243
+ #: ../admin/class-featured-content.php:216
244
  #, php-format
245
+ msgid "Content published. <a href=\"%s\">View content</a>"
246
  msgstr ""
247
 
248
+ #: ../admin/class-featured-content.php:217
249
  msgid "Content saved."
250
  msgstr ""
251
 
252
+ #: ../admin/class-featured-content.php:218
253
  #, php-format
254
  msgid ""
255
+ "Content submitted. <a target=\"_blank\" href=\"%s\">Preview content</a>"
256
  msgstr ""
257
 
258
+ #: ../admin/class-featured-content.php:219
259
  #, php-format
260
  msgid ""
261
  "Content scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href="
262
+ "\"%2$s\">Preview content</a>"
263
  msgstr ""
264
 
265
+ #: ../admin/class-featured-content.php:221 ../admin/class-portfolio.php:349
266
  #: ../admin/class-testimonial.php:323
267
  msgid "M j, Y @ G:i"
268
  msgstr ""
269
 
270
+ #: ../admin/class-featured-content.php:222
271
  #, php-format
272
  msgid ""
273
  "Content item draft updated. <a target=\"_blank\" href=\"%s\">Preview "
274
+ "content</a>"
275
  msgstr ""
276
 
277
+ #: ../admin/class-featured-content.php:234
278
  msgid "Content"
279
  msgstr ""
280
 
281
+ #: ../admin/class-featured-content.php:276
282
  msgid "Contents"
283
  msgstr ""
284
 
285
+ #: ../admin/class-featured-content.php:284
286
  msgid "Featured Content Archive Title"
287
  msgstr ""
288
 
289
+ #: ../admin/class-featured-content.php:297
290
  msgid "Featured Content Archive Content"
291
  msgstr ""
292
 
293
+ #: ../admin/class-featured-content.php:311
294
  msgid "Featured Content Archive Featured Image"
295
  msgstr ""
296
 
297
+ #: ../admin/class-featured-content.php:555
298
  msgid ""
299
  "Your Featured Content Archive currently has no entries. You can start "
300
  "creating them on your dashboard."
301
  msgstr ""
302
 
303
+ #: ../admin/class-featured-content.php:627 ../admin/class-portfolio.php:761
304
  msgid "Types"
305
  msgstr ""
306
 
307
+ #: ../admin/class-featured-content.php:658 ../admin/class-portfolio.php:792
308
  msgid "Tags"
309
  msgstr ""
310
 
311
+ #: ../admin/class-featured-content.php:684 ../admin/class-portfolio.php:818
312
  #, php-format
313
  msgid "<span>Author:</span> <a href=\"%1$s\">%2$s</a>"
314
  msgstr ""
317
  msgid "Portfolio Projects"
318
  msgstr ""
319
 
320
+ #: ../admin/class-portfolio.php:126
321
+ #, php-format
322
+ msgid "Your theme supports <strong>%s</strong>"
323
+ msgstr ""
324
+
325
  #: ../admin/class-portfolio.php:130
326
  msgid "Enable Portfolio Projects for this site."
327
  msgstr ""
328
 
329
+ #: ../admin/class-portfolio.php:131 ../admin/class-testimonial.php:153
330
+ msgid "Learn More"
331
+ msgstr ""
332
+
333
  #: ../admin/class-portfolio.php:138
334
  #, php-format
335
  msgid "Portfolio pages display at most %1$s projects"
383
  msgid "No Projects found in Trash"
384
  msgstr ""
385
 
386
+ #: ../admin/class-portfolio.php:242
387
+ msgid "Filter projects list"
388
+ msgstr ""
389
+
390
  #: ../admin/class-portfolio.php:243
391
  msgid "Project list navigation"
392
  msgstr ""