Taxonomy Images - Version 0.9.1

Version Description

Fixes media modal not opening on newly created terms.

Download this release

Release Info

Developer husobj
Plugin Icon 128x128 Taxonomy Images
Version 0.9.1
Comparing to
See all releases

Code changes from version 0.9 to 0.9.1

Files changed (7) hide show
  1. code-snippets.php +12 -14
  2. deprecated.php +27 -20
  3. js/media-modal.js +2 -2
  4. public-filters.php +23 -23
  5. readme.md +8 -1
  6. readme.txt +12 -4
  7. taxonomy-images.php +112 -84
code-snippets.php CHANGED
@@ -15,20 +15,20 @@ exit;
15
 
16
 
17
 
18
- /*
19
  * Append the term images to content + excerpt.
20
  */
21
  function taxonomy_images_test_theme_append_the_term_images( $content ) {
22
  return $content . apply_filters( 'taxonomy-images-list-the-terms', '', array(
23
  'image_size' => 'detail',
24
- ) );
25
  }
26
  add_filter( 'the_content', 'taxonomy_images_test_theme_append_the_term_images' );
27
  add_filter( 'the_excerpt', 'taxonomy_images_test_theme_append_the_term_images' );
28
 
29
 
30
 
31
- /*
32
  * Queried Term Image.
33
  *
34
  * Return html markup representing the image associated with the
@@ -48,7 +48,7 @@ print '<pre>' . htmlentities( $img ) . '</pre>';
48
 
49
  /* Inside a yellow box */
50
  $img = apply_filters( 'taxonomy-images-queried-term-image', 'PLEASE INSTALL PLUGIN', array(
51
- 'before' => '<div style="padding:20px;background-color:yellow;">',
52
  'after' => '</div>',
53
  ) );
54
  print '<h2>taxonomy-images-queried-term-image - custom wrapper element.</h2>';
@@ -58,7 +58,7 @@ print '<pre>' . htmlentities( $img ) . '</pre>';
58
  /* Medium Size */
59
  $img = apply_filters( 'taxonomy-images-queried-term-image', 'PLEASE INSTALL PLUGIN', array(
60
  'image_size' => 'medium',
61
- ) );
62
  print '<h2>taxonomy-images-queried-term-image - medium image size</h2>';
63
  print '<pre>' . htmlentities( $img ) . '</pre>';
64
 
@@ -66,7 +66,7 @@ print '<pre>' . htmlentities( $img ) . '</pre>';
66
  /* Unrecognized size */
67
  $img = apply_filters( 'taxonomy-images-queried-term-image', 'PLEASE INSTALL PLUGIN', array(
68
  'image_size' => 'this-is-probably-not-a-real-image-size',
69
- ) );
70
  print '<h2>taxonomy-images-queried-term-image - unknown image size</h2>';
71
  print '<pre>' . htmlentities( $img ) . '</pre>';
72
 
@@ -78,14 +78,14 @@ $img = apply_filters( 'taxonomy-images-queried-term-image', 'PLEASE INSTALL PLUG
78
  'class' => 'my-class-list bunnies turtles',
79
  'src' => 'this-is-where-the-image-lives.png',
80
  'title' => 'Custom Title',
81
- ),
82
- ) );
83
  print '<h2>taxonomy-images-queried-term-image - custom attributes</h2>';
84
  print '<pre>' . htmlentities( $img ) . '</pre>';
85
 
86
 
87
 
88
- /*
89
  * Queried Term Image ID.
90
  *
91
  * Return the id of the image associated with the currently
@@ -96,14 +96,13 @@ print '<pre>' . htmlentities( $img ) . '</pre>';
96
  * apply_filters() will return it's second parameter.
97
  */
98
  $img = apply_filters( 'taxonomy-images-queried-term-image-id', 'PLEASE INSTALL PLUGIN' );
99
-
100
  print '<h2>taxonomy-images-queried-term-image-id</h2>';
101
  print '<pre>'; var_dump( $img ); print '</pre>';
102
 
103
 
104
 
105
 
106
- /*
107
  * Queried Term Image Object.
108
  *
109
  * Return an object representing the image associated with the
@@ -114,14 +113,13 @@ print '<pre>'; var_dump( $img ); print '</pre>';
114
  * apply_filters() will return it's second parameter.
115
  */
116
  $img = apply_filters( 'taxonomy-images-queried-term-image-object', 'PLEASE INSTALL PLUGIN' );
117
-
118
  print '<h2>taxonomy-images-queried-term-image-object</h2>';
119
  print '<pre>'; var_dump( $img ); print '</pre>';
120
 
121
 
122
 
123
 
124
- /*
125
  * Queried Term Image URL.
126
  *
127
  * Return a url to the image associated with the current queried
@@ -157,7 +155,7 @@ print '<pre>'; var_dump( $img ); print '</pre>';
157
 
158
 
159
 
160
- /*
161
  * Queried Term Image Data.
162
  *
163
  * Return an array of data about the image associated with the current
15
 
16
 
17
 
18
+ /**
19
  * Append the term images to content + excerpt.
20
  */
21
  function taxonomy_images_test_theme_append_the_term_images( $content ) {
22
  return $content . apply_filters( 'taxonomy-images-list-the-terms', '', array(
23
  'image_size' => 'detail',
24
+ ) );
25
  }
26
  add_filter( 'the_content', 'taxonomy_images_test_theme_append_the_term_images' );
27
  add_filter( 'the_excerpt', 'taxonomy_images_test_theme_append_the_term_images' );
28
 
29
 
30
 
31
+ /**
32
  * Queried Term Image.
33
  *
34
  * Return html markup representing the image associated with the
48
 
49
  /* Inside a yellow box */
50
  $img = apply_filters( 'taxonomy-images-queried-term-image', 'PLEASE INSTALL PLUGIN', array(
51
+ 'before' => '<div style="padding: 20px; background-color: yellow;">',
52
  'after' => '</div>',
53
  ) );
54
  print '<h2>taxonomy-images-queried-term-image - custom wrapper element.</h2>';
58
  /* Medium Size */
59
  $img = apply_filters( 'taxonomy-images-queried-term-image', 'PLEASE INSTALL PLUGIN', array(
60
  'image_size' => 'medium',
61
+ ) );
62
  print '<h2>taxonomy-images-queried-term-image - medium image size</h2>';
63
  print '<pre>' . htmlentities( $img ) . '</pre>';
64
 
66
  /* Unrecognized size */
67
  $img = apply_filters( 'taxonomy-images-queried-term-image', 'PLEASE INSTALL PLUGIN', array(
68
  'image_size' => 'this-is-probably-not-a-real-image-size',
69
+ ) );
70
  print '<h2>taxonomy-images-queried-term-image - unknown image size</h2>';
71
  print '<pre>' . htmlentities( $img ) . '</pre>';
72
 
78
  'class' => 'my-class-list bunnies turtles',
79
  'src' => 'this-is-where-the-image-lives.png',
80
  'title' => 'Custom Title',
81
+ ),
82
+ ) );
83
  print '<h2>taxonomy-images-queried-term-image - custom attributes</h2>';
84
  print '<pre>' . htmlentities( $img ) . '</pre>';
85
 
86
 
87
 
88
+ /**
89
  * Queried Term Image ID.
90
  *
91
  * Return the id of the image associated with the currently
96
  * apply_filters() will return it's second parameter.
97
  */
98
  $img = apply_filters( 'taxonomy-images-queried-term-image-id', 'PLEASE INSTALL PLUGIN' );
 
99
  print '<h2>taxonomy-images-queried-term-image-id</h2>';
100
  print '<pre>'; var_dump( $img ); print '</pre>';
101
 
102
 
103
 
104
 
105
+ /**
106
  * Queried Term Image Object.
107
  *
108
  * Return an object representing the image associated with the
113
  * apply_filters() will return it's second parameter.
114
  */
115
  $img = apply_filters( 'taxonomy-images-queried-term-image-object', 'PLEASE INSTALL PLUGIN' );
 
116
  print '<h2>taxonomy-images-queried-term-image-object</h2>';
117
  print '<pre>'; var_dump( $img ); print '</pre>';
118
 
119
 
120
 
121
 
122
+ /**
123
  * Queried Term Image URL.
124
  *
125
  * Return a url to the image associated with the current queried
155
 
156
 
157
 
158
+ /**
159
  * Queried Term Image Data.
160
  *
161
  * Return an array of data about the image associated with the current
deprecated.php CHANGED
@@ -3,23 +3,25 @@
3
  /**
4
  * Deprecated Shortcode.
5
  *
6
- * @return void
7
- * @access private
 
 
8
  */
9
- function taxonomy_images_plugin_shortcode_deprecated( $atts = array() ) { // DEPRECATED
10
  $o = '';
11
  $defaults = array(
12
  'taxonomy' => 'category',
13
  'size' => 'detail',
14
  'template' => 'list'
15
- );
16
 
17
  extract( shortcode_atts( $defaults, $atts ) );
18
 
19
  /* No taxonomy defined return an html comment. */
20
  if ( ! taxonomy_exists( $taxonomy ) ) {
21
  $tax = strip_tags( trim( $taxonomy ) );
22
- return '<!-- taxonomy_image_plugin error: Taxonomy "' . $taxonomy . '" is not defined.-->';
23
  }
24
 
25
  $terms = get_terms( $taxonomy );
@@ -34,20 +36,19 @@ function taxonomy_images_plugin_shortcode_deprecated( $atts = array() ) { // DEP
34
 
35
  $img = '';
36
  if ( array_key_exists( $term->term_taxonomy_id, $associations ) ) {
37
- $img = wp_get_attachment_image( $associations[$term->term_taxonomy_id], 'detail', false );
38
  }
39
 
40
- if( $template === 'grid' ) {
41
- $o.= "\n\t" . '<div class="taxonomy_image_plugin-' . $template . '">';
42
- $o.= "\n\t\t" . '<a style="float: left;" title="' . $title_attr . '" href="' . $url . '">' . $img . '</a>';
43
- $o.= "\n\t" . '</div>';
44
- }
45
- else {
46
- $o.= "\n\t\t" . '<a title="' . $title_attr . '" href="' . $url . '">' . $img . '</a>';;
47
- $o.= "\n\t\t" . '<h2 style="clear: none; margin-top: 0; padding-top: 0; line-height: 1em;"><a href="' . $url . '">' . $title . '</a></h2>';
48
- $o.= $description;
49
- $o.= "\n\t" . '<div style="clear: both; height: 1.5em;"></div>';
50
- $o.= "\n";
51
  }
52
  }
53
  }
@@ -61,20 +62,26 @@ add_shortcode( 'taxonomy_image_plugin', 'taxonomy_images_plugin_shortcode_deprec
61
  * of this plugin 0.5 and under. Please do not use any methods or
62
  * properties directly in your theme.
63
  *
64
- * @access private This class is deprecated. Do not use!!!
 
65
  */
66
  class taxonomy_images_plugin {
 
67
  public $settings = array();
 
68
  public function __construct() {
69
  $this->settings = taxonomy_image_plugin_get_associations();
70
  add_action( 'taxonomy_image_plugin_print_image_html', array( &$this, 'print_image_html' ), 1, 3 );
71
  }
 
72
  public function get_thumb( $id ) {
73
  return taxonomy_image_plugin_get_image_src( $id );
74
  }
 
75
  public function print_image_html( $size = 'medium', $term_tax_id = false, $title = true, $align = 'none' ) {
76
  print $this->get_image_html( $size, $term_tax_id, $title, $align );
77
  }
 
78
  public function get_image_html( $size = 'medium', $term_tax_id = false, $title = true, $align = 'none' ) {
79
  $o = '';
80
  if ( false === $term_tax_id ) {
@@ -82,8 +89,7 @@ class taxonomy_images_plugin {
82
  $obj = $wp_query->get_queried_object();
83
  if ( isset( $obj->term_taxonomy_id ) ) {
84
  $term_tax_id = $obj->term_taxonomy_id;
85
- }
86
- else {
87
  return false;
88
  }
89
  }
@@ -99,5 +105,6 @@ class taxonomy_images_plugin {
99
  }
100
  return $o;
101
  }
 
102
  }
103
  $taxonomy_images_plugin = new taxonomy_images_plugin();
3
  /**
4
  * Deprecated Shortcode.
5
  *
6
+ * @deprecated Deprecated since version 0.7
7
+ *
8
+ * @return void
9
+ * @access private
10
  */
11
+ function taxonomy_images_plugin_shortcode_deprecated( $atts = array() ) {
12
  $o = '';
13
  $defaults = array(
14
  'taxonomy' => 'category',
15
  'size' => 'detail',
16
  'template' => 'list'
17
+ );
18
 
19
  extract( shortcode_atts( $defaults, $atts ) );
20
 
21
  /* No taxonomy defined return an html comment. */
22
  if ( ! taxonomy_exists( $taxonomy ) ) {
23
  $tax = strip_tags( trim( $taxonomy ) );
24
+ return '<!-- taxonomy_image_plugin error: Taxonomy "' . esc_html( $taxonomy ) . '" is not defined.-->';
25
  }
26
 
27
  $terms = get_terms( $taxonomy );
36
 
37
  $img = '';
38
  if ( array_key_exists( $term->term_taxonomy_id, $associations ) ) {
39
+ $img = wp_get_attachment_image( $associations[ $term->term_taxonomy_id ], 'detail', false );
40
  }
41
 
42
+ if ( 'grid' == $template ) {
43
+ $o .= "\n\t" . '<div class="taxonomy_image_plugin-' . $template . '">';
44
+ $o .= "\n\t\t" . '<a style="float: left;" title="' . $title_attr . '" href="' . $url . '">' . $img . '</a>';
45
+ $o .= "\n\t" . '</div>';
46
+ } else {
47
+ $o .= "\n\t\t" . '<a title="' . $title_attr . '" href="' . $url . '">' . $img . '</a>';;
48
+ $o .= "\n\t\t" . '<h2 style="clear: none; margin-top: 0; padding-top: 0; line-height: 1em;"><a href="' . $url . '">' . $title . '</a></h2>';
49
+ $o .= $description;
50
+ $o .= "\n\t" . '<div style="clear: both; height: 1.5em;"></div>';
51
+ $o .= "\n";
 
52
  }
53
  }
54
  }
62
  * of this plugin 0.5 and under. Please do not use any methods or
63
  * properties directly in your theme.
64
  *
65
+ * @deprecated Deprecated since version 0.5
66
+ * @access private
67
  */
68
  class taxonomy_images_plugin {
69
+
70
  public $settings = array();
71
+
72
  public function __construct() {
73
  $this->settings = taxonomy_image_plugin_get_associations();
74
  add_action( 'taxonomy_image_plugin_print_image_html', array( &$this, 'print_image_html' ), 1, 3 );
75
  }
76
+
77
  public function get_thumb( $id ) {
78
  return taxonomy_image_plugin_get_image_src( $id );
79
  }
80
+
81
  public function print_image_html( $size = 'medium', $term_tax_id = false, $title = true, $align = 'none' ) {
82
  print $this->get_image_html( $size, $term_tax_id, $title, $align );
83
  }
84
+
85
  public function get_image_html( $size = 'medium', $term_tax_id = false, $title = true, $align = 'none' ) {
86
  $o = '';
87
  if ( false === $term_tax_id ) {
89
  $obj = $wp_query->get_queried_object();
90
  if ( isset( $obj->term_taxonomy_id ) ) {
91
  $term_tax_id = $obj->term_taxonomy_id;
92
+ } else {
 
93
  return false;
94
  }
95
  }
105
  }
106
  return $o;
107
  }
108
+
109
  }
110
  $taxonomy_images_plugin = new taxonomy_images_plugin();
js/media-modal.js CHANGED
@@ -10,7 +10,7 @@ var taxonomy_images_file_frame;
10
  TaxonomyImagesMediaModal.wp_media_post_id = wp.media.model.settings.post.id;
11
 
12
  // When the remove icon is clicked...
13
- $( '.taxonomy-image-control a.remove' ).on( 'click', function( event ) {
14
 
15
  event.preventDefault();
16
 
@@ -50,7 +50,7 @@ var taxonomy_images_file_frame;
50
  } );
51
 
52
  // When image or upload icon clicked...
53
- $( '.taxonomy-image-control a.upload, .taxonomy-image-control a.taxonomy-image-thumbnail' ).on( 'click', function( event ) {
54
 
55
  event.preventDefault();
56
 
10
  TaxonomyImagesMediaModal.wp_media_post_id = wp.media.model.settings.post.id;
11
 
12
  // When the remove icon is clicked...
13
+ $( '.wp-list-table, .form-table' ).on( 'click', '.taxonomy-image-control a.remove', function( event ) {
14
 
15
  event.preventDefault();
16
 
50
  } );
51
 
52
  // When image or upload icon clicked...
53
+ $( '.wp-list-table, .form-table' ).on( 'click', '.taxonomy-image-control a.upload, .taxonomy-image-control a.taxonomy-image-thumbnail', function( event ) {
54
 
55
  event.preventDefault();
56
 
public-filters.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Interface.
4
  *
@@ -68,7 +69,7 @@ add_filter( 'taxonomy-images-queried-term-image-url', 'taxonomy_images_plugin
68
  */
69
  function taxonomy_images_plugin_get_terms( $default, $args = array() ) {
70
  $filter = 'taxonomy-images-get-terms';
71
- if ( $filter !== current_filter() ) {
72
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
73
  }
74
 
@@ -77,7 +78,7 @@ function taxonomy_images_plugin_get_terms( $default, $args = array() ) {
77
  'having_images' => true,
78
  'taxonomy' => 'category',
79
  'term_args' => array(),
80
- ) );
81
 
82
  $args['taxonomy'] = explode( ',', $args['taxonomy'] );
83
  $args['taxonomy'] = array_map( 'trim', $args['taxonomy'] );
@@ -101,12 +102,12 @@ function taxonomy_images_plugin_get_terms( $default, $args = array() ) {
101
  $image_ids = array();
102
  $terms_with_images = array();
103
  foreach ( (array) $terms as $key => $term ) {
104
- $terms[$key]->image_id = 0;
105
  if ( array_key_exists( $term->term_taxonomy_id, $assoc ) ) {
106
- $terms[$key]->image_id = $assoc[$term->term_taxonomy_id];
107
- $image_ids[] = $assoc[$term->term_taxonomy_id];
108
  if ( ! empty( $args['having_images'] ) ) {
109
- $terms_with_images[] = $terms[$key];
110
  }
111
  }
112
  }
@@ -168,7 +169,7 @@ function taxonomy_images_plugin_get_the_terms( $default, $args = array() ) {
168
  'having_images' => true,
169
  'post_id' => 0,
170
  'taxonomy' => 'category',
171
- ) );
172
 
173
  if ( ! taxonomy_image_plugin_check_taxonomy( $args['taxonomy'], $filter ) ) {
174
  return array();
@@ -192,11 +193,11 @@ function taxonomy_images_plugin_get_the_terms( $default, $args = array() ) {
192
 
193
  $terms_with_images = array();
194
  foreach ( (array) $terms as $key => $term ) {
195
- $terms[$key]->image_id = 0;
196
  if ( array_key_exists( $term->term_taxonomy_id, $assoc ) ) {
197
- $terms[$key]->image_id = $assoc[$term->term_taxonomy_id];
198
  if ( ! empty( $args['having_images'] ) ) {
199
- $terms_with_images[] = $terms[$key];
200
  }
201
  }
202
  }
@@ -250,7 +251,7 @@ function taxonomy_images_plugin_get_the_terms( $default, $args = array() ) {
250
  */
251
  function taxonomy_images_plugin_list_the_terms( $default, $args = array() ) {
252
  $filter = 'taxonomy-images-list-the-terms';
253
- if ( $filter !== current_filter() ) {
254
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
255
  }
256
 
@@ -262,7 +263,7 @@ function taxonomy_images_plugin_list_the_terms( $default, $args = array() ) {
262
  'image_size' => 'thumbnail',
263
  'post_id' => 0,
264
  'taxonomy' => 'category',
265
- ) );
266
 
267
  $args['having_images'] = true;
268
 
@@ -324,7 +325,7 @@ function taxonomy_images_plugin_list_the_terms( $default, $args = array() ) {
324
  */
325
  function taxonomy_images_plugin_get_queried_term_image( $default, $args = array() ) {
326
  $filter = 'taxonomy-images-queried-term-image';
327
- if ( $filter !== current_filter() ) {
328
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
329
  }
330
 
@@ -333,7 +334,7 @@ function taxonomy_images_plugin_get_queried_term_image( $default, $args = array(
333
  'attr' => array(),
334
  'before' => '',
335
  'image_size' => 'thumbnail',
336
- ) );
337
 
338
  $ID = apply_filters( 'taxonomy-images-queried-term-image-id', 0 );
339
 
@@ -374,7 +375,7 @@ function taxonomy_images_plugin_get_queried_term_image( $default, $args = array(
374
  */
375
  function taxonomy_images_plugin_get_queried_term_image_id( $default ) {
376
  $filter = 'taxonomy-images-queried-term-image-id';
377
- if ( $filter !== current_filter() ) {
378
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
379
  }
380
 
@@ -386,7 +387,7 @@ function taxonomy_images_plugin_get_queried_term_image_id( $default ) {
386
  '<code>' . esc_html__( 'term_taxonomy_id', 'taxonomy-images' ) . '</code>',
387
  '<code>' . esc_html( $filter ) . '</code>',
388
  '<a href="http://codex.wordpress.org/Template_Hierarchy">' . esc_html( 'template hierarchy', 'taxonomy-images' ) . '</a>'
389
- ) );
390
  return 0;
391
  }
392
 
@@ -429,7 +430,7 @@ function taxonomy_images_plugin_get_queried_term_image_id( $default ) {
429
  */
430
  function taxonomy_images_plugin_get_queried_term_image_object( $default ) {
431
  $filter = 'taxonomy-images-queried-term-image-object';
432
- if ( $filter !== current_filter() ) {
433
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
434
  }
435
 
@@ -469,13 +470,13 @@ function taxonomy_images_plugin_get_queried_term_image_object( $default ) {
469
  */
470
  function taxonomy_images_plugin_get_queried_term_image_url( $default, $args = array() ) {
471
  $filter = 'taxonomy-images-queried-term-image-url';
472
- if ( $filter !== current_filter() ) {
473
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
474
  }
475
 
476
  $args = wp_parse_args( $args, array(
477
  'image_size' => 'thumbnail',
478
- ) );
479
 
480
  $data = apply_filters( 'taxonomy-images-queried-term-image-data', array(), $args );
481
 
@@ -515,13 +516,13 @@ function taxonomy_images_plugin_get_queried_term_image_url( $default, $args = ar
515
  */
516
  function taxonomy_images_plugin_get_queried_term_image_data( $default, $args = array() ) {
517
  $filter = 'taxonomy-images-queried-term-image-data';
518
- if ( $filter !== current_filter() ) {
519
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
520
  }
521
 
522
  $args = wp_parse_args( $args, array(
523
  'image_size' => 'thumbnail',
524
- ) );
525
 
526
  $ID = apply_filters( 'taxonomy-images-queried-term-image-id', 0 );
527
 
@@ -543,8 +544,7 @@ function taxonomy_images_plugin_get_queried_term_image_data( $default, $args = a
543
  if ( isset( $src[2] ) ) {
544
  $data['height'] = $src[2];
545
  }
546
- }
547
- else {
548
  $data = image_get_intermediate_size( $ID, $args['image_size'] );
549
  }
550
 
1
  <?php
2
+
3
  /**
4
  * Interface.
5
  *
69
  */
70
  function taxonomy_images_plugin_get_terms( $default, $args = array() ) {
71
  $filter = 'taxonomy-images-get-terms';
72
+ if ( current_filter() !== $filter ) {
73
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
74
  }
75
 
78
  'having_images' => true,
79
  'taxonomy' => 'category',
80
  'term_args' => array(),
81
+ ) );
82
 
83
  $args['taxonomy'] = explode( ',', $args['taxonomy'] );
84
  $args['taxonomy'] = array_map( 'trim', $args['taxonomy'] );
102
  $image_ids = array();
103
  $terms_with_images = array();
104
  foreach ( (array) $terms as $key => $term ) {
105
+ $terms[ $key ]->image_id = 0;
106
  if ( array_key_exists( $term->term_taxonomy_id, $assoc ) ) {
107
+ $terms[ $key ]->image_id = $assoc[ $term->term_taxonomy_id ];
108
+ $image_ids[] = $assoc[ $term->term_taxonomy_id ];
109
  if ( ! empty( $args['having_images'] ) ) {
110
+ $terms_with_images[] = $terms[ $key ];
111
  }
112
  }
113
  }
169
  'having_images' => true,
170
  'post_id' => 0,
171
  'taxonomy' => 'category',
172
+ ) );
173
 
174
  if ( ! taxonomy_image_plugin_check_taxonomy( $args['taxonomy'], $filter ) ) {
175
  return array();
193
 
194
  $terms_with_images = array();
195
  foreach ( (array) $terms as $key => $term ) {
196
+ $terms[ $key ]->image_id = 0;
197
  if ( array_key_exists( $term->term_taxonomy_id, $assoc ) ) {
198
+ $terms[ $key ]->image_id = $assoc[ $term->term_taxonomy_id ];
199
  if ( ! empty( $args['having_images'] ) ) {
200
+ $terms_with_images[] = $terms[ $key ];
201
  }
202
  }
203
  }
251
  */
252
  function taxonomy_images_plugin_list_the_terms( $default, $args = array() ) {
253
  $filter = 'taxonomy-images-list-the-terms';
254
+ if ( current_filter() !== $filter ) {
255
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
256
  }
257
 
263
  'image_size' => 'thumbnail',
264
  'post_id' => 0,
265
  'taxonomy' => 'category',
266
+ ) );
267
 
268
  $args['having_images'] = true;
269
 
325
  */
326
  function taxonomy_images_plugin_get_queried_term_image( $default, $args = array() ) {
327
  $filter = 'taxonomy-images-queried-term-image';
328
+ if ( current_filter() !== $filter ) {
329
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
330
  }
331
 
334
  'attr' => array(),
335
  'before' => '',
336
  'image_size' => 'thumbnail',
337
+ ) );
338
 
339
  $ID = apply_filters( 'taxonomy-images-queried-term-image-id', 0 );
340
 
375
  */
376
  function taxonomy_images_plugin_get_queried_term_image_id( $default ) {
377
  $filter = 'taxonomy-images-queried-term-image-id';
378
+ if ( current_filter() !== $filter ) {
379
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
380
  }
381
 
387
  '<code>' . esc_html__( 'term_taxonomy_id', 'taxonomy-images' ) . '</code>',
388
  '<code>' . esc_html( $filter ) . '</code>',
389
  '<a href="http://codex.wordpress.org/Template_Hierarchy">' . esc_html( 'template hierarchy', 'taxonomy-images' ) . '</a>'
390
+ ) );
391
  return 0;
392
  }
393
 
430
  */
431
  function taxonomy_images_plugin_get_queried_term_image_object( $default ) {
432
  $filter = 'taxonomy-images-queried-term-image-object';
433
+ if ( current_filter() !== $filter ) {
434
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
435
  }
436
 
470
  */
471
  function taxonomy_images_plugin_get_queried_term_image_url( $default, $args = array() ) {
472
  $filter = 'taxonomy-images-queried-term-image-url';
473
+ if ( current_filter() !== $filter ) {
474
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
475
  }
476
 
477
  $args = wp_parse_args( $args, array(
478
  'image_size' => 'thumbnail',
479
+ ) );
480
 
481
  $data = apply_filters( 'taxonomy-images-queried-term-image-data', array(), $args );
482
 
516
  */
517
  function taxonomy_images_plugin_get_queried_term_image_data( $default, $args = array() ) {
518
  $filter = 'taxonomy-images-queried-term-image-data';
519
+ if ( current_filter() !== $filter ) {
520
  taxonomy_image_plugin_please_use_filter( __FUNCTION__, $filter );
521
  }
522
 
523
  $args = wp_parse_args( $args, array(
524
  'image_size' => 'thumbnail',
525
+ ) );
526
 
527
  $ID = apply_filters( 'taxonomy-images-queried-term-image-id', 0 );
528
 
544
  if ( isset( $src[2] ) ) {
545
  $data['height'] = $src[2];
546
  }
547
+ } else {
 
548
  $data = image_get_intermediate_size( $ID, $args['image_size'] );
549
  }
550
 
readme.md CHANGED
@@ -207,7 +207,7 @@ If you have fallen in love with this plugin and would not be able to sleep witho
207
  Need More Taxonomy Plugins?
208
  ---------------------------
209
 
210
- The original author of this plugin, Michael Fields, released a handful of plugins dealing with taxonomies. Please see his [plugin page](http://wordpress.org/extend/plugins/profile/mfields) for more information.
211
 
212
  Installation
213
  ------------
@@ -221,6 +221,9 @@ Installation
221
  Upgrade Notice
222
  --------------
223
 
 
 
 
224
  ### 0.9
225
  Fixes media modal for newer versions of WordPress. Tested up to WordPress 4.3.1 (requires 3.4+).
226
 
@@ -233,6 +236,10 @@ Complete rewrite. Better everything. Many bug fixes.
233
  Changelog
234
  ---------
235
 
 
 
 
 
236
  ### 0.9
237
  * __COMPAT:__ Add support for WordPress 3.5+ media modal.
238
  * __COMPAT:__ Confirmed minimum WordPress 3.4 required.
207
  Need More Taxonomy Plugins?
208
  ---------------------------
209
 
210
+ The original author of this plugin, Michael Fields, released a handful of plugins dealing with taxonomies. Please see his [WordPress.org profile](https://profiles.wordpress.org/mfields/) for more information.
211
 
212
  Installation
213
  ------------
221
  Upgrade Notice
222
  --------------
223
 
224
+ ### 0.9.1
225
+ Fixes media modal not opening on newly created terms.
226
+
227
  ### 0.9
228
  Fixes media modal for newer versions of WordPress. Tested up to WordPress 4.3.1 (requires 3.4+).
229
 
236
  Changelog
237
  ---------
238
 
239
+ ### 0.9.1
240
+ * __BUGFIX:__ Fixes media modal not opening on newly created terms.
241
+ * __UPDATE:__ Adhere to WordPress PHP coding standards.
242
+
243
  ### 0.9
244
  * __COMPAT:__ Add support for WordPress 3.5+ media modal.
245
  * __COMPAT:__ Confirmed minimum WordPress 3.4 required.
readme.txt CHANGED
@@ -1,11 +1,12 @@
1
  === Taxonomy Images ===
2
-
3
  Contributors: mfields, husobj, jamiemchale
4
- Tags: taxonomy, tag, category, image, upload, media
 
5
  Requires at least: 3.4
6
  Tested up to: 4.3.1
7
- Stable tag: 0.9
8
  License: GPLv2 or later
 
9
 
10
  Associate images from your media library to categories, tags and custom taxonomies.
11
 
@@ -190,7 +191,7 @@ If you have fallen in love with this plugin and would not be able to sleep witho
190
 
191
  = Need More Taxonomy Plugins? =
192
 
193
- The original author of this plugin, Michael Fields, released a handful of plugins dealing with taxonomies. Please see his [plugin page](http://wordpress.org/extend/plugins/profile/mfields) for more information.
194
 
195
  == Installation ==
196
 
@@ -208,6 +209,9 @@ The original author of this plugin, Michael Fields, released a handful of plugin
208
 
209
  == Upgrade Notice ==
210
 
 
 
 
211
  = 0.9 =
212
  Fixes media modal for newer versions of WordPress. Tested up to WordPress 4.3.1 (requires 3.4+).
213
 
@@ -219,6 +223,10 @@ Complete rewrite. Better everything. Many bug fixes.
219
 
220
  == Changelog ==
221
 
 
 
 
 
222
  = 0.9 =
223
  * __COMPAT:__ Add support for WordPress 3.5+ media modal.
224
  * __COMPAT:__ Confirmed minimum WordPress 3.4 required.
1
  === Taxonomy Images ===
 
2
  Contributors: mfields, husobj, jamiemchale
3
+ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QSYTTQZBRKQVE
4
+ Tags: taxonomy, tag, category, term, image, upload, media
5
  Requires at least: 3.4
6
  Tested up to: 4.3.1
7
+ Stable tag: 0.9.1
8
  License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
  Associate images from your media library to categories, tags and custom taxonomies.
12
 
191
 
192
  = Need More Taxonomy Plugins? =
193
 
194
+ The original author of this plugin, Michael Fields, released a handful of plugins dealing with taxonomies. Please see his [WordPress.org profile](https://profiles.wordpress.org/mfields/) for more information.
195
 
196
  == Installation ==
197
 
209
 
210
  == Upgrade Notice ==
211
 
212
+ = 0.9.1 =
213
+ Fixes media modal not opening on newly created terms.
214
+
215
  = 0.9 =
216
  Fixes media modal for newer versions of WordPress. Tested up to WordPress 4.3.1 (requires 3.4+).
217
 
223
 
224
  == Changelog ==
225
 
226
+ = 0.9.1 =
227
+ * __BUGFIX:__ Fixes media modal not opening on newly created terms.
228
+ * __UPDATE:__ Adhere to WordPress PHP coding standards.
229
+
230
  = 0.9 =
231
  * __COMPAT:__ Add support for WordPress 3.5+ media modal.
232
  * __COMPAT:__ Confirmed minimum WordPress 3.4 required.
taxonomy-images.php CHANGED
@@ -1,9 +1,10 @@
1
  <?php
 
2
  /*
3
  Plugin Name: Taxonomy Images
4
  Plugin URI: https://github.com/benhuson/Taxonomy-Images
5
  Description: Associate images from your media library to categories, tags and custom taxonomies.
6
- Version: 0.9
7
  Author: Michael Fields, Ben Huson
8
  Author URI: http://wordpress.mfields.org/
9
  License: GNU General Public License v2 or later
@@ -39,7 +40,7 @@ require_once( trailingslashit( dirname( __FILE__ ) ) . 'public-filters.php' );
39
  * @alter 0.7.4
40
  */
41
  function taxonomy_image_plugin_version() {
42
- return '0.9';
43
  }
44
 
45
 
@@ -121,19 +122,13 @@ function taxonomy_image_plugin_modal_button( $fields, $post ) {
121
  if ( isset( $fields['image-size'] ) && isset( $post->ID ) ) {
122
  $image_id = (int) $post->ID;
123
 
124
- $o = '<div class="taxonomy-image-modal-control" id="' . esc_attr( 'taxonomy-image-modal-control-' . $image_id ) . '">';
125
-
126
- $o.= '<span class="button create-association">' . sprintf( esc_html__( 'Associate with %1$s', 'taxonomy-images' ), '<span class="term-name">' . esc_html__( 'this term', 'taxonomy-images' ) . '</span>' ) . '</span>';
127
-
128
- $o.= '<span class="remove-association">' . sprintf( esc_html__( 'Remove association with %1$s', 'taxonomy-images' ), '<span class="term-name">' . esc_html__( 'this term', 'taxonomy-images' ) . '</span>' ) . '</span>';
129
-
130
- $o.= '<input class="taxonomy-image-button-image-id" name="' . esc_attr( 'taxonomy-image-button-image-id-' . $image_id ) . '" type="hidden" value="' . esc_attr( $image_id ) . '" />';
131
-
132
- $o.= '<input class="taxonomy-image-button-nonce-create" name="' . esc_attr( 'taxonomy-image-button-nonce-create-' . $image_id ) . '" type="hidden" value="' . esc_attr( wp_create_nonce( 'taxonomy-image-plugin-create-association' ) ) . '" />';
133
-
134
- $o.= '<input class="taxonomy-image-button-nonce-remove" name="' . esc_attr( 'taxonomy-image-button-nonce-remove-' . $image_id ) . '" type="hidden" value="' . esc_attr( wp_create_nonce( 'taxonomy-image-plugin-remove-association' ) ) . '" />';
135
-
136
- $o.= '</div>';
137
 
138
  $fields['image-size']['extra_rows']['taxonomy-image-plugin-button']['html'] = $o;
139
  }
@@ -161,8 +156,9 @@ function taxonomy_image_plugin_get_image_src( $id ) {
161
 
162
  /* Return url to custom intermediate size if it exists. */
163
  $img = image_get_intermediate_size( $id, $detail['name'] );
164
- if ( isset( $img['url'] ) )
165
  return $img['url'];
 
166
 
167
  /* Detail image does not exist, attempt to create it. */
168
  $wp_upload_dir = wp_upload_dir();
@@ -177,7 +173,7 @@ function taxonomy_image_plugin_get_image_src( $id ) {
177
  $detail['size'][0],
178
  $detail['size'][1],
179
  $detail['size'][2]
180
- );
181
 
182
  /* Image creation successful. Generate and cache image metadata. Return url. */
183
  if ( ! is_wp_error( $new ) ) {
@@ -193,15 +189,17 @@ function taxonomy_image_plugin_get_image_src( $id ) {
193
 
194
  /* Custom intermediate size cannot be created, try for thumbnail. */
195
  $img = image_get_intermediate_size( $id, 'thumbnail' );
196
- if ( isset( $img['url'] ) )
197
  return $img['url'];
 
198
 
199
  /* Thumbnail cannot be found, try fullsize. */
200
  $url = wp_get_attachment_url( $id );
201
- if ( ! empty( $url ) )
202
  return $url;
 
203
 
204
- /*
205
  * No image can be found.
206
  * This is most likely caused by a user deleting an attachment before deleting it's association with a taxonomy.
207
  * If we are in the administration panels:
@@ -212,7 +210,7 @@ function taxonomy_image_plugin_get_image_src( $id ) {
212
  $assoc = taxonomy_image_plugin_get_associations();
213
  foreach ( $assoc as $term => $img ) {
214
  if ( $img === $id ) {
215
- unset( $assoc[$term] );
216
  }
217
  }
218
  update_option( 'taxonomy_image_plugin', $assoc );
@@ -244,7 +242,7 @@ function taxonomy_image_plugin_sanitize_associations( $associations ) {
244
  $tt_id = absint( $tt_id );
245
  $im_id = absint( $im_id );
246
  if ( 0 < $tt_id && 0 < $im_id )
247
- $o[$tt_id] = $im_id;
248
  }
249
  return $o;
250
  }
@@ -342,8 +340,8 @@ add_action( 'admin_init', 'taxonomy_image_plugin_register_settings' );
342
  */
343
  function taxonomy_images_settings_menu() {
344
  add_options_page(
345
- esc_html__( 'Taxonomy Images', 'taxonomy-images' ), /* HTML <title> tag. */
346
- esc_html__( 'Taxonomy Images', 'taxonomy-images' ), /* Link text in admin menu. */
347
  'manage_options',
348
  'taxonomy_image_plugin_settings',
349
  'taxonomy_image_plugin_settings_page'
@@ -391,20 +389,24 @@ function taxonomy_image_plugin_control_taxonomies() {
391
  $settings = get_option( 'taxonomy_image_plugin_settings' );
392
  $taxonomies = get_taxonomies( array(), 'objects' );
393
  foreach ( (array) $taxonomies as $taxonomy ) {
394
- if ( ! isset( $taxonomy->name ) )
395
  continue;
 
396
 
397
- if ( ! isset( $taxonomy->label ) )
398
  continue;
 
399
 
400
- if ( ! isset( $taxonomy->show_ui ) || empty( $taxonomy->show_ui ) )
401
  continue;
 
402
 
403
  $id = 'taxonomy-images-' . $taxonomy->name;
404
 
405
  $checked = '';
406
- if ( isset( $settings['taxonomies'] ) && in_array( $taxonomy->name, (array) $settings['taxonomies'] ) )
407
  $checked = ' checked="checked"';
 
408
 
409
  print "\n" . '<p><label for="' . esc_attr( $id ) . '">';
410
  print '<input' . $checked . ' id="' . esc_attr( $id ) . '" type="checkbox" name="taxonomy_image_plugin_settings[taxonomies][]" value="' . esc_attr( $taxonomy->name ) . '" />';
@@ -445,21 +447,24 @@ function taxonomy_image_plugin_json_response( $args ) {
445
  */
446
  function taxonomy_image_plugin_get_term_info( $tt_id ) {
447
  static $cache = array();
448
- if ( isset( $cache[$tt_id] ) ) {
449
- return $cache[$tt_id];
450
  }
451
 
452
  global $wpdb;
453
 
454
  $data = $wpdb->get_results( $wpdb->prepare( "SELECT term_id, taxonomy FROM $wpdb->term_taxonomy WHERE term_taxonomy_id = %d LIMIT 1", $tt_id ) );
455
- if ( isset( $data[0]->term_id ) )
456
- $cache[$tt_id]['term_id'] = absint( $data[0]->term_id );
 
457
 
458
- if ( isset( $data[0]->taxonomy ) )
459
- $cache[$tt_id]['taxonomy'] = sanitize_title_with_dashes( $data[0]->taxonomy );
 
460
 
461
- if ( isset( $cache[$tt_id] ) )
462
- return $cache[$tt_id];
 
463
 
464
  return array();
465
  }
@@ -478,12 +483,14 @@ function taxonomy_image_plugin_get_term_info( $tt_id ) {
478
  */
479
  function taxonomy_image_plugin_check_permissions( $tt_id ) {
480
  $data = taxonomy_image_plugin_get_term_info( $tt_id );
481
- if ( ! isset( $data['taxonomy'] ) )
482
  return false;
 
483
 
484
  $taxonomy = get_taxonomy( $data['taxonomy'] );
485
- if ( ! isset( $taxonomy->cap->edit_terms ) )
486
  return false;
 
487
 
488
  return current_user_can( $taxonomy->cap->edit_terms );
489
  }
@@ -549,15 +556,14 @@ function taxonomy_image_plugin_create_association() {
549
  }
550
 
551
  $assoc = taxonomy_image_plugin_get_associations();
552
- $assoc[$tt_id] = $image_id;
553
  if ( update_option( 'taxonomy_image_plugin', taxonomy_image_plugin_sanitize_associations( $assoc ) ) ) {
554
  taxonomy_image_plugin_json_response( array(
555
  'status' => 'good',
556
  'why' => esc_html__( 'Image successfully associated', 'taxonomy-images' ),
557
  'attachment_thumb_src' => taxonomy_image_plugin_get_image_src( $image_id )
558
  ) );
559
- }
560
- else {
561
  taxonomy_image_plugin_json_response( array(
562
  'status' => 'bad',
563
  'why' => esc_html__( 'Association could not be created', 'taxonomy-images' )
@@ -616,22 +622,21 @@ function taxonomy_image_plugin_remove_association() {
616
  }
617
 
618
  $assoc = taxonomy_image_plugin_get_associations();
619
- if ( ! isset( $assoc[$tt_id] ) ) {
620
  taxonomy_image_plugin_json_response( array(
621
  'status' => 'good',
622
  'why' => esc_html__( 'Nothing to remove', 'taxonomy-images' )
623
  ) );
624
  }
625
 
626
- unset( $assoc[$tt_id] );
627
 
628
  if ( update_option( 'taxonomy_image_plugin', $assoc ) ) {
629
  taxonomy_image_plugin_json_response( array(
630
  'status' => 'good',
631
  'why' => esc_html__( 'Association successfully removed', 'taxonomy-images' )
632
  ) );
633
- }
634
- else {
635
  taxonomy_image_plugin_json_response( array(
636
  'status' => 'bad',
637
  'why' => esc_html__( 'Association could not be removed', 'taxonomy-images' )
@@ -655,8 +660,9 @@ add_action( 'wp_ajax_taxonomy_image_plugin_remove_association', 'taxonomy_image_
655
  */
656
  function taxonomy_image_plugin_get_associations( $refresh = false ) {
657
  static $associations = array();
658
- if ( empty( $associations ) || $refresh )
659
  $associations = taxonomy_image_plugin_sanitize_associations( get_option( 'taxonomy_image_plugin' ) );
 
660
 
661
  return $associations;
662
  }
@@ -676,8 +682,9 @@ add_action( 'init', 'taxonomy_image_plugin_get_associations' );
676
  */
677
  function taxonomy_image_plugin_add_dynamic_hooks() {
678
  $settings = get_option( 'taxonomy_image_plugin_settings' );
679
- if ( ! isset( $settings['taxonomies'] ) )
680
  return;
 
681
 
682
  foreach ( $settings['taxonomies'] as $taxonomy ) {
683
  add_filter( 'manage_' . $taxonomy . '_custom_column', 'taxonomy_image_plugin_taxonomy_rows', 15, 3 );
@@ -776,14 +783,16 @@ function taxonomy_image_plugin_control_image( $term_id, $taxonomy ) {
776
  $term = get_term( $term_id, $taxonomy );
777
 
778
  $tt_id = 0;
779
- if ( isset( $term->term_taxonomy_id ) )
780
  $tt_id = (int) $term->term_taxonomy_id;
 
781
 
782
  $taxonomy = get_taxonomy( $taxonomy );
783
 
784
  $name = esc_html__( 'term', 'taxonomy-images' );
785
- if ( isset( $taxonomy->labels->singular_name ) )
786
  $name = strtolower( $taxonomy->labels->singular_name );
 
787
 
788
  $hide = ' hide';
789
  $attachment_id = 0;
@@ -800,18 +809,18 @@ function taxonomy_image_plugin_control_image( $term_id, $taxonomy ) {
800
  $nonce = wp_create_nonce( 'taxonomy-image-plugin-create-association' );
801
  $nonce_remove = wp_create_nonce( 'taxonomy-image-plugin-remove-association' );
802
 
803
- $o = "\n" . '<div id="' . esc_attr( 'taxonomy-image-control-' . $tt_id ) . '" class="taxonomy-image-control hide-if-no-js">';
804
- $o.= "\n" . '<a class="thickbox taxonomy-image-thumbnail" data-tt-id="' . $tt_id . '" data-attachment-id="' . $attachment_id . '" data-nonce="' . $nonce . '" href="' . esc_url( admin_url( 'media-upload.php' ) . '?type=image&tab=library&post_id=0&TB_iframe=true' ) . '" title="' . esc_attr( sprintf( __( 'Associate an image with the %1$s named &#8220;%2$s&#8221;.', 'taxonomy-images' ), $name, $term->name ) ) . '"><img id="' . esc_attr( 'taxonomy_image_plugin_' . $tt_id ) . '" src="' . esc_url( $img ) . '" alt="" /></a>';
805
- $o.= "\n" . '<a class="control upload thickbox" data-tt-id="' . $tt_id . '" data-attachment-id="' . $attachment_id . '" data-nonce="' . $nonce . '" href="' . esc_url( admin_url( 'media-upload.php' ) . '?type=image&tab=type&post_id=0&TB_iframe=true' ) . '" title="' . esc_attr( sprintf( __( 'Upload a new image for this %s.', 'taxonomy-images' ), $name ) ) . '">' . esc_html__( 'Upload.', 'taxonomy-images' ) . '</a>';
806
- $o.= "\n" . '<a class="control remove' . $hide . '" data-tt-id="' . $tt_id . '" data-nonce="' . $nonce_remove . '" href="#" id="' . esc_attr( 'remove-' . $tt_id ) . '" rel="' . esc_attr( $tt_id ) . '" title="' . esc_attr( sprintf( __( 'Remove image from this %s.', 'taxonomy-images' ), $name ) ) . '">' . esc_html__( 'Delete', 'taxonomy-images' ) . '</a>';
807
- $o.= "\n" . '<input type="hidden" class="tt_id" name="' . esc_attr( 'tt_id-' . $tt_id ) . '" value="' . esc_attr( $tt_id ) . '" />';
 
808
 
809
- $o.= "\n" . '<input type="hidden" class="image_id" name="' . esc_attr( 'image_id-' . $tt_id ) . '" value="' . esc_attr( $attachment_id ) . '" />';
810
-
811
- if ( isset( $term->name ) && isset( $term->slug ) )
812
- $o.= "\n" . '<input type="hidden" class="term_name" name="' . esc_attr( 'term_name-' . $term->slug ) . '" value="' . esc_attr( $term->name ) . '" />';
813
 
814
- $o.= "\n" . '</div>';
815
  return $o;
816
  }
817
 
@@ -835,7 +844,7 @@ function taxonomy_image_plugin_media_upload_popup_js() {
835
  array( 'jquery' ),
836
  taxonomy_image_plugin_version()
837
  );
838
- wp_localize_script( 'taxonomy-images-media-upload-popup', 'TaxonomyImagesModal', array (
839
  'termBefore' => esc_html__( '&#8220;', 'taxonomy-images' ),
840
  'termAfter' => esc_html__( '&#8221;', 'taxonomy-images' ),
841
  'associating' => esc_html__( 'Associating &#8230;', 'taxonomy-images' ),
@@ -853,8 +862,9 @@ add_action( 'admin_print_scripts-media-upload-popup', 'taxonomy_image_plugin_med
853
  * @access private
854
  */
855
  function taxonomy_image_plugin_edit_tags_js() {
856
- if ( false == taxonomy_image_plugin_is_screen_active() )
857
  return;
 
858
 
859
  if ( version_compare( get_bloginfo( 'version' ), 3.5 ) >= 0 ) {
860
  return;
@@ -866,7 +876,7 @@ function taxonomy_image_plugin_edit_tags_js() {
866
  array( 'jquery', 'thickbox' ),
867
  taxonomy_image_plugin_version()
868
  );
869
- wp_localize_script( 'taxonomy-image-plugin-edit-tags', 'taxonomyImagesPlugin', array (
870
  'nonce' => wp_create_nonce( 'taxonomy-image-plugin-remove-association' ),
871
  'img_src' => taxonomy_image_plugin_url( 'default.png' ),
872
  'tt_id' => 0,
@@ -883,8 +893,9 @@ add_action( 'admin_print_scripts-edit-tags.php', 'taxonomy_image_plugin_edit_tag
883
  * @access private
884
  */
885
  function taxonomy_image_plugin_css_admin() {
886
- if ( false == taxonomy_image_plugin_is_screen_active() && 'admin_print_styles-media-upload-popup' != current_filter() )
887
  return;
 
888
 
889
  wp_enqueue_style(
890
  'taxonomy-image-plugin-edit-tags',
@@ -905,8 +916,9 @@ add_action( 'admin_print_styles-media-upload-popup', 'taxonomy_image_plugin_css_
905
  * @access private
906
  */
907
  function taxonomy_image_plugin_css_thickbox() {
908
- if ( false == taxonomy_image_plugin_is_screen_active() )
909
  return;
 
910
 
911
  wp_enqueue_style( 'thickbox' );
912
  }
@@ -927,8 +939,9 @@ add_action( 'admin_print_styles-edit-tags.php', 'taxonomy_image_plugin_css_thick
927
  * @access private
928
  */
929
  function taxonomy_image_plugin_css_public() {
930
- if ( apply_filters( 'taxonomy-images-disable-public-css', false ) )
931
  return;
 
932
 
933
  wp_enqueue_style(
934
  'taxonomy-image-plugin-public',
@@ -962,8 +975,9 @@ add_action( 'wp_enqueue_scripts', 'taxonomy_image_plugin_css_public' );
962
  */
963
  function taxonomy_image_plugin_activate() {
964
  $associations = get_option( 'taxonomy_image_plugin' );
965
- if ( false === $associations )
966
  add_option( 'taxonomy_image_plugin', array() );
 
967
 
968
  $settings = get_option( 'taxonomy_image_plugin_settings' );
969
  if ( false === $settings ) {
@@ -985,15 +999,18 @@ register_activation_hook( __FILE__, 'taxonomy_image_plugin_activate' );
985
  */
986
  function taxonomy_image_plugin_is_screen_active() {
987
  $screen = get_current_screen();
988
- if ( ! isset( $screen->taxonomy ) )
989
  return false;
 
990
 
991
  $settings = get_option( 'taxonomy_image_plugin_settings' );
992
- if ( ! isset( $settings['taxonomies'] ) )
993
  return false;
 
994
 
995
- if ( in_array( $screen->taxonomy, $settings['taxonomies'] ) )
996
  return true;
 
997
 
998
  return false;
999
  }
@@ -1014,17 +1031,20 @@ function taxonomy_image_plugin_is_screen_active() {
1014
  */
1015
  function taxonomy_image_plugin_cache_images( $posts ) {
1016
  $assoc = taxonomy_image_plugin_get_associations();
1017
- if ( empty( $assoc ) )
1018
  return;
 
1019
 
1020
  $tt_ids = array();
1021
  foreach ( (array) $posts as $post ) {
1022
- if ( ! isset( $post->ID ) || ! isset( $post->post_type ) )
1023
  continue;
 
1024
 
1025
  $taxonomies = get_object_taxonomies( $post->post_type );
1026
- if ( empty( $taxonomies ) )
1027
  continue;
 
1028
 
1029
  foreach ( $taxonomies as $taxonomy ) {
1030
  $the_terms = get_the_terms( $post->ID, $taxonomy );
@@ -1040,17 +1060,20 @@ function taxonomy_image_plugin_cache_images( $posts ) {
1040
 
1041
  $image_ids = array();
1042
  foreach ( $tt_ids as $tt_id ) {
1043
- if ( ! isset( $assoc[$tt_id] ) )
1044
  continue;
 
1045
 
1046
- if ( in_array( $assoc[$tt_id], $image_ids ) )
1047
  continue;
 
1048
 
1049
- $image_ids[] = $assoc[$tt_id];
1050
  }
1051
 
1052
- if ( empty( $image_ids ) )
1053
  return;
 
1054
 
1055
  $images = get_posts( array(
1056
  'include' => $image_ids,
@@ -1094,9 +1117,9 @@ add_action( 'template_redirect', 'taxonomy_image_plugin_cache_queried_images' );
1094
  function taxonomy_image_plugin_check_taxonomy( $taxonomy, $filter ) {
1095
  if ( ! taxonomy_exists( $taxonomy ) ) {
1096
  trigger_error( sprintf( esc_html__( 'The %1$s argument for %2$s is set to %3$s which is not a registered taxonomy. Please check the spelling and update the argument.', 'taxonomy-images' ),
1097
- '<var>' . esc_html__( 'taxonomy', 'taxonomy-images' ) . '</var>',
1098
- '<code>' . esc_html( $filter ) . '</code>',
1099
- '<strong>' . esc_html( $taxonomy ) . '</strong>'
1100
  ) );
1101
  return false;
1102
  }
@@ -1157,15 +1180,18 @@ function taxonomy_image_plugin_please_use_filter( $function, $filter ) {
1157
  function taxonomy_images_plugin_row_meta( $links, $file ) {
1158
  static $plugin_name = '';
1159
 
1160
- if ( empty( $plugin_name ) )
1161
  $plugin_name = plugin_basename( __FILE__ );
 
1162
 
1163
- if ( $plugin_name != $file )
1164
  return $links;
 
1165
 
1166
  $link = taxonomy_images_plugin_settings_page_link( esc_html__( 'Settings', 'taxonomy-images' ) );
1167
- if ( ! empty( $link ) )
1168
  $links[] = $link;
 
1169
 
1170
  $links[] = '<a href="http://wordpress.mfields.org/donate/">' . esc_html__( 'Donate', 'taxonomy-images' ) . '</a>';
1171
 
@@ -1184,12 +1210,14 @@ add_filter( 'plugin_row_meta', 'taxonomy_images_plugin_row_meta', 10, 2 );
1184
  * @since 0.7
1185
  */
1186
  function taxonomy_images_plugin_settings_page_link( $link_text = '' ) {
1187
- if ( empty( $link_text ) )
1188
  $link_text = __( 'Manage Settings', 'taxonomy-images' );
 
1189
 
1190
  $link = '';
1191
- if ( current_user_can( 'manage_options' ) )
1192
  $link = '<a href="' . esc_url( add_query_arg( array( 'page' => 'taxonomy_image_plugin_settings' ), admin_url( 'options-general.php' ) ) ) . '">' . esc_html( $link_text ) . '</a>';
 
1193
 
1194
  return $link;
1195
  }
1
  <?php
2
+
3
  /*
4
  Plugin Name: Taxonomy Images
5
  Plugin URI: https://github.com/benhuson/Taxonomy-Images
6
  Description: Associate images from your media library to categories, tags and custom taxonomies.
7
+ Version: 0.9.1
8
  Author: Michael Fields, Ben Huson
9
  Author URI: http://wordpress.mfields.org/
10
  License: GNU General Public License v2 or later
40
  * @alter 0.7.4
41
  */
42
  function taxonomy_image_plugin_version() {
43
+ return '0.9.1';
44
  }
45
 
46
 
122
  if ( isset( $fields['image-size'] ) && isset( $post->ID ) ) {
123
  $image_id = (int) $post->ID;
124
 
125
+ $o = '<div class="taxonomy-image-modal-control" id="' . esc_attr( 'taxonomy-image-modal-control-' . $image_id ) . '">';
126
+ $o .= '<span class="button create-association">' . sprintf( esc_html__( 'Associate with %1$s', 'taxonomy-images' ), '<span class="term-name">' . esc_html__( 'this term', 'taxonomy-images' ) . '</span>' ) . '</span>';
127
+ $o .= '<span class="remove-association">' . sprintf( esc_html__( 'Remove association with %1$s', 'taxonomy-images' ), '<span class="term-name">' . esc_html__( 'this term', 'taxonomy-images' ) . '</span>' ) . '</span>';
128
+ $o .= '<input class="taxonomy-image-button-image-id" name="' . esc_attr( 'taxonomy-image-button-image-id-' . $image_id ) . '" type="hidden" value="' . esc_attr( $image_id ) . '" />';
129
+ $o .= '<input class="taxonomy-image-button-nonce-create" name="' . esc_attr( 'taxonomy-image-button-nonce-create-' . $image_id ) . '" type="hidden" value="' . esc_attr( wp_create_nonce( 'taxonomy-image-plugin-create-association' ) ) . '" />';
130
+ $o .= '<input class="taxonomy-image-button-nonce-remove" name="' . esc_attr( 'taxonomy-image-button-nonce-remove-' . $image_id ) . '" type="hidden" value="' . esc_attr( wp_create_nonce( 'taxonomy-image-plugin-remove-association' ) ) . '" />';
131
+ $o .= '</div>';
 
 
 
 
 
 
132
 
133
  $fields['image-size']['extra_rows']['taxonomy-image-plugin-button']['html'] = $o;
134
  }
156
 
157
  /* Return url to custom intermediate size if it exists. */
158
  $img = image_get_intermediate_size( $id, $detail['name'] );
159
+ if ( isset( $img['url'] ) ) {
160
  return $img['url'];
161
+ }
162
 
163
  /* Detail image does not exist, attempt to create it. */
164
  $wp_upload_dir = wp_upload_dir();
173
  $detail['size'][0],
174
  $detail['size'][1],
175
  $detail['size'][2]
176
+ );
177
 
178
  /* Image creation successful. Generate and cache image metadata. Return url. */
179
  if ( ! is_wp_error( $new ) ) {
189
 
190
  /* Custom intermediate size cannot be created, try for thumbnail. */
191
  $img = image_get_intermediate_size( $id, 'thumbnail' );
192
+ if ( isset( $img['url'] ) ) {
193
  return $img['url'];
194
+ }
195
 
196
  /* Thumbnail cannot be found, try fullsize. */
197
  $url = wp_get_attachment_url( $id );
198
+ if ( ! empty( $url ) ) {
199
  return $url;
200
+ }
201
 
202
+ /**
203
  * No image can be found.
204
  * This is most likely caused by a user deleting an attachment before deleting it's association with a taxonomy.
205
  * If we are in the administration panels:
210
  $assoc = taxonomy_image_plugin_get_associations();
211
  foreach ( $assoc as $term => $img ) {
212
  if ( $img === $id ) {
213
+ unset( $assoc[ $term ] );
214
  }
215
  }
216
  update_option( 'taxonomy_image_plugin', $assoc );
242
  $tt_id = absint( $tt_id );
243
  $im_id = absint( $im_id );
244
  if ( 0 < $tt_id && 0 < $im_id )
245
+ $o[ $tt_id ] = $im_id;
246
  }
247
  return $o;
248
  }
340
  */
341
  function taxonomy_images_settings_menu() {
342
  add_options_page(
343
+ esc_html__( 'Taxonomy Images', 'taxonomy-images' ), // HTML <title> tag.
344
+ esc_html__( 'Taxonomy Images', 'taxonomy-images' ), // Link text in admin menu.
345
  'manage_options',
346
  'taxonomy_image_plugin_settings',
347
  'taxonomy_image_plugin_settings_page'
389
  $settings = get_option( 'taxonomy_image_plugin_settings' );
390
  $taxonomies = get_taxonomies( array(), 'objects' );
391
  foreach ( (array) $taxonomies as $taxonomy ) {
392
+ if ( ! isset( $taxonomy->name ) ) {
393
  continue;
394
+ }
395
 
396
+ if ( ! isset( $taxonomy->label ) ) {
397
  continue;
398
+ }
399
 
400
+ if ( ! isset( $taxonomy->show_ui ) || empty( $taxonomy->show_ui ) ) {
401
  continue;
402
+ }
403
 
404
  $id = 'taxonomy-images-' . $taxonomy->name;
405
 
406
  $checked = '';
407
+ if ( isset( $settings['taxonomies'] ) && in_array( $taxonomy->name, (array) $settings['taxonomies'] ) ) {
408
  $checked = ' checked="checked"';
409
+ }
410
 
411
  print "\n" . '<p><label for="' . esc_attr( $id ) . '">';
412
  print '<input' . $checked . ' id="' . esc_attr( $id ) . '" type="checkbox" name="taxonomy_image_plugin_settings[taxonomies][]" value="' . esc_attr( $taxonomy->name ) . '" />';
447
  */
448
  function taxonomy_image_plugin_get_term_info( $tt_id ) {
449
  static $cache = array();
450
+ if ( isset( $cache[ $tt_id ] ) ) {
451
+ return $cache[ $tt_id ];
452
  }
453
 
454
  global $wpdb;
455
 
456
  $data = $wpdb->get_results( $wpdb->prepare( "SELECT term_id, taxonomy FROM $wpdb->term_taxonomy WHERE term_taxonomy_id = %d LIMIT 1", $tt_id ) );
457
+ if ( isset( $data[0]->term_id ) ) {
458
+ $cache[ $tt_id ]['term_id'] = absint( $data[0]->term_id );
459
+ }
460
 
461
+ if ( isset( $data[0]->taxonomy ) ) {
462
+ $cache[ $tt_id ]['taxonomy'] = sanitize_title_with_dashes( $data[0]->taxonomy );
463
+ }
464
 
465
+ if ( isset( $cache[ $tt_id ] ) ) {
466
+ return $cache[ $tt_id ];
467
+ }
468
 
469
  return array();
470
  }
483
  */
484
  function taxonomy_image_plugin_check_permissions( $tt_id ) {
485
  $data = taxonomy_image_plugin_get_term_info( $tt_id );
486
+ if ( ! isset( $data['taxonomy'] ) ) {
487
  return false;
488
+ }
489
 
490
  $taxonomy = get_taxonomy( $data['taxonomy'] );
491
+ if ( ! isset( $taxonomy->cap->edit_terms ) ) {
492
  return false;
493
+ }
494
 
495
  return current_user_can( $taxonomy->cap->edit_terms );
496
  }
556
  }
557
 
558
  $assoc = taxonomy_image_plugin_get_associations();
559
+ $assoc[ $tt_id ] = $image_id;
560
  if ( update_option( 'taxonomy_image_plugin', taxonomy_image_plugin_sanitize_associations( $assoc ) ) ) {
561
  taxonomy_image_plugin_json_response( array(
562
  'status' => 'good',
563
  'why' => esc_html__( 'Image successfully associated', 'taxonomy-images' ),
564
  'attachment_thumb_src' => taxonomy_image_plugin_get_image_src( $image_id )
565
  ) );
566
+ } else {
 
567
  taxonomy_image_plugin_json_response( array(
568
  'status' => 'bad',
569
  'why' => esc_html__( 'Association could not be created', 'taxonomy-images' )
622
  }
623
 
624
  $assoc = taxonomy_image_plugin_get_associations();
625
+ if ( ! isset( $assoc[ $tt_id ] ) ) {
626
  taxonomy_image_plugin_json_response( array(
627
  'status' => 'good',
628
  'why' => esc_html__( 'Nothing to remove', 'taxonomy-images' )
629
  ) );
630
  }
631
 
632
+ unset( $assoc[ $tt_id ] );
633
 
634
  if ( update_option( 'taxonomy_image_plugin', $assoc ) ) {
635
  taxonomy_image_plugin_json_response( array(
636
  'status' => 'good',
637
  'why' => esc_html__( 'Association successfully removed', 'taxonomy-images' )
638
  ) );
639
+ } else {
 
640
  taxonomy_image_plugin_json_response( array(
641
  'status' => 'bad',
642
  'why' => esc_html__( 'Association could not be removed', 'taxonomy-images' )
660
  */
661
  function taxonomy_image_plugin_get_associations( $refresh = false ) {
662
  static $associations = array();
663
+ if ( empty( $associations ) || $refresh ) {
664
  $associations = taxonomy_image_plugin_sanitize_associations( get_option( 'taxonomy_image_plugin' ) );
665
+ }
666
 
667
  return $associations;
668
  }
682
  */
683
  function taxonomy_image_plugin_add_dynamic_hooks() {
684
  $settings = get_option( 'taxonomy_image_plugin_settings' );
685
+ if ( ! isset( $settings['taxonomies'] ) ) {
686
  return;
687
+ }
688
 
689
  foreach ( $settings['taxonomies'] as $taxonomy ) {
690
  add_filter( 'manage_' . $taxonomy . '_custom_column', 'taxonomy_image_plugin_taxonomy_rows', 15, 3 );
783
  $term = get_term( $term_id, $taxonomy );
784
 
785
  $tt_id = 0;
786
+ if ( isset( $term->term_taxonomy_id ) ) {
787
  $tt_id = (int) $term->term_taxonomy_id;
788
+ }
789
 
790
  $taxonomy = get_taxonomy( $taxonomy );
791
 
792
  $name = esc_html__( 'term', 'taxonomy-images' );
793
+ if ( isset( $taxonomy->labels->singular_name ) ) {
794
  $name = strtolower( $taxonomy->labels->singular_name );
795
+ }
796
 
797
  $hide = ' hide';
798
  $attachment_id = 0;
809
  $nonce = wp_create_nonce( 'taxonomy-image-plugin-create-association' );
810
  $nonce_remove = wp_create_nonce( 'taxonomy-image-plugin-remove-association' );
811
 
812
+ $o = "\n" . '<div id="' . esc_attr( 'taxonomy-image-control-' . $tt_id ) . '" class="taxonomy-image-control hide-if-no-js">';
813
+ $o .= "\n" . '<a class="thickbox taxonomy-image-thumbnail" data-tt-id="' . $tt_id . '" data-attachment-id="' . $attachment_id . '" data-nonce="' . $nonce . '" href="' . esc_url( admin_url( 'media-upload.php' ) . '?type=image&tab=library&post_id=0&TB_iframe=true' ) . '" title="' . esc_attr( sprintf( __( 'Associate an image with the %1$s named &#8220;%2$s&#8221;.', 'taxonomy-images' ), $name, $term->name ) ) . '"><img id="' . esc_attr( 'taxonomy_image_plugin_' . $tt_id ) . '" src="' . esc_url( $img ) . '" alt="" /></a>';
814
+ $o .= "\n" . '<a class="control upload thickbox" data-tt-id="' . $tt_id . '" data-attachment-id="' . $attachment_id . '" data-nonce="' . $nonce . '" href="' . esc_url( admin_url( 'media-upload.php' ) . '?type=image&tab=type&post_id=0&TB_iframe=true' ) . '" title="' . esc_attr( sprintf( __( 'Upload a new image for this %s.', 'taxonomy-images' ), $name ) ) . '">' . esc_html__( 'Upload.', 'taxonomy-images' ) . '</a>';
815
+ $o .= "\n" . '<a class="control remove' . $hide . '" data-tt-id="' . $tt_id . '" data-nonce="' . $nonce_remove . '" href="#" id="' . esc_attr( 'remove-' . $tt_id ) . '" rel="' . esc_attr( $tt_id ) . '" title="' . esc_attr( sprintf( __( 'Remove image from this %s.', 'taxonomy-images' ), $name ) ) . '">' . esc_html__( 'Delete', 'taxonomy-images' ) . '</a>';
816
+ $o .= "\n" . '<input type="hidden" class="tt_id" name="' . esc_attr( 'tt_id-' . $tt_id ) . '" value="' . esc_attr( $tt_id ) . '" />';
817
+ $o .= "\n" . '<input type="hidden" class="image_id" name="' . esc_attr( 'image_id-' . $tt_id ) . '" value="' . esc_attr( $attachment_id ) . '" />';
818
 
819
+ if ( isset( $term->name ) && isset( $term->slug ) ) {
820
+ $o .= "\n" . '<input type="hidden" class="term_name" name="' . esc_attr( 'term_name-' . $term->slug ) . '" value="' . esc_attr( $term->name ) . '" />';
821
+ }
 
822
 
823
+ $o .= "\n" . '</div>';
824
  return $o;
825
  }
826
 
844
  array( 'jquery' ),
845
  taxonomy_image_plugin_version()
846
  );
847
+ wp_localize_script( 'taxonomy-images-media-upload-popup', 'TaxonomyImagesModal', array(
848
  'termBefore' => esc_html__( '&#8220;', 'taxonomy-images' ),
849
  'termAfter' => esc_html__( '&#8221;', 'taxonomy-images' ),
850
  'associating' => esc_html__( 'Associating &#8230;', 'taxonomy-images' ),
862
  * @access private
863
  */
864
  function taxonomy_image_plugin_edit_tags_js() {
865
+ if ( false == taxonomy_image_plugin_is_screen_active() ) {
866
  return;
867
+ }
868
 
869
  if ( version_compare( get_bloginfo( 'version' ), 3.5 ) >= 0 ) {
870
  return;
876
  array( 'jquery', 'thickbox' ),
877
  taxonomy_image_plugin_version()
878
  );
879
+ wp_localize_script( 'taxonomy-image-plugin-edit-tags', 'taxonomyImagesPlugin', array(
880
  'nonce' => wp_create_nonce( 'taxonomy-image-plugin-remove-association' ),
881
  'img_src' => taxonomy_image_plugin_url( 'default.png' ),
882
  'tt_id' => 0,
893
  * @access private
894
  */
895
  function taxonomy_image_plugin_css_admin() {
896
+ if ( false == taxonomy_image_plugin_is_screen_active() && current_filter() != 'admin_print_styles-media-upload-popup' ) {
897
  return;
898
+ }
899
 
900
  wp_enqueue_style(
901
  'taxonomy-image-plugin-edit-tags',
916
  * @access private
917
  */
918
  function taxonomy_image_plugin_css_thickbox() {
919
+ if ( false == taxonomy_image_plugin_is_screen_active() ) {
920
  return;
921
+ }
922
 
923
  wp_enqueue_style( 'thickbox' );
924
  }
939
  * @access private
940
  */
941
  function taxonomy_image_plugin_css_public() {
942
+ if ( apply_filters( 'taxonomy-images-disable-public-css', false ) ) {
943
  return;
944
+ }
945
 
946
  wp_enqueue_style(
947
  'taxonomy-image-plugin-public',
975
  */
976
  function taxonomy_image_plugin_activate() {
977
  $associations = get_option( 'taxonomy_image_plugin' );
978
+ if ( false === $associations ) {
979
  add_option( 'taxonomy_image_plugin', array() );
980
+ }
981
 
982
  $settings = get_option( 'taxonomy_image_plugin_settings' );
983
  if ( false === $settings ) {
999
  */
1000
  function taxonomy_image_plugin_is_screen_active() {
1001
  $screen = get_current_screen();
1002
+ if ( ! isset( $screen->taxonomy ) ) {
1003
  return false;
1004
+ }
1005
 
1006
  $settings = get_option( 'taxonomy_image_plugin_settings' );
1007
+ if ( ! isset( $settings['taxonomies'] ) ) {
1008
  return false;
1009
+ }
1010
 
1011
+ if ( in_array( $screen->taxonomy, $settings['taxonomies'] ) ) {
1012
  return true;
1013
+ }
1014
 
1015
  return false;
1016
  }
1031
  */
1032
  function taxonomy_image_plugin_cache_images( $posts ) {
1033
  $assoc = taxonomy_image_plugin_get_associations();
1034
+ if ( empty( $assoc ) ) {
1035
  return;
1036
+ }
1037
 
1038
  $tt_ids = array();
1039
  foreach ( (array) $posts as $post ) {
1040
+ if ( ! isset( $post->ID ) || ! isset( $post->post_type ) ) {
1041
  continue;
1042
+ }
1043
 
1044
  $taxonomies = get_object_taxonomies( $post->post_type );
1045
+ if ( empty( $taxonomies ) ) {
1046
  continue;
1047
+ }
1048
 
1049
  foreach ( $taxonomies as $taxonomy ) {
1050
  $the_terms = get_the_terms( $post->ID, $taxonomy );
1060
 
1061
  $image_ids = array();
1062
  foreach ( $tt_ids as $tt_id ) {
1063
+ if ( ! isset( $assoc[ $tt_id ] ) ) {
1064
  continue;
1065
+ }
1066
 
1067
+ if ( in_array( $assoc[ $tt_id ], $image_ids ) ) {
1068
  continue;
1069
+ }
1070
 
1071
+ $image_ids[] = $assoc[ $tt_id ];
1072
  }
1073
 
1074
+ if ( empty( $image_ids ) ) {
1075
  return;
1076
+ }
1077
 
1078
  $images = get_posts( array(
1079
  'include' => $image_ids,
1117
  function taxonomy_image_plugin_check_taxonomy( $taxonomy, $filter ) {
1118
  if ( ! taxonomy_exists( $taxonomy ) ) {
1119
  trigger_error( sprintf( esc_html__( 'The %1$s argument for %2$s is set to %3$s which is not a registered taxonomy. Please check the spelling and update the argument.', 'taxonomy-images' ),
1120
+ '<var>' . esc_html__( 'taxonomy', 'taxonomy-images' ) . '</var>',
1121
+ '<code>' . esc_html( $filter ) . '</code>',
1122
+ '<strong>' . esc_html( $taxonomy ) . '</strong>'
1123
  ) );
1124
  return false;
1125
  }
1180
  function taxonomy_images_plugin_row_meta( $links, $file ) {
1181
  static $plugin_name = '';
1182
 
1183
+ if ( empty( $plugin_name ) ) {
1184
  $plugin_name = plugin_basename( __FILE__ );
1185
+ }
1186
 
1187
+ if ( $plugin_name != $file ) {
1188
  return $links;
1189
+ }
1190
 
1191
  $link = taxonomy_images_plugin_settings_page_link( esc_html__( 'Settings', 'taxonomy-images' ) );
1192
+ if ( ! empty( $link ) ) {
1193
  $links[] = $link;
1194
+ }
1195
 
1196
  $links[] = '<a href="http://wordpress.mfields.org/donate/">' . esc_html__( 'Donate', 'taxonomy-images' ) . '</a>';
1197
 
1210
  * @since 0.7
1211
  */
1212
  function taxonomy_images_plugin_settings_page_link( $link_text = '' ) {
1213
+ if ( empty( $link_text ) ) {
1214
  $link_text = __( 'Manage Settings', 'taxonomy-images' );
1215
+ }
1216
 
1217
  $link = '';
1218
+ if ( current_user_can( 'manage_options' ) ) {
1219
  $link = '<a href="' . esc_url( add_query_arg( array( 'page' => 'taxonomy_image_plugin_settings' ), admin_url( 'options-general.php' ) ) ) . '">' . esc_html( $link_text ) . '</a>';
1220
+ }
1221
 
1222
  return $link;
1223
  }