Theme Check - Version 20160523.1

Version Description

  • Fix for theme-names with dashes in them
  • Comments stripping changes
  • Many changes by the theme review team and others. See Github for full change list.
Download this release

Release Info

Developer Otto42
Plugin Icon 128x128 Theme Check
Version 20160523.1
Comparing to
See all releases

Code changes from version 20120823 to 20160523.1

Files changed (66) hide show
  1. assets/gray-grad.png +0 -0
  2. style.css → assets/style.css +2 -2
  3. changelog.txt +120 -0
  4. checkbase.php +32 -22
  5. checks/admin_menu.php +18 -12
  6. checks/adminbar.php +42 -0
  7. checks/badthings.php +13 -13
  8. checks/basic.php +16 -20
  9. checks/cdn.php +44 -0
  10. checks/comment_reply.php +4 -4
  11. checks/commpage.php +4 -2
  12. checks/constants.php +3 -2
  13. checks/content-width.php +3 -3
  14. checks/customizer.php +44 -0
  15. checks/customs.php +2 -2
  16. checks/dep_recommend.php +34 -49
  17. checks/deprecated.php +165 -31
  18. checks/deregister.php +30 -0
  19. checks/directories.php +4 -4
  20. checks/editorstyle.php +1 -1
  21. checks/favicon.php +26 -0
  22. checks/filenames.php +19 -18
  23. checks/{artisteer.php → generated.php} +13 -4
  24. checks/gravatar.php +1 -1
  25. checks/i18n.php +14 -8
  26. checks/iframes.php +2 -2
  27. checks/include.php +3 -3
  28. checks/included-plugins.php +34 -0
  29. checks/lineendings.php +4 -4
  30. checks/links.php +3 -4
  31. checks/malware.php +3 -3
  32. checks/more_deprecated.php +43 -11
  33. checks/navmenu.php +1 -1
  34. checks/nonprintable.php +1 -1
  35. checks/phpshort.php +2 -2
  36. checks/plugin-territory.php +41 -0
  37. checks/post-formats.php +1 -1
  38. checks/postsnav.php +5 -2
  39. checks/postthumb.php +2 -2
  40. checks/required.php +0 -31
  41. checks/screenshot.php +15 -6
  42. checks/searchform.php +2 -2
  43. checks/style_needed.php +18 -16
  44. checks/style_suggested.php +1 -1
  45. checks/style_tags.php +17 -12
  46. checks/suggested.php +0 -43
  47. checks/tags.php +1 -1
  48. checks/textdomain.php +140 -47
  49. checks/theme_support.php +0 -33
  50. checks/time_date.php +1 -1
  51. checks/title.php +60 -0
  52. checks/uri.php +31 -0
  53. checks/widgets.php +42 -0
  54. checks/worms.php +6 -12
  55. lang/themecheck-de_DE.mo +0 -0
  56. lang/themecheck-de_DE.po +0 -364
  57. lang/themecheck-ja.mo +0 -0
  58. lang/themecheck-ja.po +0 -719
  59. lang/themecheck-ro_RO.mo +0 -0
  60. lang/themecheck-ro_RO.po +0 -364
  61. lang/themecheck-sr_RS.mo +0 -0
  62. lang/themecheck-sr_RS.po +0 -364
  63. lang/themecheck.pot +0 -547
  64. main.php +94 -64
  65. readme.txt +40 -12
  66. theme-check.php +55 -40
assets/gray-grad.png ADDED
Binary file
style.css → assets/style.css RENAMED
@@ -36,7 +36,7 @@ form {
36
  .theme-check h2 {
37
  margin:0 0 20px 0;
38
  padding:0 20px;
39
- background:#dfdfdf url("../../../wp-admin/images/gray-grad.png") repeat-x left top;
40
  font-size:20px;
41
  border-bottom:1px solid #ccc;
42
  }
@@ -74,4 +74,4 @@ form {
74
  .theme-info span.info {
75
  margin-left:100px;
76
  display:block;
77
- }
36
  .theme-check h2 {
37
  margin:0 0 20px 0;
38
  padding:0 20px;
39
+ background:#dfdfdf url("gray-grad.png") repeat-x left top;
40
  font-size:20px;
41
  border-bottom:1px solid #ccc;
42
  }
74
  .theme-info span.info {
75
  margin-left:100px;
76
  display:block;
77
+ }
changelog.txt ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ = 20140929.1 =
2
+ * Added new checks and updates from Frank Klein at Automattic. Thanks Frank!
3
+ * Updated deprecated function listings
4
+ * Customizer check: All add_settings must use sanitization callbacks, for security
5
+ * Plugin territory checks: Themes must not register post types or taxonomies or add shortcodes for post content
6
+ * Widgets: Calls to register_sidebar must be called from the widgets_init action hook
7
+ * Title: <title> tags must exist and not have anything in them other than a call to wp_title()
8
+ * CDN: Checks for use of common CDNs (recommended only)
9
+ * Note: Changed plugin and author URIs due to old URIs being invalid. These may change again in the future, the URIs to my own site are temporarily only.
10
+
11
+ = 20131213.1 =
12
+ * Corrected errors not being displayed by the plugin and it incorrectly giving a "pass" result to everything.
13
+
14
+ = 20131212.1 =
15
+ * Updated for 3.8
16
+ * Most files have changed for better I18N support, so the language files were removed temporarily until translation can be redone.
17
+
18
+ = 20121211.1 =
19
+ * Updated for 3.5
20
+ * Remove Paypal button.
21
+
22
+ = 20110805.1 =
23
+ * TimThumb checks removed.
24
+ * Proper i18n loading. Fixes http://bit.ly/ouD5Ke.
25
+ * Screenshot now previewed in results, with filesize and dimensions.
26
+
27
+ = 20110602.2 =
28
+ * New file list functions hidden folders now detectable.
29
+ * Better fopen checks.
30
+ * TimThumb version bump
31
+
32
+ = 20110602.1 =
33
+ * DOS/UNIX line ending style checks are now a requirement for proper theme uploading.
34
+ * Timthumb version bump
35
+ * Several fixes reported by GaryJ
36
+ * 3.2 deprecated functions added
37
+
38
+ = 20110412.1 =
39
+ * Fix regex's
40
+ * Added check for latest footer injection hack.
41
+ * Fix tags check to use new content function correctly
42
+ * Sync of all changes made for wporg uploader theme-check.
43
+ * Updated checks post 3.1. added screenshot check to svn.
44
+ * Fix links check to not return a false failure in some cases
45
+ * rm one of the checks that causes problems on wporg uploader (and which is also unnecessary)
46
+ * Move unneeded functions out of checkbase into main.php.
47
+ * Minor formatting changes only (spacing and such)
48
+ * Add check for wp_link_pages() + fix eval() check
49
+
50
+ = 20110219.2 =
51
+ * Merged new UI props Gua Bob [1](http://guabob.com/)
52
+ * Last tested theme is always pre-selected in the themes list.
53
+ * Fixed php error in admin_menu.php
54
+
55
+ = 20110219.1 =
56
+ * See [commit log](https://github.com/Pross/theme-check/commits/) for changes.
57
+
58
+ = 20110201.2 =
59
+ * UI bug fixes [forum post](http://bit.ly/ff7amN) props Mamaduka.
60
+ * Textdomain checks for twentyten and no domain.
61
+ * Fix div not closing props Mamaduka.
62
+
63
+ = 20110201.1 =
64
+ * i18n working
65
+ * sr_RS de_DE ro_RO langs props Daniel Tara and Emil Uzelac.
66
+ * Child theme support added, checks made against parent AND child at runtime.
67
+ * Trac formatting button added for reviewers.
68
+
69
+ = 20101228.3 =
70
+ * Last revision for 3.1 (hopefully)
71
+ * Chips suggestion of checking for inclusion of searchform.php ( not
72
+ perfect yet, need more examples to look for ).
73
+ * add_theme_page is required, all others flagged and displayed with line
74
+ numbers.
75
+ * <?= detected properly, short tags outputted with line umbers.
76
+ * Mostly internationalized, needs translations now.
77
+ * Bug fixes.
78
+
79
+ = 20101228.2 =
80
+ * Added menu checking.
81
+ * ThemeURI AuthourURI added to results.
82
+ * Lots of small fixes.
83
+ * Started translation.
84
+
85
+ = 20101228.1 =
86
+ * Fix embed_defaults filter check and stylesheet file data check.
87
+
88
+ = 20101226.1 =
89
+ * Whole system redesign to allow easier synching with WordPress.org uploader. Many other additions/subtractions/changes as well.
90
+ * WordPress 3.1 guidelines added, to help theme authors ensure compatibility for upcoming release.
91
+
92
+ = 20101110.7 =
93
+ * Re-added malware.php checks for fopen and file_get_contents (INFO)
94
+ * fixed a couple of undefined index errors.
95
+
96
+ = 20101110.4_r2 =
97
+ * Fixed Warning: Wrong parameter count for stristr()
98
+
99
+ = 20101110.4_r1 =
100
+ * Added `echo` to suggested.php
101
+
102
+ = 20101110.4 =
103
+ * Fixed deprecated function call to get_plugins()
104
+
105
+ = 20101110.3 =
106
+ * Fixed undefined index.
107
+
108
+ = 20101110.2 =
109
+ * Missing `<` in main.php
110
+ * Added conditional checks for licence.txt OR Licence tags in style.css
111
+ * UI improvements.
112
+
113
+ = 20101110.1 =
114
+ * Date fix!
115
+
116
+ = 10112010_r1 =
117
+ * Fixed hardcoded links check. Added FAQ
118
+
119
+ = 10112010 =
120
+ * First release.
checkbase.php CHANGED
@@ -60,7 +60,7 @@ function display_themechecks() {
60
  }
61
  }
62
  }
63
-
64
  if ( defined( 'TC_TRAC' ) ) {
65
 
66
  if ( defined( 'TC_PRE' ) ) $results = TC_PRE . $results;
@@ -78,6 +78,9 @@ function checkcount() {
78
 
79
  // some functions theme checks use
80
  function tc_grep( $error, $file ) {
 
 
 
81
  $lines = file( $file, FILE_IGNORE_NEW_LINES ); // Read the theme file into an array
82
  $line_index = 0;
83
  $bad_lines = '';
@@ -88,25 +91,32 @@ function tc_grep( $error, $file ) {
88
  $error = ltrim( $error );
89
  $pre = ( FALSE !== ( $pos = strpos( $this_line, $error ) ) ? substr( $this_line, 0, $pos ) : FALSE );
90
  $pre = ltrim( htmlspecialchars( $pre ) );
91
- $bad_lines .= __("<pre class='tc-grep'>Line ", "themecheck") . ( $line_index+1 ) . ": " . $pre . htmlspecialchars( substr( stristr( $this_line, $error ), 0, 75 ) ) . "</pre>";
92
  }
93
  $line_index++;
94
  }
95
- return str_replace( $error, '<span class="tc-grep">' . $error . '</span>', $bad_lines );
96
  }
97
 
98
  function tc_preg( $preg, $file ) {
 
 
 
99
  $lines = file( $file, FILE_IGNORE_NEW_LINES ); // Read the theme file into an array
100
  $line_index = 0;
101
  $bad_lines = '';
 
102
  foreach( $lines as $this_line ) {
103
  if ( preg_match( $preg, $this_line, $matches ) ) {
104
  $error = $matches[0];
105
  $this_line = str_replace( '"', "'", $this_line );
106
  $error = ltrim( $error );
107
- $pre = ( FALSE !== ( $pos = strpos( $this_line, $error ) ) ? substr( $this_line, 0, $pos ) : FALSE );
 
 
 
108
  $pre = ltrim( htmlspecialchars( $pre ) );
109
- $bad_lines .= __("<pre class='tc-grep'>Line ", "themecheck") . ( $line_index+1 ) . ": " . $pre . htmlspecialchars( substr( stristr( $this_line, $error ), 0, 75 ) ) . "</pre>";
110
  }
111
  $line_index++;
112
 
@@ -131,7 +141,7 @@ function tc_strxchr($haystack, $needle, $l_inclusive = 0, $r_inclusive = 0){
131
  }
132
 
133
  function tc_filename( $file ) {
134
- $filename = ( preg_match( '/themes\/[a-z0-9]*\/(.*)/', $file, $out ) ) ? $out[1] : basename( $file );
135
  return $filename;
136
  }
137
 
@@ -153,7 +163,7 @@ function listdir( $dir ) {
153
  $files = array();
154
  $dir_iterator = new RecursiveDirectoryIterator( $dir );
155
  $iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST);
156
-
157
  foreach ($iterator as $file) {
158
  array_push( $files, $file->getPathname() );
159
  }
@@ -174,9 +184,9 @@ function old_listdir( $start_dir='.' ) {
174
  array_push( $files, $filepath );
175
  }
176
  closedir( $fh );
177
-
178
  } else {
179
-
180
  # false if the function was called with an invalid non-directory argument
181
  $files = false;
182
  }
@@ -208,31 +218,31 @@ function get_theme_data_from_contents( $theme_data ) {
208
  );
209
 
210
  $theme_data = str_replace ( '\r', '\n', $theme_data );
211
- preg_match( '|Theme Name:(.*)$|mi', $theme_data, $theme_name );
212
- preg_match( '|Theme URI:(.*)$|mi', $theme_data, $theme_uri );
213
- preg_match( '|Description:(.*)$|mi', $theme_data, $description );
214
 
215
- if ( preg_match( '|Author URI:(.*)$|mi', $theme_data, $author_uri ) )
216
  $author_uri = esc_url( trim( $author_uri[1]) );
217
  else
218
  $author_uri = '';
219
 
220
- if ( preg_match( '|Template:(.*)$|mi', $theme_data, $template ) )
221
  $template = wp_kses( trim( $template[1] ), $themes_allowed_tags );
222
  else
223
  $template = '';
224
 
225
- if ( preg_match( '|Version:(.*)|i', $theme_data, $version ) )
226
  $version = wp_kses( trim( $version[1] ), $themes_allowed_tags );
227
  else
228
  $version = '';
229
 
230
- if ( preg_match('|Status:(.*)|i', $theme_data, $status) )
231
  $status = wp_kses( trim( $status[1] ), $themes_allowed_tags );
232
  else
233
  $status = 'publish';
234
 
235
- if ( preg_match('|Tags:(.*)|i', $theme_data, $tags) )
236
  $tags = array_map( 'trim', explode( ',', wp_kses( trim( $tags[1] ), array() ) ) );
237
  else
238
  $tags = array();
@@ -243,7 +253,7 @@ function get_theme_data_from_contents( $theme_data ) {
243
 
244
  $description = ( isset( $description[1] ) ) ? wp_kses( trim( $description[1] ), $themes_allowed_tags ) : '';
245
 
246
- if ( preg_match( '|Author:(.*)$|mi', $theme_data, $author_name ) ) {
247
  if ( empty( $author_uri ) ) {
248
  $author = wp_kses( trim( $author_name[1] ), $themes_allowed_tags );
249
  } else {
@@ -261,7 +271,7 @@ function get_theme_data_from_contents( $theme_data ) {
261
  *
262
  */
263
  function tc_get_themes() {
264
-
265
  if ( ! class_exists( 'WP_Theme' ) )
266
  return get_themes();
267
 
@@ -280,11 +290,11 @@ function tc_get_themes() {
280
  $wp_themes[ $name ] = $theme;
281
  }
282
 
283
- return $wp_themes;
284
  }
285
 
286
  function tc_get_theme_data( $theme_file ) {
287
-
288
  if ( ! class_exists( 'WP_Theme' ) )
289
  return get_theme_data( $theme_file );
290
 
@@ -307,4 +317,4 @@ function tc_get_theme_data( $theme_file ) {
307
  'Template Version' => $theme->display( 'Template Version', false, false)
308
  );
309
  return $theme_data;
310
- }
60
  }
61
  }
62
  }
63
+
64
  if ( defined( 'TC_TRAC' ) ) {
65
 
66
  if ( defined( 'TC_PRE' ) ) $results = TC_PRE . $results;
78
 
79
  // some functions theme checks use
80
  function tc_grep( $error, $file ) {
81
+ if ( ! file_exists( $file ) ) {
82
+ return '';
83
+ }
84
  $lines = file( $file, FILE_IGNORE_NEW_LINES ); // Read the theme file into an array
85
  $line_index = 0;
86
  $bad_lines = '';
91
  $error = ltrim( $error );
92
  $pre = ( FALSE !== ( $pos = strpos( $this_line, $error ) ) ? substr( $this_line, 0, $pos ) : FALSE );
93
  $pre = ltrim( htmlspecialchars( $pre ) );
94
+ $bad_lines .= "<pre class='tc-grep'>". __("Line ", "theme-check") . ( $line_index+1 ) . ": " . $pre . htmlspecialchars( substr( stristr( $this_line, $error ), 0, 75 ) ) . "</pre>";
95
  }
96
  $line_index++;
97
  }
98
+ return str_replace( $error, '<span class="tc-grep">' . $error . '</span>', $bad_lines );
99
  }
100
 
101
  function tc_preg( $preg, $file ) {
102
+ if ( ! file_exists( $file ) ) {
103
+ return '';
104
+ }
105
  $lines = file( $file, FILE_IGNORE_NEW_LINES ); // Read the theme file into an array
106
  $line_index = 0;
107
  $bad_lines = '';
108
+ $error = '';
109
  foreach( $lines as $this_line ) {
110
  if ( preg_match( $preg, $this_line, $matches ) ) {
111
  $error = $matches[0];
112
  $this_line = str_replace( '"', "'", $this_line );
113
  $error = ltrim( $error );
114
+ $pre = '';
115
+ if ( !empty( $error ) ) {
116
+ $pre = ( FALSE !== ( $pos = strpos( $this_line, $error ) ) ? substr( $this_line, 0, $pos ) : FALSE );
117
+ }
118
  $pre = ltrim( htmlspecialchars( $pre ) );
119
+ $bad_lines .= "<pre class='tc-grep'>" . __("Line ", "theme-check") . ( $line_index+1 ) . ": " . $pre . htmlspecialchars( substr( stristr( $this_line, $error ), 0, 75 ) ) . "</pre>";
120
  }
121
  $line_index++;
122
 
141
  }
142
 
143
  function tc_filename( $file ) {
144
+ $filename = ( preg_match( '/themes\/[a-z0-9-]*\/(.*)/', $file, $out ) ) ? $out[1] : basename( $file );
145
  return $filename;
146
  }
147
 
163
  $files = array();
164
  $dir_iterator = new RecursiveDirectoryIterator( $dir );
165
  $iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST);
166
+
167
  foreach ($iterator as $file) {
168
  array_push( $files, $file->getPathname() );
169
  }
184
  array_push( $files, $filepath );
185
  }
186
  closedir( $fh );
187
+
188
  } else {
189
+
190
  # false if the function was called with an invalid non-directory argument
191
  $files = false;
192
  }
218
  );
219
 
220
  $theme_data = str_replace ( '\r', '\n', $theme_data );
221
+ preg_match( '|^[ \t\/*#@]*Theme Name:(.*)$|mi', $theme_data, $theme_name );
222
+ preg_match( '|^[ \t\/*#@]*Theme URI:(.*)$|mi', $theme_data, $theme_uri );
223
+ preg_match( '|^[ \t\/*#@]*Description:(.*)$|mi', $theme_data, $description );
224
 
225
+ if ( preg_match( '|^[ \t\/*#@]*Author URI:(.*)$|mi', $theme_data, $author_uri ) )
226
  $author_uri = esc_url( trim( $author_uri[1]) );
227
  else
228
  $author_uri = '';
229
 
230
+ if ( preg_match( '|^[ \t\/*#@]*Template:(.*)$|mi', $theme_data, $template ) )
231
  $template = wp_kses( trim( $template[1] ), $themes_allowed_tags );
232
  else
233
  $template = '';
234
 
235
+ if ( preg_match( '|^[ \t\/*#@]*Version:(.*)|mi', $theme_data, $version ) )
236
  $version = wp_kses( trim( $version[1] ), $themes_allowed_tags );
237
  else
238
  $version = '';
239
 
240
+ if ( preg_match('|^[ \t\/*#@]*Status:(.*)|mi', $theme_data, $status) )
241
  $status = wp_kses( trim( $status[1] ), $themes_allowed_tags );
242
  else
243
  $status = 'publish';
244
 
245
+ if ( preg_match('|^[ \t\/*#@]*Tags:(.*)|mi', $theme_data, $tags) )
246
  $tags = array_map( 'trim', explode( ',', wp_kses( trim( $tags[1] ), array() ) ) );
247
  else
248
  $tags = array();
253
 
254
  $description = ( isset( $description[1] ) ) ? wp_kses( trim( $description[1] ), $themes_allowed_tags ) : '';
255
 
256
+ if ( preg_match( '|^[ \t\/*#@]*Author:(.*)$|mi', $theme_data, $author_name ) ) {
257
  if ( empty( $author_uri ) ) {
258
  $author = wp_kses( trim( $author_name[1] ), $themes_allowed_tags );
259
  } else {
271
  *
272
  */
273
  function tc_get_themes() {
274
+
275
  if ( ! class_exists( 'WP_Theme' ) )
276
  return get_themes();
277
 
290
  $wp_themes[ $name ] = $theme;
291
  }
292
 
293
+ return $wp_themes;
294
  }
295
 
296
  function tc_get_theme_data( $theme_file ) {
297
+
298
  if ( ! class_exists( 'WP_Theme' ) )
299
  return get_theme_data( $theme_file );
300
 
317
  'Template Version' => $theme->display( 'Template Version', false, false)
318
  );
319
  return $theme_data;
320
+ }
checks/admin_menu.php CHANGED
@@ -10,8 +10,8 @@ class AdminMenu implements themecheck {
10
  //check for levels deprecated in 2.0 in creating menus.
11
 
12
  $checks = array(
13
- '/([^_](add_(admin|submenu|menu|dashboard|posts|media|links|pages|comments|theme|plugins|users|management|options)_page)\s?\([^,]*,[^,]*,\s[\'|"]?(level_[0-9]|[0-9])[^;|\r|\r\n]*)/' => __( 'User levels were deprecated in <strong>2.0</strong>. Please see <a href="http://codex.wordpress.org/Roles_and_Capabilities">Roles_and_Capabilities</a>', 'themecheck' ),
14
- '/[^a-z0-9](current_user_can\s?\(\s?[\'\"]level_[0-9][\'\"]\s?\))[^\r|\r\n]*/' => __( 'User levels were deprecated in <strong>2.0</strong>. Please see <a href="http://codex.wordpress.org/Roles_and_Capabilities">Roles_and_Capabilities</a>', 'themecheck' )
15
  );
16
 
17
  foreach ( $php_files as $php_key => $phpfile ) {
@@ -20,29 +20,35 @@ class AdminMenu implements themecheck {
20
  if ( preg_match( $key, $phpfile, $matches ) ) {
21
  $filename = tc_filename( $php_key );
22
  $grep = ( isset( $matches[2] ) ) ? tc_grep( $matches[2], $php_key ) : tc_grep( $matches[1], $php_key );
23
- $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: <strong>%1$s</strong>. %2$s%3$s', 'themecheck'), $filename, $check, $grep );
24
  $ret = false;
25
  }
26
  }
27
  }
28
 
29
 
30
- //check for add_admin_page
 
31
 
32
  $checks = array(
33
- '/([^_]add_(admin|submenu|menu|dashboard|posts|media|links|pages|comments|plugins|users|management|options)_page\()/' => __( 'Themes should use <strong>add_theme_page()</strong> for adding admin pages.', 'themecheck' )
34
  );
35
 
36
 
37
  foreach ( $php_files as $php_key => $phpfile ) {
38
  foreach ( $checks as $key => $check ) {
39
  checkcount();
40
- if ( preg_match( $key, $phpfile, $matches ) ) {
41
- $filename = tc_filename( $php_key );
42
- $error = ltrim( rtrim( $matches[0], '(' ) );
43
- $grep = tc_grep( $error, $php_key );
44
- $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong>. %2$s%3$s', 'themecheck'), $filename, $check, $grep);
45
- $ret = false;
 
 
 
 
 
46
  }
47
  }
48
  }
@@ -53,4 +59,4 @@ class AdminMenu implements themecheck {
53
  function getError() { return $this->error; }
54
  }
55
 
56
- $themechecks[] = new AdminMenu;
10
  //check for levels deprecated in 2.0 in creating menus.
11
 
12
  $checks = array(
13
+ '/([^_](add_(admin|submenu|menu|dashboard|posts|media|links|pages|comments|theme|plugins|users|management|options)_page)\s?\([^,]*,[^,]*,\s[\'|"]?(level_[0-9]|[0-9])[^;|\r|\r\n]*)/' => __( 'User levels were deprecated in <strong>2.0</strong>. Please see <a href="https://codex.wordpress.org/Roles_and_Capabilities">Roles_and_Capabilities</a>', 'theme-check' ),
14
+ '/[^a-z0-9](current_user_can\s?\(\s?[\'\"]level_[0-9][\'\"]\s?\))[^\r|\r\n]*/' => __( 'User levels were deprecated in <strong>2.0</strong>. Please see <a href="https://codex.wordpress.org/Roles_and_Capabilities">Roles_and_Capabilities</a>', 'theme-check' )
15
  );
16
 
17
  foreach ( $php_files as $php_key => $phpfile ) {
20
  if ( preg_match( $key, $phpfile, $matches ) ) {
21
  $filename = tc_filename( $php_key );
22
  $grep = ( isset( $matches[2] ) ) ? tc_grep( $matches[2], $php_key ) : tc_grep( $matches[1], $php_key );
23
+ $this->error[] = sprintf('<span class="tc-lead tc-warning">'.__( 'WARNING', 'theme-check' ) . '</span>: <strong>%1$s</strong>. %2$s%3$s', $filename, $check, $grep );
24
  $ret = false;
25
  }
26
  }
27
  }
28
 
29
 
30
+ // check for add_admin_page's, except for add_theme_page
31
+ // Note to TGMPA: Stop trying to bypass theme check.
32
 
33
  $checks = array(
34
+ '/(?<!function)[^_>:](add_[^_\'",();]+?_page)/' => __( 'Themes should use <strong>add_theme_page()</strong> for adding admin pages.', 'theme-check' )
35
  );
36
 
37
 
38
  foreach ( $php_files as $php_key => $phpfile ) {
39
  foreach ( $checks as $key => $check ) {
40
  checkcount();
41
+ if ( preg_match_all( $key, $phpfile, $matches ) ) {
42
+ foreach ($matches[1] as $match) {
43
+ if ($match == 'add_theme_page') {
44
+ continue;
45
+ }
46
+ $filename = tc_filename( $php_key );
47
+ $error = ltrim( rtrim( $match, '(' ) );
48
+ $grep = tc_grep( $error, $php_key );
49
+ $this->error[] = sprintf('<span class="tc-lead tc-required">'.__( 'REQUIRED', 'theme-check' ) .'</span>: <strong>%1$s</strong>. %2$s%3$s', $filename, $check, $grep);
50
+ $ret = false;
51
+ }
52
  }
53
  }
54
  }
59
  function getError() { return $this->error; }
60
  }
61
 
62
+ $themechecks[] = new AdminMenu;
checks/adminbar.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * This checks, if the admin bar gets hidden by the theme
4
+ **/
5
+ class NoHiddenAdminBar implements themecheck {
6
+ protected $error = array();
7
+
8
+ function check( $php_files, $css_files, $other_files ) {
9
+ $ret = true;
10
+ checkcount();
11
+ $php_regex = "/(add_filter(\s*)\((\s*)(\"|')show_admin_bar(\"|')(\s*)(.*))|(([^\S])show_admin_bar(\s*)\((.*))/";
12
+ $css_regex = "/(#wpadminbar)/";
13
+
14
+ //Check php files for filter show_admin_bar and show_admin_bar()
15
+ foreach ( $php_files as $file_path => $file_content ) {
16
+
17
+ $filename = tc_filename( $file_path );
18
+
19
+ if ( preg_match( $php_regex, $file_content, $matches ) ) {
20
+ $this->error[] = sprintf( '<span class="tc-lead tc-required">' . __( 'REQUIRED', 'theme-check').'</span>: ' . __( 'You are not allowed to hide the admin bar.', 'theme-check' ),
21
+ '<strong>' . $filename . '</strong>');
22
+ $ret = false;
23
+ }
24
+ }
25
+
26
+ //Check CSS Files for #wpadminbar
27
+ foreach ( $css_files as $file_path => $file_content ) {
28
+
29
+ $filename = tc_filename( $file_path );
30
+
31
+ if ( preg_match( $css_regex, $file_content, $matches ) ) {
32
+ $this->error[] = sprintf( '<span class="tc-lead tc-required">' . __( 'REQUIRED', 'theme-check').'</span>: ' . __( 'You are not allowed to hide the admin bar.', 'theme-check' ),
33
+ '<strong>' . $filename . '</strong>');
34
+ $ret = false;
35
+ }
36
+ }
37
+ return $ret;
38
+ }
39
+
40
+ function getError() { return $this->error; }
41
+ }
42
+ $themechecks[] = new NoHiddenAdminBar;
checks/badthings.php CHANGED
@@ -6,15 +6,15 @@ class Bad_Checks implements themecheck {
6
  $ret = true;
7
 
8
  $checks = array(
9
- '/(?<![_|a-z0-9])eval\s?\(/i' => __( 'eval() is not allowed.', 'themecheck' ),
10
- '/[^a-z0-9](?<!_)(popen|proc_open|[^_]exec|shell_exec|system|passthru)\(/' => __( 'PHP sytem calls should be disabled by server admins anyway!', 'themecheck' ),
11
- '/\s?ini_set\(/' => __( 'Themes should not change server PHP settings', 'themecheck' ),
12
- '/base64_decode/' => __( 'base64_decode() is not allowed', 'themecheck' ),
13
- '/base64_encode/' => __( 'base64_encode() is not allowed', 'themecheck' ),
14
- '/uudecode/ims' => __( 'uudecode() is not allowed', 'themecheck' ),
15
- '/str_rot13/ims' => __( 'str_rot13() is not allowed', 'themecheck' ),
16
- '/cx=[0-9]{21}:[a-z0-9]{10}/' => __( 'Google search code detected', 'themecheck' ),
17
- '/pub-[0-9]{16}/i' => __( 'Googe advertising code detected', 'themecheck' )
18
  );
19
 
20
  $grep = '';
@@ -26,7 +26,7 @@ class Bad_Checks implements themecheck {
26
  $filename = tc_filename( $php_key );
27
  $error = ltrim( trim( $matches[0], '(' ) );
28
  $grep = tc_grep( $error, $php_key );
29
- $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Found <strong>%1$s</strong> in the file <strong>%2$s</strong>. %3$s. %4$s', 'themecheck'), $error, $filename, $check, $grep );
30
  $ret = false;
31
  }
32
  }
@@ -34,8 +34,8 @@ class Bad_Checks implements themecheck {
34
 
35
 
36
  $checks = array(
37
- '/cx=[0-9]{21}:[a-z0-9]{10}/' => __( 'Google search code detected', 'themecheck' ),
38
- '/pub-[0-9]{16}/' => __( 'Googe advertising code detected', 'themecheck' )
39
  );
40
 
41
  foreach ( $other_files as $php_key => $phpfile ) {
@@ -45,7 +45,7 @@ class Bad_Checks implements themecheck {
45
  $filename = tc_filename( $php_key );
46
  $error = ltrim( rtrim( $matches[0],'(' ) );
47
  $grep = tc_grep( $error, $php_key );
48
- $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Found <strong>%1$s</strong> in the file <strong>%2$s</strong>. %3$s.%4$s', 'themecheck'), $error, $filename, $check, $grep);
49
  $ret = false;
50
  }
51
  }
6
  $ret = true;
7
 
8
  $checks = array(
9
+ '/(?<![_|a-z0-9|\.])eval\s?\(/i' => __( 'eval() is not allowed.', 'theme-check' ),
10
+ '/[^a-z0-9](?<!_)(popen|proc_open|[^_]exec|shell_exec|system|passthru)\(/' => __( 'PHP system calls are often disabled by server admins and should not be in themes', 'theme-check' ),
11
+ '/\s?ini_set\(/' => __( 'Themes should not change server PHP settings', 'theme-check' ),
12
+ '/base64_decode/' => __( 'base64_decode() is not allowed', 'theme-check' ),
13
+ '/base64_encode/' => __( 'base64_encode() is not allowed', 'theme-check' ),
14
+ '/uudecode/ims' => __( 'uudecode() is not allowed', 'theme-check' ),
15
+ '/str_rot13/ims' => __( 'str_rot13() is not allowed', 'theme-check' ),
16
+ '/cx=[0-9]{21}:[a-z0-9]{10}/' => __( 'Google search code detected', 'theme-check' ),
17
+ '/pub-[0-9]{16}/i' => __( 'Google advertising code detected', 'theme-check' )
18
  );
19
 
20
  $grep = '';
26
  $filename = tc_filename( $php_key );
27
  $error = ltrim( trim( $matches[0], '(' ) );
28
  $grep = tc_grep( $error, $php_key );
29
+ $this->error[] = sprintf('<span class="tc-lead tc-warning">'. __( 'WARNING', 'theme-check' ) . '</span>: ' . __( 'Found %1$s in the file %2$s. %3$s. %4$s', 'theme-check' ), '<strong>' . $error . '</strong>', '<strong>' . $filename . '</strong>', $check, $grep );
30
  $ret = false;
31
  }
32
  }
34
 
35
 
36
  $checks = array(
37
+ '/cx=[0-9]{21}:[a-z0-9]{10}/' => __( 'Google search code detected', 'theme-check' ),
38
+ '/pub-[0-9]{16}/' => __( 'Google advertising code detected', 'theme-check' )
39
  );
40
 
41
  foreach ( $other_files as $php_key => $phpfile ) {
45
  $filename = tc_filename( $php_key );
46
  $error = ltrim( rtrim( $matches[0],'(' ) );
47
  $grep = tc_grep( $error, $php_key );
48
+ $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Found <strong>%1$s</strong> in the file <strong>%2$s</strong>. %3$s.%4$s', 'theme-check'), $error, $filename, $check, $grep);
49
  $ret = false;
50
  }
51
  }
checks/basic.php CHANGED
@@ -11,31 +11,27 @@ class Basic_Checks implements themecheck {
11
  $ret = true;
12
 
13
  $checks = array(
14
- 'DOCTYPE' => __( 'See: <a href="http://codex.wordpress.org/HTML_to_XHTML">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"<br />"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"?&gt;</pre>', 'themecheck' ),
15
- 'wp_footer\(' => __( 'See: <a href="http://codex.wordpress.org/Function_Reference/wp_footer">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>', 'themecheck' ),
16
- 'wp_head\(' => __( 'See: <a href="http://codex.wordpress.org/Function_Reference/wp_head">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>', 'themecheck' ),
17
- 'language_attributes' => __( 'See: <a href="http://codex.wordpress.org/Function_Reference/language_attributes">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>', 'themecheck' ),
18
- 'charset' => __( 'There must be a charset defined in the Content-Type or the meta charset tag in the head.', 'themecheck' ),
19
- 'add_theme_support\(\s?("|\')automatic-feed-links("|\')\s?\)' => __( 'See: <a href="http://codex.wordpress.org/Function_Reference/add_theme_support">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>', 'themecheck' ),
20
- 'register_sidebar[s]?\(' => __( 'See: <ahref="http://codex.wordpress.org/Function_Reference/register_sidebar">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>', 'themecheck' ),
21
- 'dynamic_sidebar\(' => __( 'See: <a href="http://codex.wordpress.org/Function_Reference/dynamic_sidebar">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>', 'themecheck' ),
22
- 'comments_template\(' => __( 'See: <a href="http://codex.wordpress.org/Template_Tags/comments_template">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>', 'themecheck' ),
23
- 'wp_list_comments\(' => __( 'See: <a href="http://codex.wordpress.org/Template_Tags/wp_list_comments">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>', 'themecheck' ),
24
- 'comment_form\(' => __( 'See: <a href="http://codex.wordpress.org/Template_Tags/comment_form">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>', 'themecheck' ),
25
- '<body.*body_class\(' => __( 'See: <a href="http://codex.wordpress.org/Template_Tags/body_class">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>', 'themecheck' ),
26
- 'wp_link_pages\(' => __( 'See: <a href="http://codex.wordpress.org/Function_Reference/wp_link_pages">wp_link_pages</a><pre> &lt;?php wp_link_pages( $args ); ?&gt;</pre>', 'themecheck' ),
27
- 'post_class\(' => __( 'See: <a href="http://codex.wordpress.org/Template_Tags/post_class">post_class</a><pre> &lt;div id="post-&lt;?php the_ID(); ?&gt;" &lt;?php post_class(); ?&gt;&gt;</pre>', 'themecheck' )
28
  );
29
 
30
  foreach ($checks as $key => $check) {
31
  checkcount();
32
  if ( !preg_match( '/' . $key . '/i', $php ) ) {
33
- if ( $key === 'add_theme_support\(\s?("|\')automatic-feed-links("|\')\s?\)' ) $key = __( 'add_theme_support( \'automatic-feed-links\' )', 'themechek');
34
- if ( $key === 'wp_enqueue_script\(\s?("|\')comment-reply("|\')' ) $key = __( 'wp_enqueue_script( \'comment-reply\' )', 'themechek');
35
- if ( $key === '<body.*body_class\(' ) $key = __( 'body_class call in body tag', 'themechek');
36
- if ( $key === 'register_sidebar[s]?\(' ) $key = __( 'register_sidebar() or register_sidebars()', 'themechek');
37
- $key = ltrim( trim ( trim( $key, '(' ), '\\' ) );
38
- $this->error[] = sprintf( __( '<span class="tc-lead tc-required">REQUIRED</span>: Could not find <strong>%1$s</strong>. %2$s', 'themecheck' ), $key, $check );
39
  $ret = false;
40
  }
41
  }
11
  $ret = true;
12
 
13
  $checks = array(
14
+ 'DOCTYPE' => __( 'See: <a href="https://codex.wordpress.org/HTML_to_XHTML">https://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"<br />"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"?&gt;</pre>', 'theme-check' ),
15
+ 'wp_footer\s*\(' => __( 'See: <a href="https://codex.wordpress.org/Function_Reference/wp_footer">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>', 'theme-check' ),
16
+ 'wp_head\s*\(' => __( 'See: <a href="https://codex.wordpress.org/Function_Reference/wp_head">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>', 'theme-check' ),
17
+ 'language_attributes' => __( 'See: <a href="https://codex.wordpress.org/Function_Reference/language_attributes">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>', 'theme-check' ),
18
+ 'charset' => __( 'There must be a charset defined in the Content-Type or the meta charset tag in the head.', 'theme-check' ),
19
+ 'add_theme_support\s*\(\s?("|\')automatic-feed-links("|\')\s?\)' => __( 'See: <a href="https://codex.wordpress.org/Function_Reference/add_theme_support">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>', 'theme-check' ),
20
+ 'comments_template\s*\(' => __( 'See: <a href="https://codex.wordpress.org/Template_Tags/comments_template">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>', 'theme-check' ),
21
+ 'wp_list_comments\s*\(' => __( 'See: <a href="https://codex.wordpress.org/Template_Tags/wp_list_comments">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>', 'theme-check' ),
22
+ 'comment_form\s*\(' => __( 'See: <a href="https://codex.wordpress.org/Template_Tags/comment_form">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>', 'theme-check' ),
23
+ 'body_class\s*\(' => __( 'See: <a href="https://codex.wordpress.org/Template_Tags/body_class">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>', 'theme-check' ),
24
+ 'wp_link_pages\s*\(' => __( 'See: <a href="https://codex.wordpress.org/Function_Reference/wp_link_pages">wp_link_pages</a><pre> &lt;?php wp_link_pages( $args ); ?&gt;</pre>', 'theme-check' ),
25
+ 'post_class\s*\(' => __( 'See: <a href="https://codex.wordpress.org/Template_Tags/post_class">post_class</a><pre> &lt;div id="post-&lt;?php the_ID(); ?&gt;" &lt;?php post_class(); ?&gt;&gt;</pre>', 'theme-check' )
 
 
26
  );
27
 
28
  foreach ($checks as $key => $check) {
29
  checkcount();
30
  if ( !preg_match( '/' . $key . '/i', $php ) ) {
31
+ if ( $key === 'add_theme_support\s*\(\s?("|\')automatic-feed-links("|\')\s?\)' ) $key = __( 'add_theme_support( \'automatic-feed-links\' )', 'theme-check');
32
+ if ( $key === 'body_class\s*\(' ) $key = __( 'body_class call in body tag', 'theme-check');
33
+ $key = str_replace( '\s*\(', '', $key );
34
+ $this->error[] = sprintf( '<span class="tc-lead tc-required">'.__('REQUIRED','theme-check').'</span>: '.__('Could not find %1$s. %2$s', 'theme-check' ), '<strong>' . $key . '</strong>', $check );
 
 
35
  $ret = false;
36
  }
37
  }
checks/cdn.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Checks for resources being loaded from CDNs.
5
+ */
6
+
7
+ class CDNCheck implements themecheck {
8
+ protected $error = array();
9
+
10
+ function check( $php_files, $css_files, $other_files) {
11
+
12
+ $ret = true;
13
+ $php_code = implode( ' ', $php_files );
14
+ $css_code = implode( ' ', $css_files );
15
+ $all_code = $php_code . ' ' . $css_code;
16
+
17
+ checkcount();
18
+
19
+ $cdn_list = array(
20
+ 'bootstrap-maxcdn' => 'maxcdn.bootstrapcdn.com/bootstrap',
21
+ 'bootstrap-netdna' => 'netdna.bootstrapcdn.com/bootstrap',
22
+ 'bootswatch-maxcdn' => 'maxcdn.bootstrapcdn.com/bootswatch',
23
+ 'bootswatch-netdna' => 'netdna.bootstrapcdn.com/bootswatch',
24
+ 'font-awesome-maxcdn' => 'maxcdn.bootstrapcdn.com/font-awesome',
25
+ 'font-awesome-netdna' => 'netdna.bootstrapcdn.com/font-awesome',
26
+ 'html5shiv-google' => 'html5shiv.googlecode.com/svn/trunk/html5.js',
27
+ 'html5shiv-maxcdn' => 'oss.maxcdn.com/libs/html5shiv',
28
+ 'jquery' => 'code.jquery.com/jquery-',
29
+ 'respond-js' => 'oss.maxcdn.com/libs/respond.js',
30
+ );
31
+
32
+ foreach( $cdn_list as $cdn_slug => $cdn_url ) {
33
+ if ( false !== strpos( $all_code, $cdn_url ) ) {
34
+ $this->error[] = '<span class="tc-lead tc-recommended">' . __('RECOMMENDED','theme-check') . '</span>: ' . sprintf( __( 'Found the URL of a CDN in the code: %s. You should not load CSS or Javascript resources from a CDN, please bundle them with the theme.', 'theme-check' ), '<code>' . esc_html( $cdn_url ) . '</code>' );
35
+ //$ret = false;
36
+ }
37
+ }
38
+
39
+ return $ret;
40
+ }
41
+
42
+ function getError() { return $this->error; }
43
+ }
44
+ $themechecks[] = new CDNCheck;
checks/comment_reply.php CHANGED
@@ -6,16 +6,16 @@ class Comment_Reply implements themecheck {
6
 
7
  $php = implode( ' ', $php_files );
8
  $ret = true;
9
-
10
  checkcount();
11
 
12
  if ( ! preg_match( '/wp_enqueue_script\(\s?("|\')comment-reply("|\')/i', $php ) ) {
13
  if ( ! preg_match( '/comment-reply/', $php ) ) {
14
- $check = __( 'See: <a href="http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( "comment-reply" ); ?&gt;</pre>', 'themecheck' );
15
- $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: Could not find the <strong>comment-reply</strong> script enqueued. %1$s', 'themecheck'), $check);
16
  $ret = false;
17
  } else {
18
- $this->error[] = __('<span class="tc-lead tc-info">INFO</span>: Could not find the <strong>comment-reply</strong> script enqueued, however a reference to \'comment-reply\' was found. Make sure that the comment-reply script is being enqueued properly on singular pages.', 'themecheck');
19
  }
20
  }
21
  return $ret;
6
 
7
  $php = implode( ' ', $php_files );
8
  $ret = true;
9
+
10
  checkcount();
11
 
12
  if ( ! preg_match( '/wp_enqueue_script\(\s?("|\')comment-reply("|\')/i', $php ) ) {
13
  if ( ! preg_match( '/comment-reply/', $php ) ) {
14
+ $check = __( 'See: <a href="https://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( "comment-reply" ); ?&gt;</pre>', 'theme-check' );
15
+ $this->error[] = sprintf('<span class="tc-lead tc-required">'.__('REQUIRED','theme-check').'</span>: '.__('Could not find the <strong>comment-reply</strong> script enqueued. %1$s', 'theme-check'), $check);
16
  $ret = false;
17
  } else {
18
+ $this->error[] = '<span class="tc-lead tc-info">'.__('INFO','theme-check').'</span>: '.__('Could not find the <strong>comment-reply</strong> script enqueued, however a reference to \'comment-reply\' was found. Make sure that the comment-reply script is being enqueued properly on singular pages.', 'theme-check');
19
  }
20
  }
21
  return $ret;
checks/commpage.php CHANGED
@@ -10,9 +10,11 @@ class CommentPaginationCheck implements themecheck {
10
  $php = implode( ' ', $php_files );
11
  checkcount();
12
  if (strpos( $php, 'paginate_comments_links' ) === false &&
 
 
13
  (strpos( $php, 'next_comments_link' ) === false && strpos( $php, 'previous_comments_link' ) === false ) ) {
14
 
15
- $this->error[] = __( '<span class="tc-lead tc-required">REQUIRED</span>: The theme doesn\'t have comment pagination code in it. Use <strong>paginate_comments_links()</strong> or <strong>next_comments_link()</strong> and <strong>previous_comments_link()</strong> to add comment pagination.', 'themecheck' );
16
  $ret = false;
17
  }
18
 
@@ -21,4 +23,4 @@ class CommentPaginationCheck implements themecheck {
21
 
22
  function getError() { return $this->error; }
23
  }
24
- $themechecks[] = new CommentPaginationCheck;
10
  $php = implode( ' ', $php_files );
11
  checkcount();
12
  if (strpos( $php, 'paginate_comments_links' ) === false &&
13
+ strpos( $php, 'the_comments_navigation' ) === false &&
14
+ strpos( $php, 'the_comments_pagination' ) === false &&
15
  (strpos( $php, 'next_comments_link' ) === false && strpos( $php, 'previous_comments_link' ) === false ) ) {
16
 
17
+ $this->error[] = '<span class="tc-lead tc-required">'.__('REQUIRED','theme-check').'</span>: '.__('The theme doesn\'t have comment pagination code in it. Use <strong>paginate_comments_links()</strong> or <strong>the_comments_navigation</strong> or <strong>the_comments_pagination</strong> or <strong>next_comments_link()</strong> and <strong>previous_comments_link()</strong> to add comment pagination.', 'theme-check' );
18
  $ret = false;
19
  }
20
 
23
 
24
  function getError() { return $this->error; }
25
  }
26
+ $themechecks[] = new CommentPaginationCheck;
checks/constants.php CHANGED
@@ -21,7 +21,8 @@ class Constants implements themecheck {
21
  $filename = tc_filename( $php_key );
22
  $error = ltrim( rtrim( $matches[0], '(' ) );
23
  $grep = tc_grep( $error, $php_key );
24
- $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s', 'themecheck'), $error, $filename, $check, $grep );
 
25
  }
26
  }
27
  }
@@ -30,4 +31,4 @@ class Constants implements themecheck {
30
 
31
  function getError() { return $this->error; }
32
  }
33
- $themechecks[] = new Constants;
21
  $filename = tc_filename( $php_key );
22
  $error = ltrim( rtrim( $matches[0], '(' ) );
23
  $grep = tc_grep( $error, $php_key );
24
+ $this->error[] = sprintf('<span class="tc-lead tc-required">'.__('REQUIRED','theme-check').'</span>: '.__('%1$s was found in the file %2$s. Use %3$s instead.%4$s', 'theme-check'), '<strong>' . $error . '</strong>', '<strong>' . $filename . '</strong>', '<strong>' . $check . '</strong>', $grep );
25
+ $ret = false;
26
  }
27
  }
28
  }
31
 
32
  function getError() { return $this->error; }
33
  }
34
+ $themechecks[] = new Constants;
checks/content-width.php CHANGED
@@ -10,8 +10,8 @@ class ContentWidthCheck implements themecheck {
10
  // combine all the php files into one string to make it easier to search
11
  $php = implode( ' ', $php_files );
12
  checkcount();
13
- if ( strpos( $php, '$content_width' ) === false && !preg_match( '/add_filter\(\s?("|\')embed_defaults/', $php ) && !preg_match( '/add_filter\(\s?("|\')content_width/', $php ) ) {
14
- $this->error[] = __( "<span class='tc-lead tc-required'>REQUIRED</span>: No content width has been defined. Example: <pre>if ( ! isset( \$content_width ) ) \$content_width = 900;</pre>", "themecheck" );
15
  $ret = false;
16
  }
17
 
@@ -20,4 +20,4 @@ class ContentWidthCheck implements themecheck {
20
 
21
  function getError() { return $this->error; }
22
  }
23
- $themechecks[] = new ContentWidthCheck;
10
  // combine all the php files into one string to make it easier to search
11
  $php = implode( ' ', $php_files );
12
  checkcount();
13
+ if ( strpos( $php, '$content_width' ) === false && strpos( $php, '$GLOBALS' . "['content_width']" ) === false && !preg_match( '/add_filter\(\s?("|\')embed_defaults/', $php ) && !preg_match( '/add_filter\(\s?("|\')content_width/', $php ) ) {
14
+ $this->error[] = '<span class="tc-lead tc-required">'.__('REQUIRED','theme-check').'</span>: '.__('No content width has been defined. Example: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>', 'theme-check' );
15
  $ret = false;
16
  }
17
 
20
 
21
  function getError() { return $this->error; }
22
  }
23
+ $themechecks[] = new ContentWidthCheck;
checks/customizer.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Checks for the Customizer.
5
+ */
6
+
7
+ class CustomizerCheck implements themecheck {
8
+ protected $error = array();
9
+
10
+ function check( $php_files, $css_files, $other_files) {
11
+
12
+ $ret = true;
13
+
14
+ checkcount();
15
+
16
+ /**
17
+ * Check whether every Customizer setting has a sanitization callback set.
18
+ */
19
+ foreach ( $php_files as $file_path => $file_content ) {
20
+ // Get the arguments passed to the add_setting method
21
+ if ( preg_match_all( '/\$wp_customize->add_setting\(([^;]+)/', $file_content, $matches ) ) {
22
+ // The full match is in [0], the match group in [1]
23
+ foreach ( $matches[1] as $match ) {
24
+ // Check if we have sanitize_callback or sanitize_js_callback
25
+ if ( false === strpos( $match, 'sanitize_callback' ) && false === strpos( $match, 'sanitize_js_callback' ) ) {
26
+ $this->error[] = '<span class="tc-lead tc-required">' . __('REQUIRED','theme-check') . '</span>: ' . __( 'Found a Customizer setting that did not have a sanitization callback function. Every call to the <strong>add_setting()</strong> method needs to have a sanitization callback function passed.', 'theme-check' );
27
+ $ret = false;
28
+ } else {
29
+ // There's a callback, check that no empty parameter is passed.
30
+ if ( preg_match( '/[\'"](?:sanitize_callback|sanitize_js_callback)[\'"]\s*=>\s*[\'"]\s*[\'"]/', $match ) ) {
31
+ $this->error[] = '<span class="tc-lead tc-required">' . __('REQUIRED','theme-check') . '</span>: ' . __( 'Found a Customizer setting that had an empty value passed as sanitization callback. You need to pass a function name as sanitization callback.', 'theme-check' );
32
+ $ret = false;
33
+ }
34
+ }
35
+ }
36
+ }
37
+ }
38
+
39
+ return $ret;
40
+ }
41
+
42
+ function getError() { return $this->error; }
43
+ }
44
+ $themechecks[] = new CustomizerCheck;
checks/customs.php CHANGED
@@ -11,11 +11,11 @@ class CustomCheck implements themecheck {
11
  checkcount();
12
 
13
  if ( ! preg_match( '#add_theme_support\s?\(\s?[\'|"]custom-header#', $php ) ) {
14
- $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_theme_support( 'custom-header', \$args )</strong> was found in the theme. It is recommended that the theme implement this functionality if using an image for the header.", "themecheck" );
15
  }
16
 
17
  if ( ! preg_match( '#add_theme_support\s?\(\s?[\'|"]custom-background#', $php ) ) {
18
- $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_theme_support( 'custom-background', \$args )</strong> was found in the theme. If the theme uses background images or solid colors for the background, then it is recommended that the theme implement this functionality.", "themecheck" );
19
  }
20
 
21
  return $ret;
11
  checkcount();
12
 
13
  if ( ! preg_match( '#add_theme_support\s?\(\s?[\'|"]custom-header#', $php ) ) {
14
+ $this->error[] = '<span class="tc-lead tc-recommended">'.__('RECOMMENDED','theme-check').'</span>: '.__('No reference to <strong>add_theme_support( "custom-header", $args )</strong> was found in the theme. It is recommended that the theme implement this functionality if using an image for the header.', 'theme-check' );
15
  }
16
 
17
  if ( ! preg_match( '#add_theme_support\s?\(\s?[\'|"]custom-background#', $php ) ) {
18
+ $this->error[] = '<span class="tc-lead tc-recommended">'.__('RECOMMENDED','theme-check').'</span>: '.__('No reference to <strong>add_theme_support( "custom-background", $args )</strong> was found in the theme. If the theme uses background images or solid colors for the background, then it is recommended that the theme implement this functionality.', 'theme-check' );
19
  }
20
 
21
  return $ret;
checks/dep_recommend.php CHANGED
@@ -9,55 +9,22 @@ class Deprecated_Recommended implements themecheck {
9
  $ret = true;
10
 
11
  $checks = array(
12
-
13
- // wp-includes deprecated
14
- array( 'the_editor' => 'wp_editor', '3.3' ),
15
- array( 'get_user_metavalues' => 'none available', '3.3' ),
16
- array( 'sanitize_user_object' => 'none available', '3.3' ),
17
- array( 'get_boundary_post_rel_link' => 'none available', '3.3' ),
18
- array( 'start_post_rel_link' => 'none available ', '3.3' ),
19
- array( 'get_index_rel_link' => 'none available', '3.3' ),
20
- array( 'index_rel_link' => 'none available', '3.3' ),
21
- array( 'get_parent_post_rel_link' => 'none available', '3.3' ),
22
- array( 'parent_post_rel_link' => 'none available', '3.3' ),
23
- array( 'wp_admin_bar_dashboard_view_site_menu' => 'none available', '3.3' ),
24
- array( 'is_blog_user' => 'is_member_of_blog()', '3.3' ),
25
- array( 'debug_fopen' => 'error_log()', '3.3' ),
26
- array( 'debug_fwrite' => 'error_log()', '3.3' ),
27
- array( 'debug_fclose' => 'error_log()', '3.3' ),
28
-
29
- // wp-admin deprecated
30
- array( 'screen_layout' => '$current_screen->render_screen_layout()', '3.3' ),
31
- array( 'screen_options' => '$current_screen->render_per_page_options()', '3.3' ),
32
- array( 'screen_meta' => ' $current_screen->render_screen_meta()', '3.3' ),
33
- array( 'media_upload_image' => 'wp_media_upload_handler()', '3.3' ),
34
- array( 'media_upload_audio' => 'wp_media_upload_handler()', '3.3' ),
35
- array( 'media_upload_video' => 'wp_media_upload_handler()', '3.3' ),
36
- array( 'media_upload_file' => 'wp_media_upload_handler()', '3.3' ),
37
- array( 'type_url_form_image' => 'wp_media_insert_url_form( \'image\' )', '3.3' ),
38
- array( 'type_url_form_audio' => 'wp_media_insert_url_form( \'audio\' )', '3.3' ),
39
- array( 'type_url_form_video' => 'wp_media_insert_url_form( \'video\' )', '3.3' ),
40
- array( 'type_url_form_file' => 'wp_media_insert_url_form( \'file\' )', '3.3' ),
41
- array( 'add_contextual_help' => 'get_current_screen()->add_help_tab()', '3.3' ),
42
-
43
- // frontend
44
- array( 'get_themes' => 'wp_get_themes()', '3.4' ),
45
- array( 'get_theme' => 'wp_get_theme()', '3.4' ),
46
- array( 'get_current_theme' => 'wp_get_theme()', '3.4' ),
47
- array( 'clean_pre' => 'none available', '3.4' ),
48
- array( 'add_custom_image_header' => 'add_theme_support( \'custom-header\', $args )', '3.4' ),
49
- array( 'remove_custom_image_header' => 'remove_theme_support( \'custom-header\' )', '3.4' ),
50
- array( 'add_custom_background' => 'add_theme_support( \'custom-background\', $args )', '3.4' ),
51
- array( 'remove_custom_background' => 'remove_theme_support( \'custom-background\' )', '3.4' ),
52
- array( 'get_theme_data' => 'wp_get_theme()', '3.4' ),
53
- array( 'update_page_cache' => 'update_post_cache()', '3.4' ),
54
- array( 'clean_page_cache' => 'clean_post_cache()', '3.4' ),
55
 
56
- // admin
57
- array( 'get_allowed_themes' => 'wp_get_themes( array( \'allowed\' => true ) )', '3.4' ),
58
- array( 'get_broken_themes' => 'wp_get_themes( array( \'errors\' => true )', '3.4' ),
59
- array( 'current_theme_info' => 'wp_get_theme()', '3.4' ),
60
- );
 
 
61
 
62
  foreach ( $php_files as $php_key => $phpfile ) {
63
  foreach ( $checks as $alt => $check ) {
@@ -70,7 +37,25 @@ class Deprecated_Recommended implements themecheck {
70
  $error = ltrim( rtrim( $matches[0], '(' ) );
71
  $version = $check[0];
72
  $grep = tc_grep( $error, $php_key );
73
- $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: <strong>%1$s</strong> found in the file <strong>%2$s</strong>. Deprecated since version <strong>%3$s</strong>. Use <strong>%4$s</strong> instead.%5$s', 'themecheck'), $error, $filename, $version, $alt, $grep) ;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  }
75
  }
76
  }
9
  $ret = true;
10
 
11
  $checks = array(
12
+ array( 'preview_theme' => '', '4.3' ),
13
+ array( '_preview_theme_template_filter' => '', '4.3' ),
14
+ array( '_preview_theme_stylesheet_filter' => '', '4.3' ),
15
+ array( 'preview_theme_ob_filter' => '', '4.3' ),
16
+ array( 'preview_theme_ob_filter_callback' => '', '4.3' ),
17
+ array( 'wp_richedit_pre' => '', '4.3' ),
18
+ array( 'wp_htmledit_pre' => '', '4.3' ),
19
+ array( 'wp_ajax_wp_fullscreen_save_post' => '', '4.3' ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
+ array( 'post_permalink' => 'get_permalink', '4.4'),
22
+ array( 'wp_get_http' => 'WP_Http', '4.4'),
23
+ array( 'force_ssl_login' => 'force_ssl_admin', '4.4'),
24
+ array( 'create_empty_blog' => '', '4.4'),
25
+ array( 'get_admin_users_for_domain' => '', '4.4'),
26
+ //array( 'flush_widget_cache' => '', '4.4'),
27
+ );
28
 
29
  foreach ( $php_files as $php_key => $phpfile ) {
30
  foreach ( $checks as $alt => $check ) {
37
  $error = ltrim( rtrim( $matches[0], '(' ) );
38
  $version = $check[0];
39
  $grep = tc_grep( $error, $php_key );
40
+
41
+ // Point out the deprecated function.
42
+ $error_msg = sprintf(
43
+ __( '%1$s found in the file %2$s. Deprecated since version %3$s.', 'theme-check' ),
44
+ '<strong>' . $error . '()</strong>',
45
+ '<strong>' . $filename . '</strong>',
46
+ '<strong>' . $version . '</strong>'
47
+ );
48
+
49
+ // Add alternative function when available.
50
+ if ( $alt ) {
51
+ $error_msg .= ' ' . sprintf( __( 'Use %s instead.', 'theme-check' ), '<strong>' . $alt . '</strong>' );
52
+ }
53
+
54
+ // Add the precise code match that was found.
55
+ $error_msg .= $grep;
56
+
57
+ // Add the finalized error message.
58
+ $this->error[] = '<span class="tc-lead tc-recommended">' . __('RECOMMENDED','theme-check') . '</span>: ' . $error_msg;
59
  }
60
  }
61
  }
checks/deprecated.php CHANGED
@@ -10,8 +10,8 @@ class Deprecated implements themecheck {
10
 
11
  $checks = array(
12
  // start wp-includes deprecated
13
- array( 'get_post_data' => 'get_post()', '1.5.1' ),
14
- array( 'start_wp' => 'Use the Loop', '1.5' ),
15
  array( 'the_category_id' => 'get_the_category()', '0.71' ),
16
  array( 'the_category_head' => 'get_the_category_by_ID()', '0.71' ),
17
  array( 'previous_post' => 'previous_post_link()', '2.0' ),
@@ -30,7 +30,7 @@ class Deprecated implements themecheck {
30
  array( 'get_linkobjects' => 'get_bookmarks()', '2.1' ),
31
  array( 'get_linksbyname_withrating' => 'get_bookmarks()', '2.1' ),
32
  array( 'get_links_withrating' => 'get_bookmarks()', '2.1' ),
33
- array( 'get_autotoggle' => 'none available', '2.1' ),
34
  array( 'list_cats' => 'wp_list_categories', '2.1' ),
35
  array( 'wp_list_cats' => 'wp_list_categories', '2.1' ),
36
  array( 'dropdown_cats' => 'wp_dropdown_categories()', '2.1' ),
@@ -46,7 +46,7 @@ class Deprecated implements themecheck {
46
  array( 'wp_get_links' => 'wp_list_bookmarks()', '2.1' ),
47
  array( 'get_links' => 'get_bookmarks()', '2.1' ),
48
  array( 'get_links_list' => 'wp_list_bookmarks()', '2.1' ),
49
- array( 'links_popup_script' => 'none available', '2.1' ),
50
  array( 'get_linkrating' => 'sanitize_bookmark_field()', '2.1' ),
51
  array( 'get_linkcatname' => 'get_category()', '2.1' ),
52
  array( 'comments_rss_link' => 'post_comments_feed_link()', '2.5' ),
@@ -54,7 +54,7 @@ class Deprecated implements themecheck {
54
  array( 'get_author_rss_link' => 'get_author_feed_link()', '2.5' ),
55
  array( 'comments_rss' => 'get_post_comments_feed_link()', '2.2' ),
56
  array( 'create_user' => 'wp_create_user()', '2.0' ),
57
- array( 'gzip_compression' => 'none available', '2.5' ),
58
  array( 'get_commentdata' => 'get_comment()', '2.7' ),
59
  array( 'get_catname' => 'get_cat_name()', '2.8' ),
60
  array( 'get_category_children' => 'get_term_children', '2.8' ),
@@ -83,7 +83,7 @@ class Deprecated implements themecheck {
83
  array( 'get_the_author_ID' => 'get_the_author_meta(\'ID\')', '2.8' ),
84
  array( 'the_author_ID' => 'the_author_meta(\'ID\')', '2.8' ),
85
  array( 'the_content_rss' => 'the_content_feed()', '2.9' ),
86
- array( 'make_url_footnote' => 'none available', '2.9' ),
87
  array( '_c' => '_x()', '2.9' ),
88
  array( 'translate_with_context' => '_x()', '3.0' ),
89
  array( 'nc' => 'nx()', '3.0' ),
@@ -110,57 +110,191 @@ class Deprecated implements themecheck {
110
  array( 'automatic_feed_links' => 'add_theme_support( \'automatic-feed-links\' )', '3.0' ),
111
  array( 'get_profile' => 'get_the_author_meta()', '3.0' ),
112
  array( 'get_usernumposts' => 'count_user_posts()', '3.0' ),
113
- array( 'funky_javascript_callback' => 'none available', '3.0' ),
114
- array( 'funky_javascript_fix' => 'none available', '3.0' ),
115
  array( 'is_taxonomy' => 'taxonomy_exists()', '3.0' ),
116
  array( 'is_term' => 'term_exists()', '3.0' ),
117
  array( 'is_plugin_page' => '$plugin_page and/or get_plugin_page_hookname() hooks', '3.1' ),
118
  array( 'update_category_cache' => 'No alternatives', '3.1' ),
119
  array( 'get_users_of_blog' => 'get_users()', '3.1' ),
120
- array( 'wp_timezone_supported' => 'None available', '3.2' ),
121
-
122
- // end wp-includes deprecated
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
 
124
- // start wp-admin deprecated
125
  array( 'tinymce_include' => 'wp_tiny_mce()', '2.1' ),
126
- array( 'documentation_link' => 'None available', '2.5' ),
127
- array( 'wp_shrink_dimensions' => 'wp_constrain_dimensions()','3.0' ),
 
128
  array( 'dropdown_categories' => 'wp_category_checklist()','2.6' ),
129
  array( 'dropdown_link_categories' => 'wp_link_category_checklist()','2.6' ),
 
130
  array( 'wp_dropdown_cats' => 'wp_dropdown_categories()','3.0' ),
131
  array( 'add_option_update_handler' => 'register_setting()','3.0' ),
132
  array( 'remove_option_update_handler' => 'unregister_setting()','3.0' ),
133
- array( 'codepress_get_lang' => 'None available','3.0' ),
134
- array( 'codepress_footer_js' => 'None available','3.0' ),
135
- array( 'use_codepress' => 'None available','3.0' ),
136
- array( 'get_author_user_ids' => 'None available','3.1' ),
137
- array( 'get_editable_authors' => 'None available','3.1' ),
138
- array( 'get_editable_user_ids' => 'None available','3.1' ),
139
- array( 'get_nonauthor_user_ids' => 'None available','3.1' ),
 
 
140
  array( 'WP_User_Search' => 'WP_User_Query','3.1' ),
141
- array( 'get_others_unpublished_posts' => 'None available','3.1' ),
142
- array( 'get_others_drafts' => 'None available','3.1' ),
143
- array( 'get_others_pending' => 'None available', '3.1' ),
144
- array( 'wp_dashboard_quick_press()' => 'None available', '3.2' ),
 
145
  array( 'wp_tiny_mce' => 'wp_editor', '3.2' ),
146
  array( 'wp_preload_dialogs' => 'wp_editor()', '3.2' ),
147
  array( 'wp_print_editor_js' => 'wp_editor()', '3.2' ),
148
  array( 'wp_quicktags' => 'wp_editor()', '3.2' ),
149
  array( 'favorite_actions' => 'WP_Admin_Bar', '3.2' ),
150
- // end wp-admin
151
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  foreach ( $php_files as $php_key => $phpfile ) {
153
  foreach ( $checks as $alt => $check ) {
154
  checkcount();
155
- $version = $check;
156
  $key = key( $check );
157
  $alt = $check[ $key ];
158
- if ( preg_match( '/[\s?]' . $key . '\(/', $phpfile, $matches ) ) {
159
  $filename = tc_filename( $php_key );
160
  $error = ltrim( rtrim( $matches[0], '(' ) );
161
  $version = $check[0];
162
  $grep = tc_grep( $error, $php_key );
163
- $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong> found in the file <strong>%2$s</strong>. Deprecated since version <strong>%3$s</strong>. Use <strong>%4$s</strong> instead.%5$s', 'themecheck'), $error, $filename, $version, $alt, $grep );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  $ret = false;
165
  }
166
  }
@@ -170,4 +304,4 @@ class Deprecated implements themecheck {
170
 
171
  function getError() { return $this->error; }
172
  }
173
- $themechecks[] = new Deprecated;
10
 
11
  $checks = array(
12
  // start wp-includes deprecated
13
+ array( 'get_postdata' => 'get_post()', '1.5.1' ),
14
+ array( 'start_wp' => 'the Loop', '1.5' ),
15
  array( 'the_category_id' => 'get_the_category()', '0.71' ),
16
  array( 'the_category_head' => 'get_the_category_by_ID()', '0.71' ),
17
  array( 'previous_post' => 'previous_post_link()', '2.0' ),
30
  array( 'get_linkobjects' => 'get_bookmarks()', '2.1' ),
31
  array( 'get_linksbyname_withrating' => 'get_bookmarks()', '2.1' ),
32
  array( 'get_links_withrating' => 'get_bookmarks()', '2.1' ),
33
+ array( 'get_autotoggle' => '', '2.1' ),
34
  array( 'list_cats' => 'wp_list_categories', '2.1' ),
35
  array( 'wp_list_cats' => 'wp_list_categories', '2.1' ),
36
  array( 'dropdown_cats' => 'wp_dropdown_categories()', '2.1' ),
46
  array( 'wp_get_links' => 'wp_list_bookmarks()', '2.1' ),
47
  array( 'get_links' => 'get_bookmarks()', '2.1' ),
48
  array( 'get_links_list' => 'wp_list_bookmarks()', '2.1' ),
49
+ array( 'links_popup_script' => '', '2.1' ),
50
  array( 'get_linkrating' => 'sanitize_bookmark_field()', '2.1' ),
51
  array( 'get_linkcatname' => 'get_category()', '2.1' ),
52
  array( 'comments_rss_link' => 'post_comments_feed_link()', '2.5' ),
54
  array( 'get_author_rss_link' => 'get_author_feed_link()', '2.5' ),
55
  array( 'comments_rss' => 'get_post_comments_feed_link()', '2.2' ),
56
  array( 'create_user' => 'wp_create_user()', '2.0' ),
57
+ array( 'gzip_compression' => '', '2.5' ),
58
  array( 'get_commentdata' => 'get_comment()', '2.7' ),
59
  array( 'get_catname' => 'get_cat_name()', '2.8' ),
60
  array( 'get_category_children' => 'get_term_children', '2.8' ),
83
  array( 'get_the_author_ID' => 'get_the_author_meta(\'ID\')', '2.8' ),
84
  array( 'the_author_ID' => 'the_author_meta(\'ID\')', '2.8' ),
85
  array( 'the_content_rss' => 'the_content_feed()', '2.9' ),
86
+ array( 'make_url_footnote' => '', '2.9' ),
87
  array( '_c' => '_x()', '2.9' ),
88
  array( 'translate_with_context' => '_x()', '3.0' ),
89
  array( 'nc' => 'nx()', '3.0' ),
110
  array( 'automatic_feed_links' => 'add_theme_support( \'automatic-feed-links\' )', '3.0' ),
111
  array( 'get_profile' => 'get_the_author_meta()', '3.0' ),
112
  array( 'get_usernumposts' => 'count_user_posts()', '3.0' ),
113
+ array( 'funky_javascript_callback' => '', '3.0' ),
114
+ array( 'funky_javascript_fix' => '', '3.0' ),
115
  array( 'is_taxonomy' => 'taxonomy_exists()', '3.0' ),
116
  array( 'is_term' => 'term_exists()', '3.0' ),
117
  array( 'is_plugin_page' => '$plugin_page and/or get_plugin_page_hookname() hooks', '3.1' ),
118
  array( 'update_category_cache' => 'No alternatives', '3.1' ),
119
  array( 'get_users_of_blog' => 'get_users()', '3.1' ),
120
+ array( 'wp_timezone_supported' => '', '3.2' ),
121
+ array( 'the_editor' => 'wp_editor', '3.3' ),
122
+ array( 'get_user_metavalues' => '', '3.3' ),
123
+ array( 'sanitize_user_object' => '', '3.3' ),
124
+ array( 'get_boundary_post_rel_link' => '', '3.3' ),
125
+ array( 'start_post_rel_link' => 'none available ', '3.3' ),
126
+ array( 'get_index_rel_link' => '', '3.3' ),
127
+ array( 'index_rel_link' => '', '3.3' ),
128
+ array( 'get_parent_post_rel_link' => '', '3.3' ),
129
+ array( 'parent_post_rel_link' => '', '3.3' ),
130
+ array( 'wp_admin_bar_dashboard_view_site_menu' => '', '3.3' ),
131
+ array( 'is_blog_user' => 'is_member_of_blog()', '3.3' ),
132
+ array( 'debug_fopen' => 'error_log()', '3.3' ),
133
+ array( 'debug_fwrite' => 'error_log()', '3.3' ),
134
+ array( 'debug_fclose' => 'error_log()', '3.3' ),
135
+ array( 'get_themes' => 'wp_get_themes()', '3.4' ),
136
+ array( 'get_theme' => 'wp_get_theme()', '3.4' ),
137
+ array( 'get_current_theme' => 'wp_get_theme()', '3.4' ),
138
+ array( 'clean_pre' => '', '3.4' ),
139
+ array( 'add_custom_image_header' => 'add_theme_support( \'custom-header\', $args )', '3.4' ),
140
+ array( 'remove_custom_image_header' => 'remove_theme_support( \'custom-header\' )', '3.4' ),
141
+ array( 'add_custom_background' => 'add_theme_support( \'custom-background\', $args )', '3.4' ),
142
+ array( 'remove_custom_background' => 'remove_theme_support( \'custom-background\' )', '3.4' ),
143
+ array( 'get_theme_data' => 'wp_get_theme()', '3.4' ),
144
+ array( 'update_page_cache' => 'update_post_cache()', '3.4' ),
145
+ array( 'clean_page_cache' => 'clean_post_cache()', '3.4' ),
146
+ array( 'wp_explain_nonce' => 'wp_nonce_ays', '3.4.1' ),
147
+ array( 'sticky_class' => 'post_class()', '3.5' ),
148
+ array( '_get_post_ancestors' => '', '3.5' ),
149
+ array( 'wp_load_image' => 'wp_get_image_editor()', '3.5' ),
150
+ array( 'image_resize' => 'wp_get_image_editor()', '3.5' ),
151
+ array( 'wp_get_single_post' => 'get_post()', '3.5' ),
152
+ array( 'user_pass_ok' => 'wp_authenticate()', '3.5' ),
153
+ array( '_save_post_hook' => '', '3.5' ),
154
+ array( 'gd_edit_image_support' => 'wp_image_editor_supports', '3.5' ),
155
+ array( 'get_user_id_from_string' => 'get_user_by()', '3.6' ),
156
+ array( 'wp_convert_bytes_to_hr' => 'size_format()', '3.6' ),
157
 
 
158
  array( 'tinymce_include' => 'wp_tiny_mce()', '2.1' ),
159
+
160
+ array( 'documentation_link' => '', '2.5' ),
161
+
162
  array( 'dropdown_categories' => 'wp_category_checklist()','2.6' ),
163
  array( 'dropdown_link_categories' => 'wp_link_category_checklist()','2.6' ),
164
+
165
  array( 'wp_dropdown_cats' => 'wp_dropdown_categories()','3.0' ),
166
  array( 'add_option_update_handler' => 'register_setting()','3.0' ),
167
  array( 'remove_option_update_handler' => 'unregister_setting()','3.0' ),
168
+ array( 'codepress_get_lang' => '','3.0' ),
169
+ array( 'codepress_footer_js' => '','3.0' ),
170
+ array( 'use_codepress' => '','3.0' ),
171
+ array( 'wp_shrink_dimensions' => 'wp_constrain_dimensions()','3.0' ),
172
+
173
+ array( 'get_author_user_ids' => '','3.1' ),
174
+ array( 'get_editable_authors' => '','3.1' ),
175
+ array( 'get_editable_user_ids' => '','3.1' ),
176
+ array( 'get_nonauthor_user_ids' => '','3.1' ),
177
  array( 'WP_User_Search' => 'WP_User_Query','3.1' ),
178
+ array( 'get_others_unpublished_posts' => '','3.1' ),
179
+ array( 'get_others_drafts' => '','3.1' ),
180
+ array( 'get_others_pending' => '', '3.1' ),
181
+
182
+ array( 'wp_dashboard_quick_press()' => '', '3.2' ),
183
  array( 'wp_tiny_mce' => 'wp_editor', '3.2' ),
184
  array( 'wp_preload_dialogs' => 'wp_editor()', '3.2' ),
185
  array( 'wp_print_editor_js' => 'wp_editor()', '3.2' ),
186
  array( 'wp_quicktags' => 'wp_editor()', '3.2' ),
187
  array( 'favorite_actions' => 'WP_Admin_Bar', '3.2' ),
188
+
189
+ array( 'screen_layout' => '$current_screen->render_screen_layout()', '3.3' ),
190
+ array( 'screen_options' => '$current_screen->render_per_page_options()', '3.3' ),
191
+ array( 'screen_meta' => ' $current_screen->render_screen_meta()', '3.3' ),
192
+ array( 'media_upload_image' => 'wp_media_upload_handler()', '3.3' ),
193
+ array( 'media_upload_audio' => 'wp_media_upload_handler()', '3.3' ),
194
+ array( 'media_upload_video' => 'wp_media_upload_handler()', '3.3' ),
195
+ array( 'media_upload_file' => 'wp_media_upload_handler()', '3.3' ),
196
+ array( 'type_url_form_image' => 'wp_media_insert_url_form( \'image\' )', '3.3' ),
197
+ array( 'type_url_form_audio' => 'wp_media_insert_url_form( \'audio\' )', '3.3' ),
198
+ array( 'type_url_form_video' => 'wp_media_insert_url_form( \'video\' )', '3.3' ),
199
+ array( 'type_url_form_file' => 'wp_media_insert_url_form( \'file\' )', '3.3' ),
200
+ array( 'add_contextual_help' => 'get_current_screen()->add_help_tab()', '3.3' ),
201
+
202
+ array( 'get_allowed_themes' => 'wp_get_themes( array( \'allowed\' => true ) )', '3.4' ),
203
+ array( 'get_broken_themes' => 'wp_get_themes( array( \'errors\' => true )', '3.4' ),
204
+ array( 'current_theme_info' => 'wp_get_theme()', '3.4' ),
205
+
206
+ array( '_insert_into_post_button' => '', '3.5' ),
207
+ array( '_media_button' => '', '3.5' ),
208
+ array( 'get_post_to_edit' => 'get_post()', '3.5' ),
209
+ array( 'get_default_page_to_edit' => 'get_default_post_to_edit()', '3.5' ),
210
+ array( 'wp_create_thumbnail' => 'image_resize()', '3.5' ),
211
+
212
+ array( 'wp_nav_menu_locations_meta_box' => '', '3.6' ),
213
+
214
+ array( 'the_attachment_links' => '', '3.7'),
215
+ array( 'wp_update_core' => 'new Core_Upgrader()', '3.7'),
216
+ array( 'wp_update_plugin' => 'new Plugin_Upgrader()', '3.7'),
217
+ array( 'wp_update_theme' => 'new Theme_Upgrader()', '3.7'),
218
+ array( '_search_terms_tidy' => '', '3.7' ),
219
+ array( 'get_blogaddress_by_domain' => '', '3.7' ),
220
+
221
+ array( 'get_screen_icon' => '', '3.8' ),
222
+ array( 'screen_icon' => '', '3.8' ),
223
+ array( 'wp_dashboard_incoming_links' => '', '3.8' ),
224
+ array( 'wp_dashboard_incoming_links_control' => '', '3.8' ),
225
+ array( 'wp_dashboard_incoming_links_output' => '', '3.8' ),
226
+ array( 'wp_dashboard_plugins' => '', '3.8' ),
227
+ array( 'wp_dashboard_primary_control' => '', '3.8' ),
228
+ array( 'wp_dashboard_recent_comments_control' => '', '3.8' ),
229
+ array( 'wp_dashboard_secondary' => '', '3.8' ),
230
+ array( 'wp_dashboard_secondary_control' => '', '3.8' ),
231
+ array( 'wp_dashboard_secondary_output' => '', '3.8' ),
232
+
233
+ array( 'rich_edit_exists' => '', '3.9'),
234
+ array( 'default_topic_count_text' => '', '3.9'),
235
+ array( 'format_to_post' => '', '3.9'),
236
+ array( 'get_current_site_name' => 'get_current_site()', '3.9'),
237
+ array( 'wpmu_current_site' => '', '3.9'),
238
+ array( '_relocate_children' => '', '3.9' ),
239
+
240
+ array( 'get_all_category_ids' => 'get_terms()', '4.0' ),
241
+ array( 'like_escape' => 'wpdb::esc_like()', '4.0' ),
242
+ array( 'url_is_accessable_via_ssl' => '', '4.0' ),
243
+ array( 'get_all_category_ids' => 'get_terms()', '4.0' ),
244
+ array( 'like_escape' => 'wpdb::esc_like()', '4.0' ),
245
+ array( 'url_is_accessable_via_ssl' => '', '4.0' ),
246
+
247
+ array( 'prepare_control' => '', '4.1' ),
248
+ array( 'add_tab' => '', '4.1' ),
249
+ array( 'remove_tab' => '', '4.1' ),
250
+ array( 'print_tab_image' => '', '4.1' ),
251
+
252
+ array( 'setup_widget_addition_previews' => 'customize_dynamic_setting_args', '4.2' ),
253
+ array( 'prepreview_added_sidebars_widgets' => 'customize_dynamic_setting_args', '4.2' ),
254
+ array( 'prepreview_added_widget_instance' => 'customize_dynamic_setting_args', '4.2' ),
255
+ array( 'remove_prepreview_filters' => 'customize_dynamic_setting_args', '4.2' ),
256
+
257
+ array( 'wp_get_http' => 'WP_Http', '4.4' ),
258
+
259
+ array( 'is_comments_popup' => '', '4.5' ),
260
+ array( 'add_object_page' => 'add_menu_page', '4.5' ),
261
+ array( 'add_utility_page' => 'add_menu_page', '4.5' ),
262
+ array( 'get_comments_popup_template' => '', '4.5' ),
263
+ array( 'comments_popup_script' => '', '4.5' ),
264
+ array( 'popuplinks' => '', '4.5' ),
265
+ array( 'get_currentuserinfo' => 'wp_get_current_user', '4.5' ),
266
+
267
+ );
268
  foreach ( $php_files as $php_key => $phpfile ) {
269
  foreach ( $checks as $alt => $check ) {
270
  checkcount();
 
271
  $key = key( $check );
272
  $alt = $check[ $key ];
273
+ if ( preg_match( '/(?<!function)[\s?]' . $key . '\s?\(/', $phpfile, $matches ) ) {
274
  $filename = tc_filename( $php_key );
275
  $error = ltrim( rtrim( $matches[0], '(' ) );
276
  $version = $check[0];
277
  $grep = tc_grep( $error, $php_key );
278
+
279
+ // Point out the deprecated function.
280
+ $error_msg = sprintf(
281
+ __( '%1$s found in the file %2$s. Deprecated since version %3$s.', 'theme-check' ),
282
+ '<strong>' . $error . '()</strong>',
283
+ '<strong>' . $filename . '</strong>',
284
+ '<strong>' . $version . '</strong>'
285
+ );
286
+
287
+ // Add alternative function when available.
288
+ if ( $alt ) {
289
+ $error_msg .= ' ' . sprintf( __( 'Use %s instead.', 'theme-check' ), '<strong>' . $alt . '</strong>' );
290
+ }
291
+
292
+ // Add the precise code match that was found.
293
+ $error_msg .= $grep;
294
+
295
+ // Add the finalized error message.
296
+ $this->error[] = '<span class="tc-lead tc-required">' . __('REQUIRED','theme-check') . '</span>: ' . $error_msg;
297
+
298
  $ret = false;
299
  }
300
  }
304
 
305
  function getError() { return $this->error; }
306
  }
307
+ $themechecks[] = new Deprecated;
checks/deregister.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class DeregisterCheck implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+
7
+ $ret = true;
8
+ checkcount();
9
+
10
+ foreach ( $php_files as $file_path => $file_content ) {
11
+
12
+ $filename = tc_filename( $file_path );
13
+
14
+ if ( preg_match( '/wp_deregister_script/', $file_content) ) {
15
+
16
+ $error = '/wp_deregister_script/';
17
+ $grep = tc_preg( $error, $file_path );
18
+
19
+ $this->error[] = sprintf( '<span class="tc-lead tc-warning">' . __('WARNING','theme-check') . '</span>: ' . __( 'Found wp_deregister_script in %1$s. Themes must not deregister core scripts.', 'theme-check' ),
20
+ '<strong>' . $filename . '</strong>') . $grep;
21
+ $ret = false;
22
+ }
23
+ }
24
+ return $ret;
25
+
26
+ }
27
+
28
+ function getError() { return $this->error; }
29
+ }
30
+ $themechecks[] = new DeregisterCheck;
checks/directories.php CHANGED
@@ -15,16 +15,16 @@ class DirectoriesCheck implements themecheck {
15
 
16
  foreach ( $css_files as $name => $file ) {
17
  checkcount();
18
- if ( strpos( $name, '.git' ) !== false || strpos( $name, '.svn' ) !== false ) $found = true;
19
  }
20
 
21
  foreach ( $other_files as $name => $file ) {
22
  checkcount();
23
- if ( strpos( $name, '.git' ) !== false || strpos( $name, '.svn' ) !== false ) $found = true;
24
  }
25
-
26
  if ($found) {
27
- $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: Please remove any extraneous directories like .git or .svn from the ZIP file before uploading it.', 'themecheck') );
28
  $ret = false;
29
  }
30
 
15
 
16
  foreach ( $css_files as $name => $file ) {
17
  checkcount();
18
+ if ( strpos( $name, '.git' ) !== false || strpos( $name, '.svn' ) !== false || strpos( $name, '.hg' ) !== false || strpos( $name, '.bzr' ) !== false ) $found = true;
19
  }
20
 
21
  foreach ( $other_files as $name => $file ) {
22
  checkcount();
23
+ if ( strpos( $name, '.git' ) !== false || strpos( $name, '.svn' ) !== false || strpos( $name, '.hg' ) !== false || strpos( $name, '.bzr' ) !== false ) $found = true;
24
  }
25
+
26
  if ($found) {
27
+ $this->error[] = sprintf('<span class="tc-lead tc-required">' . __( 'REQUIRED', 'theme-check' ) . '</span>: ' . __( 'Please remove any extraneous directories like .git or .svn from the ZIP file before uploading it.', 'theme-check') );
28
  $ret = false;
29
  }
30
 
checks/editorstyle.php CHANGED
@@ -10,7 +10,7 @@ class EditorStyleCheck implements themecheck {
10
  $php = implode( ' ', $php_files );
11
 
12
  if ( strpos( $php, 'add_editor_style' ) === false ) {
13
- $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_editor_style()</strong> was found in the theme. It is recommended that the theme implement editor styling, so as to make the editor content match the resulting post output in the theme, for a better user experience.", "themecheck" );
14
  }
15
 
16
  return $ret;
10
  $php = implode( ' ', $php_files );
11
 
12
  if ( strpos( $php, 'add_editor_style' ) === false ) {
13
+ $this->error[] = '<span class="tc-lead tc-recommended">'.__('RECOMMENDED','theme-check').'</span>: '.__('No reference to <strong>add_editor_style()</strong> was found in the theme. It is recommended that the theme implement editor styling, so as to make the editor content match the resulting post output in the theme, for a better user experience.', 'theme-check' );
14
  }
15
 
16
  return $ret;
checks/favicon.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class FaviconCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ $ret = true;
9
+
10
+ checkcount();
11
+
12
+ foreach ( $php_files as $file_path => $file_content ) {
13
+
14
+ $filename = tc_filename( $file_path );
15
+
16
+ if ( preg_match( '/(<link rel=[\'"]icon[\'"])|(<link rel=[\'"]apple-touch-icon-precomposed[\'"])|(<meta name=[\'"]msapplication-TileImage[\'"])/', $file_content, $matches ) ) {
17
+ $this->error[] = sprintf( '<span class="tc-lead tc-info">' . __('INFO','theme-check') . '</span>: ' . __( 'Possible Favicon found in %1$s. Favicons are handled by the Site Icon setting in the customizer since version 4.3.', 'theme-check' ),
18
+ '<strong>' . $filename . '</strong>');
19
+ }
20
+ }
21
+ return $ret;
22
+ }
23
+
24
+ function getError() { return $this->error; }
25
+ }
26
+ $themechecks[] = new FaviconCheck;
checks/filenames.php CHANGED
@@ -18,43 +18,44 @@ class File_Checks implements themecheck {
18
  array_push( $filenames, strtolower( basename( $php_key ) ) );
19
  }
20
  $blacklist = array(
21
- 'thumbs.db' => __( 'Windows thumbnail store', 'themecheck' ),
22
- 'desktop.ini' => __( 'windows system file', 'themecheck' ),
23
- 'project.properties' => __( 'NetBeans Project File', 'themecheck' ),
24
- 'project.xml' => __( 'NetBeans Project File', 'themecheck' ),
25
- '\.kpf' => __( 'Komodo Project File', 'themecheck' ),
26
- '^\.+[a-zA-Z0-9]' => __( 'Hidden Files or Folders', 'themecheck' ),
27
- 'php.ini' => __( 'PHP server settings file', 'themecheck' ),
28
- 'dwsync.xml' => __( 'Dreamweaver project file', 'themecheck' ),
29
- 'error_log' => __( 'PHP error log', 'themecheck' ),
30
- 'web.config' => __( 'Server settings file', 'themecheck' ),
31
- '\.sql' => __( 'SQL dump file', 'themecheck' ),
32
- '__MACOSX' => __( 'OSX system file', 'themecheck' )
 
33
  );
34
 
35
- $musthave = array( 'index.php', 'comments.php', 'style.css' );
36
- $rechave = array( 'readme.txt' => __( 'Please see <a href="http://codex.wordpress.org/Theme_Review#Theme_Documentation">Theme_Documentation</a> for more information.', 'themecheck' ) );
37
 
38
  checkcount();
39
 
40
  foreach( $blacklist as $file => $reason ) {
41
  if ( $filename = preg_grep( '/' . $file . '/', $filenames ) ) {
42
  $error = implode( array_unique( $filename ), ' ' );
43
- $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: <strong>%1$s</strong> %2$s found.', 'themecheck'), $error, $reason) ;
44
  $ret = false;
45
  }
46
  }
47
 
48
  foreach( $musthave as $file ) {
49
  if ( !in_array( $file, $filenames ) ) {
50
- $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: could not find the file <strong>%1$s</strong> in the theme.', 'themecheck'), $file);
51
  $ret = false;
52
  }
53
  }
54
 
55
  foreach( $rechave as $file => $reason ) {
56
  if ( !in_array( $file, $filenames ) ) {
57
- $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: could not find the file <strong>%1$s</strong> in the theme. %2$s', 'themecheck'), $file, $reason );
58
  }
59
  }
60
 
@@ -63,4 +64,4 @@ class File_Checks implements themecheck {
63
 
64
  function getError() { return $this->error; }
65
  }
66
- $themechecks[] = new File_Checks;
18
  array_push( $filenames, strtolower( basename( $php_key ) ) );
19
  }
20
  $blacklist = array(
21
+ 'thumbs.db' => __( 'Windows thumbnail store', 'theme-check' ),
22
+ 'desktop.ini' => __( 'windows system file', 'theme-check' ),
23
+ 'project.properties' => __( 'NetBeans Project File', 'theme-check' ),
24
+ 'project.xml' => __( 'NetBeans Project File', 'theme-check' ),
25
+ '\.kpf' => __( 'Komodo Project File', 'theme-check' ),
26
+ '^\.+[a-zA-Z0-9]' => __( 'Hidden Files or Folders', 'theme-check' ),
27
+ 'php.ini' => __( 'PHP server settings file', 'theme-check' ),
28
+ 'dwsync.xml' => __( 'Dreamweaver project file', 'theme-check' ),
29
+ 'error_log' => __( 'PHP error log', 'theme-check' ),
30
+ 'web.config' => __( 'Server settings file', 'theme-check' ),
31
+ '\.sql' => __( 'SQL dump file', 'theme-check' ),
32
+ '__MACOSX' => __( 'OSX system file', 'theme-check' ),
33
+ '\.lubith' => __( 'Lubith theme generator file', 'theme-check' ),
34
  );
35
 
36
+ $musthave = array( 'index.php', 'style.css' );
37
+ $rechave = array( 'readme.txt' => __( 'Please see <a href="https://codex.wordpress.org/Theme_Review#Theme_Documentation">Theme_Documentation</a> for more information.', 'theme-check' ) );
38
 
39
  checkcount();
40
 
41
  foreach( $blacklist as $file => $reason ) {
42
  if ( $filename = preg_grep( '/' . $file . '/', $filenames ) ) {
43
  $error = implode( array_unique( $filename ), ' ' );
44
+ $this->error[] = sprintf('<span class="tc-lead tc-warning">'.__('WARNING','theme-check').'</span>: '.__('%1$s %2$s found.', 'theme-check'), '<strong>' . $error . '</strong>', $reason) ;
45
  $ret = false;
46
  }
47
  }
48
 
49
  foreach( $musthave as $file ) {
50
  if ( !in_array( $file, $filenames ) ) {
51
+ $this->error[] = sprintf('<span class="tc-lead tc-warning">'.__('WARNING','theme-check').'</span>: '.__('Could not find the file %s in the theme.', 'theme-check'), '<strong>' . $file . '</strong>' );
52
  $ret = false;
53
  }
54
  }
55
 
56
  foreach( $rechave as $file => $reason ) {
57
  if ( !in_array( $file, $filenames ) ) {
58
+ $this->error[] = sprintf('<span class="tc-lead tc-recommended">'.__('RECOMMENDED','theme-check').'</span>: '.__('Could not find the file %1$s in the theme. %2$s', 'theme-check'), '<strong>' . $file . '</strong>', $reason );
59
  }
60
  }
61
 
64
 
65
  function getError() { return $this->error; }
66
  }
67
+ $themechecks[] = new File_Checks;
checks/{artisteer.php → generated.php} RENAMED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- class ArtisteerCheck implements themecheck {
4
  protected $error = array();
5
 
6
  function check( $php_files, $css_files, $other_files) {
@@ -12,16 +12,25 @@ class ArtisteerCheck implements themecheck {
12
 
13
  $ret = true;
14
  if (
 
15
  strpos( $php, 'art_normalize_widget_style_tokens' ) !== false
16
  || strpos( $php, 'art_include_lib' ) !== false
17
- || strpos( $php, '_remove_last_slash($url) {' ) !== false
18
  || strpos( $php, 'adi_normalize_widget_style_tokens' ) !== false
19
  || strpos( $php, 'm_normalize_widget_style_tokens' ) !== false
20
  || strpos ( $php, "bw = '<!--- BEGIN Widget --->';" ) !== false
21
  || strpos ( $php, "ew = '<!-- end_widget -->';" ) !== false
22
  || strpos ( $php, "end_widget' => '<!-- end_widget -->'") !== false
 
 
 
 
 
 
 
 
23
  ) {
24
- $this->error[] = "<span class='tc-lead tc-warning'>WARNING</span>: " . __( 'This theme appears to have been auto-generated. Generated themes are not allowed in the themes directory.', 'themecheck' );
25
  $ret = false;
26
  }
27
 
@@ -30,4 +39,4 @@ class ArtisteerCheck implements themecheck {
30
 
31
  function getError() { return $this->error; }
32
  }
33
- $themechecks[] = new ArtisteerCheck;
1
  <?php
2
 
3
+ class GeneratedCheck implements themecheck {
4
  protected $error = array();
5
 
6
  function check( $php_files, $css_files, $other_files) {
12
 
13
  $ret = true;
14
  if (
15
+ //Artisteer
16
  strpos( $php, 'art_normalize_widget_style_tokens' ) !== false
17
  || strpos( $php, 'art_include_lib' ) !== false
18
+ || strpos( $php, '_remove_last_slash($url) {' ) !== false
19
  || strpos( $php, 'adi_normalize_widget_style_tokens' ) !== false
20
  || strpos( $php, 'm_normalize_widget_style_tokens' ) !== false
21
  || strpos ( $php, "bw = '<!--- BEGIN Widget --->';" ) !== false
22
  || strpos ( $php, "ew = '<!-- end_widget -->';" ) !== false
23
  || strpos ( $php, "end_widget' => '<!-- end_widget -->'") !== false
24
+ //Lubith
25
+ || strpos ( $php, "Lubith") !== false
26
+ //Templatetoaster
27
+ || strpos ( $php, "templatetoaster_") !== false
28
+ || strpos ( $php, "Templatetoaster_") !== false
29
+ || strpos ( $php, "@package templatetoaster") !== false
30
+ //wpthemegenerator
31
+ || strpos ( $php, "wptg_") !== false
32
  ) {
33
+ $this->error[] = "<span class='tc-lead tc-warning'>" . __('WARNING', 'theme-check' ). "</span>: " . __( 'This theme appears to have been auto-generated. Generated themes are not allowed in the themes directory.', 'theme-check' );
34
  $ret = false;
35
  }
36
 
39
 
40
  function getError() { return $this->error; }
41
  }
42
+ $themechecks[] = new GeneratedCheck;
checks/gravatar.php CHANGED
@@ -12,7 +12,7 @@ class GravatarCheck implements themecheck {
12
  $ret = true;
13
 
14
  if ( ( strpos( $php, 'get_avatar' ) === false ) && ( strpos( $php, 'wp_list_comments' ) === false ) ) {
15
- $this->error[] = __( "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to support the standard avatar functions. Use <strong>get_avatar</strong> or <strong>wp_list_comments</strong> to add this support.", "themecheck" );
16
  $ret = false;
17
  }
18
 
12
  $ret = true;
13
 
14
  if ( ( strpos( $php, 'get_avatar' ) === false ) && ( strpos( $php, 'wp_list_comments' ) === false ) ) {
15
+ $this->error[] = '<span class="tc-lead tc-required">'.__('REQUIRED','theme-check').'</span>: '.__("This theme doesn't seem to support the standard avatar functions. Use <strong>get_avatar</strong> or <strong>wp_list_comments</strong> to add this support.", 'theme-check' );
16
  $ret = false;
17
  }
18
 
checks/i18n.php CHANGED
@@ -9,13 +9,13 @@ class I18NCheck implements themecheck {
9
  $ret = true;
10
  $error = '';
11
  checkcount();
12
-
13
  // make sure the tokenizer is available
14
  if ( !function_exists( 'token_get_all' ) ) return true;
15
 
16
  foreach ( $php_files as $php_key => $phpfile ) {
17
  $error='';
18
-
19
  $stmts = array();
20
  foreach ( array('_e(', '__(', '_e (', '__ (') as $finder) {
21
  $search = $phpfile;
@@ -36,7 +36,7 @@ class I18NCheck implements themecheck {
36
  $search = substr($search,$i);
37
  }
38
  }
39
-
40
  foreach ( $stmts as $match ) {
41
  $tokens = @token_get_all('<?php '.$match.';');
42
  if (!empty($tokens)) {
@@ -45,16 +45,22 @@ class I18NCheck implements themecheck {
45
  $filename = tc_filename( $php_key );
46
  $grep = tc_grep( ltrim( $match ), $php_key );
47
  preg_match( '/[^\s]*\s[0-9]+/', $grep, $line);
48
- $error = ( !strpos( $error, $line[0] ) ) ? $grep : '';
49
- $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: Possible variable <strong>%1$s</strong> found in translation function in <strong>%2$s</strong>. Translation function calls must NOT contain PHP variables. %3$s','themecheck'),
50
- $token[1], $filename, $error);
 
 
 
 
 
 
51
  break; // stop looking at the tokens on this line once a variable is found
52
  }
53
  }
54
  }
55
  }
56
-
57
-
58
  }
59
  return $ret;
60
  }
9
  $ret = true;
10
  $error = '';
11
  checkcount();
12
+
13
  // make sure the tokenizer is available
14
  if ( !function_exists( 'token_get_all' ) ) return true;
15
 
16
  foreach ( $php_files as $php_key => $phpfile ) {
17
  $error='';
18
+
19
  $stmts = array();
20
  foreach ( array('_e(', '__(', '_e (', '__ (') as $finder) {
21
  $search = $phpfile;
36
  $search = substr($search,$i);
37
  }
38
  }
39
+
40
  foreach ( $stmts as $match ) {
41
  $tokens = @token_get_all('<?php '.$match.';');
42
  if (!empty($tokens)) {
45
  $filename = tc_filename( $php_key );
46
  $grep = tc_grep( ltrim( $match ), $php_key );
47
  preg_match( '/[^\s]*\s[0-9]+/', $grep, $line);
48
+ $error = '';
49
+ if ( isset( $line[0] ) ) {
50
+ $error = ( !strpos( $error, $line[0] ) ) ? $grep : '';
51
+ }
52
+ $this->error[] = sprintf('<span class="tc-lead tc-recommended">'.__('RECOMMENDED','theme-check').'</span>: '.__('Possible variable %1$s found in translation function in %2$s. Translation function calls must NOT contain PHP variables. %3$s','theme-check'),
53
+ '<strong>' . $token[1] . '</strong>',
54
+ '<strong>' . $filename . '</strong>',
55
+ $error
56
+ );
57
  break; // stop looking at the tokens on this line once a variable is found
58
  }
59
  }
60
  }
61
  }
62
+
63
+
64
  }
65
  return $ret;
66
  }
checks/iframes.php CHANGED
@@ -6,7 +6,7 @@ class IframeCheck implements themecheck {
6
  $ret = true;
7
 
8
  $checks = array(
9
- '/<(iframe)[^>]*>/' => __( 'iframes are sometimes used to load unwanted adverts and code on your site', 'themecheck' )
10
  );
11
 
12
  foreach ( $php_files as $php_key => $phpfile ) {
@@ -17,7 +17,7 @@ class IframeCheck implements themecheck {
17
  $error = ltrim( $matches[1], '(' );
18
  $error = rtrim( $error, '(' );
19
  $grep = tc_grep( $error, $php_key );
20
- $this->error[] = sprintf(__('<span class="tc-lead tc-info">INFO</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong> %3$s.%4$s', 'themecheck'), $error, $filename, $check, $grep ) ;
21
  }
22
  }
23
  }
6
  $ret = true;
7
 
8
  $checks = array(
9
+ '/<(iframe)[^>]*>/' => __( 'iframes are sometimes used to load unwanted adverts and code on your site', 'theme-check' )
10
  );
11
 
12
  foreach ( $php_files as $php_key => $phpfile ) {
17
  $error = ltrim( $matches[1], '(' );
18
  $error = rtrim( $error, '(' );
19
  $grep = tc_grep( $error, $php_key );
20
+ $this->error[] = sprintf('<span class="tc-lead tc-info">'.__('INFO','theme-check').'</span>: '.__('%1$s was found in the file %2$s %3$s.%4$s', 'theme-check'), '<strong>' . $error . '</strong>', '<strong>' . $filename . '</strong>', $check, $grep ) ;
21
  }
22
  }
23
  }
checks/include.php CHANGED
@@ -7,16 +7,16 @@ class IncludeCheck implements themecheck {
7
 
8
  $ret = true;
9
 
10
- $checks = array( '/(?<![a-z0-9_])(?:requir|includ)e(?:_once)?\s?\(/' => __( 'The theme appears to use include or require. If these are being used to include separate sections of a template from independent files, then <strong>get_template_part()</strong> should be used instead.', 'themecheck' ) );
11
 
12
  foreach ( $php_files as $php_key => $phpfile ) {
13
  foreach ( $checks as $key => $check ) {
14
  checkcount();
15
  if ( preg_match( $key, $phpfile, $matches ) ) {
16
  $filename = tc_filename( $php_key );
17
- $error = '/(?<![a-z0-9_])(?:requir|includ)e(?:_once)?\s?\(/';
18
  $grep = tc_preg( $error, $php_key );
19
- if ( basename($filename) !== 'functions.php' ) $this->error[] = sprintf ( __( '<span class="tc-lead tc-info">INFO</span>: <strong>%1$s</strong> %2$s %3$s', 'themecheck' ), $filename, $check, $grep );
20
  }
21
  }
22
 
7
 
8
  $ret = true;
9
 
10
+ $checks = array( '/(?<![a-z0-9_])(?:requir|includ)e(?:_once)?\s?[\'"\(]/' => __( 'The theme appears to use include or require. If these are being used to include separate sections of a template from independent files, then <strong>get_template_part()</strong> should be used instead.', 'theme-check' ) );
11
 
12
  foreach ( $php_files as $php_key => $phpfile ) {
13
  foreach ( $checks as $key => $check ) {
14
  checkcount();
15
  if ( preg_match( $key, $phpfile, $matches ) ) {
16
  $filename = tc_filename( $php_key );
17
+ $error = '/(?<![a-z0-9_])(?:requir|includ)e(?:_once)?\s?[\'"\(]/';
18
  $grep = tc_preg( $error, $php_key );
19
+ if ( basename($filename) !== 'functions.php' ) $this->error[] = sprintf ( '<span class="tc-lead tc-info">'.__('INFO','theme-check').'</span>: '.__('%1$s %2$s %3$s', 'theme-check' ), '<strong>' . $filename . '</strong>', $check, $grep );
20
  }
21
  }
22
 
checks/included-plugins.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class IncludedPlugins implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+ $ret = true;
7
+
8
+ $filenames = array();
9
+
10
+ foreach ( $other_files as $other_key => $otherfile ) {
11
+ array_push( $filenames, strtolower( basename( $other_key ) ) );
12
+ }
13
+
14
+ $blacklist = array(
15
+ '\.zip' => __( 'Zipped Plugin', 'theme-check' ),
16
+ );
17
+
18
+ checkcount();
19
+
20
+ foreach ( $blacklist as $file => $reason ) {
21
+ if ( $filename = preg_grep( '/' . $file . '/', $filenames ) ) {
22
+ $error = implode( array_unique( $filename ), ' ' );
23
+ $this->error[] = sprintf( '<span class="tc-lead tc-required">' . __( 'REQUIRED','theme-check' ) . '</span>: ' . __( '<strong>Zip file found.</strong> Plugins are not allowed in themes. The zip file found was <em>%s</em>.', 'theme-check' ), $error );
24
+ $ret = false;
25
+ }
26
+ }
27
+
28
+ return $ret;
29
+ }
30
+
31
+ function getError() { return $this->error; }
32
+ }
33
+
34
+ $themechecks[] = new IncludedPlugins;
checks/lineendings.php CHANGED
@@ -8,7 +8,7 @@ class LineEndingsCheck implements themecheck {
8
  if (preg_match("/\r\n/",$phpfile)) {
9
  if (preg_match("/[^\r]\n/",$phpfile)) {
10
  $filename = tc_filename( $php_key );
11
- $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Both DOS and UNIX style line endings were found in the file <strong>%1$s</strong>. This causes a problem with SVN repositories and must be corrected before the theme can be accepted. Please change the file to use only one style of line endings.', 'themecheck'), $filename);
12
  $ret = false;
13
  }
14
  }
@@ -17,18 +17,18 @@ class LineEndingsCheck implements themecheck {
17
  if (preg_match("/\r\n/",$cssfile)) {
18
  if (preg_match("/[^\r]\n/",$cssfile)) {
19
  $filename = tc_filename( $css_key );
20
- $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Both DOS and UNIX style line endings were found in the file <strong>%1$s</strong>. This causes a problem with SVN repositories and must be corrected before the theme can be accepted. Please change the file to use only one style of line endings.', 'themecheck'), $filename);
21
  $ret = false;
22
  }
23
  }
24
  }
25
  foreach ( $other_files as $oth_key => $othfile ) {
26
  $e = pathinfo($oth_key);
27
- if ( isset( $e['extension'] ) && in_array( $e['extension'], array( 'txt','js' ) ) ) {
28
  if (preg_match("/\r\n/",$othfile)) {
29
  if (preg_match("/[^\r]\n/",$othfile)) {
30
  $filename = tc_filename( $oth_key );
31
- $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Both DOS and UNIX style line endings were found in the file <strong>%1$s</strong>. This causes a problem with SVN repositories and must be corrected before the theme can be accepted. Please change the file to use only one style of line endings.', 'themecheck'), $filename);
32
  $ret = false;
33
  }
34
  }
8
  if (preg_match("/\r\n/",$phpfile)) {
9
  if (preg_match("/[^\r]\n/",$phpfile)) {
10
  $filename = tc_filename( $php_key );
11
+ $this->error[] = sprintf('<span class="tc-lead tc-warning">'.__('WARNING','theme-check').'</span>: '.__('Both DOS and UNIX style line endings were found in the file %1$s. This causes a problem with SVN repositories and must be corrected before the theme can be accepted. Please change the file to use only one style of line endings.', 'theme-check'), '<strong>' . $filename . '</strong>' );
12
  $ret = false;
13
  }
14
  }
17
  if (preg_match("/\r\n/",$cssfile)) {
18
  if (preg_match("/[^\r]\n/",$cssfile)) {
19
  $filename = tc_filename( $css_key );
20
+ $this->error[] = sprintf('<span class="tc-lead tc-warning">'.__('WARNING','theme-check').'</span>: '.__('Both DOS and UNIX style line endings were found in the file %1$s. This causes a problem with SVN repositories and must be corrected before the theme can be accepted. Please change the file to use only one style of line endings.', 'theme-check'), '<strong>' . $filename . '</strong>' );
21
  $ret = false;
22
  }
23
  }
24
  }
25
  foreach ( $other_files as $oth_key => $othfile ) {
26
  $e = pathinfo($oth_key);
27
+ if ( isset( $e['extension'] ) && in_array( $e['extension'], array( 'txt','js' ) ) ) {
28
  if (preg_match("/\r\n/",$othfile)) {
29
  if (preg_match("/[^\r]\n/",$othfile)) {
30
  $filename = tc_filename( $oth_key );
31
+ $this->error[] = sprintf('<span class="tc-lead tc-warning">'.__('WARNING','theme-check').'</span>: '.__('Both DOS and UNIX style line endings were found in the file %1$s. This causes a problem with SVN repositories and must be corrected before the theme can be accepted. Please change the file to use only one style of line endings.', 'theme-check'), '<strong>' . $filename . '</strong>' );
32
  $ret = false;
33
  }
34
  }
checks/links.php CHANGED
@@ -15,16 +15,15 @@ class Check_Links implements themecheck {
15
  $space_re = '(\\s*)';
16
  if ( preg_match_all( "/(<a)(\\s+)(href" . $space_re . "=" . $space_re . "\"" . $space_re . "((http|https|ftp):\\/\\/)?)" . $url_re . "(\"" . $space_re . $title_re . $space_re . ">)" . $title_re . "(<\\/a>)/is", $phpfile, $out, PREG_SET_ORDER ) ) {
17
  $filename = tc_filename( $php_key );
18
- $out = array_unique( $out );
19
  foreach( $out as $key ) {
20
  if ( preg_match( '/\<a\s?href\s?=\s?["|\'](.*?)[\'|"](.*?)\>(.*?)\<\/a\>/is', $key[0], $stripped ) ) {
21
  if ( !empty( $data['AuthorURI'] ) && !empty( $data['URI'] ) && $stripped[1] && !strpos( $stripped[1], $data['URI'] ) && !strpos( $stripped[1], $data['AuthorURI'] ) && !strpos( $stripped[1], 'wordpress.' ) ) {
22
  $grep .= tc_grep( $stripped[1], $php_key );
23
  }
24
  }
25
- if ( $grep ) {
26
- $this->error[] = sprintf(__('<span class="tc-lead tc-info">INFO</span>: Possible hard-coded links were found in the file <strong>%1$s</strong>.%2$s', 'themecheck'), $filename, $grep);
27
- }
28
  }
29
  }
30
  }
15
  $space_re = '(\\s*)';
16
  if ( preg_match_all( "/(<a)(\\s+)(href" . $space_re . "=" . $space_re . "\"" . $space_re . "((http|https|ftp):\\/\\/)?)" . $url_re . "(\"" . $space_re . $title_re . $space_re . ">)" . $title_re . "(<\\/a>)/is", $phpfile, $out, PREG_SET_ORDER ) ) {
17
  $filename = tc_filename( $php_key );
 
18
  foreach( $out as $key ) {
19
  if ( preg_match( '/\<a\s?href\s?=\s?["|\'](.*?)[\'|"](.*?)\>(.*?)\<\/a\>/is', $key[0], $stripped ) ) {
20
  if ( !empty( $data['AuthorURI'] ) && !empty( $data['URI'] ) && $stripped[1] && !strpos( $stripped[1], $data['URI'] ) && !strpos( $stripped[1], $data['AuthorURI'] ) && !strpos( $stripped[1], 'wordpress.' ) ) {
21
  $grep .= tc_grep( $stripped[1], $php_key );
22
  }
23
  }
24
+ }
25
+ if ( $grep ) {
26
+ $this->error[] = sprintf('<span class="tc-lead tc-info">'.__('INFO','theme-check').'</span>: '.__('Possible hard-coded links were found in the file %1$s.%2$s', 'theme-check'), '<strong>' . $filename . '</strong>', $grep);
27
  }
28
  }
29
  }
checks/malware.php CHANGED
@@ -6,7 +6,7 @@ class MalwareCheck implements themecheck {
6
  $ret = true;
7
 
8
  $checks = array(
9
- '/[^a-z0-9](?<!_)(file_get_contents|curl_exec|curl_init|readfile|fopen|fsockopen|pfsockopen|fclose|fread|fwrite|file_put_contents)\s?\(/' => __( 'possible file operations', 'themecheck' ),
10
  );
11
 
12
  foreach ( $php_files as $php_key => $phpfile ) {
@@ -20,10 +20,10 @@ class MalwareCheck implements themecheck {
20
  $error = ltrim( $match, '(' );
21
  $error = rtrim( $error, '(' );
22
  $grep = tc_grep( $error, $php_key );
23
- $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong> %3$s.%4$s', 'themecheck'), $error, $filename, $check, $grep );
24
  $ret = false;
25
  }
26
- }
27
  }
28
  }
29
  return $ret;
6
  $ret = true;
7
 
8
  $checks = array(
9
+ '/[^a-z0-9](?<!_)(file_get_contents|curl_exec|curl_init|readfile|fopen|fsockopen|pfsockopen|fclose|fread|fwrite|file_put_contents)\s?\(/' => __( 'File operations should use the WP_Filesystem methods instead of direct PHP filesystem calls', 'theme-check' ),
10
  );
11
 
12
  foreach ( $php_files as $php_key => $phpfile ) {
20
  $error = ltrim( $match, '(' );
21
  $error = rtrim( $error, '(' );
22
  $grep = tc_grep( $error, $php_key );
23
+ $this->error[] = sprintf('<span class="tc-lead tc-warning">'.__('WARNING','theme-check').'</span>: '.__('%1$s was found in the file %2$s %3$s.%4$s', 'theme-check'), '<strong>' . $error. '</strong>', '<strong>' . $filename . '</strong>', $check, $grep );
24
  $ret = false;
25
  }
26
+ }
27
  }
28
  }
29
  return $ret;
checks/more_deprecated.php CHANGED
@@ -1,5 +1,9 @@
1
  <?php
2
 
 
 
 
 
3
  class More_Deprecated implements themecheck {
4
  protected $error = array();
5
 
@@ -8,22 +12,50 @@ class More_Deprecated implements themecheck {
8
  $ret = true;
9
 
10
  $checks = array(
11
- 'get_bloginfo\(\s?("|\')home("|\')\s?\)' => 'home_url()',
12
- 'bloginfo\(\s?("|\')home("|\')\s?\)' => 'echo home_url()'
13
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
- foreach ( $php_files as $php_key => $phpfile ) {
16
- foreach ( $checks as $key => $check ) {
 
17
  checkcount();
18
- if ( preg_match( '/[\s|]' . $key . '/', $phpfile, $matches ) ) {
19
- $filename = tc_filename( $php_key );
20
- $error = ltrim( rtrim( $matches[0], '(' ) );
21
- $grep = tc_grep( $error, $php_key );
22
- $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s', 'themecheck'), $error, $filename, $check, $grep);
23
- $ret = false;
 
 
 
 
24
  }
25
  }
26
  }
 
27
  return $ret;
28
  }
29
 
1
  <?php
2
 
3
+ /**
4
+ * Checks for the use of deprecated function parameters.
5
+ */
6
+
7
  class More_Deprecated implements themecheck {
8
  protected $error = array();
9
 
12
  $ret = true;
13
 
14
  $checks = array(
15
+ 'get_bloginfo' => array(
16
+ 'home' => 'home_url()',
17
+ 'url' => 'home_url()',
18
+ 'wpurl' => 'site_url()',
19
+ 'stylesheet_directory' => 'get_stylesheet_directory_uri()',
20
+ 'template_directory' => 'get_template_directory_uri()',
21
+ 'template_url' => 'get_template_directory_uri()',
22
+ 'text_direction' => 'is_rtl()',
23
+ 'feed_url' => "get_feed_link( 'feed' ), where feed is rss, rss2 or atom",
24
+ ),
25
+ 'bloginfo' => array(
26
+ 'home' => 'echo esc_url( home_url() )',
27
+ 'url' => 'echo esc_url( home_url() )',
28
+ 'wpurl' => 'echo esc_url( site_url() )',
29
+ 'stylesheet_directory' => 'echo esc_url( get_stylesheet_directory_uri() )',
30
+ 'template_directory' => 'echo esc_url( get_template_directory_uri() )',
31
+ 'template_url' => 'echo esc_url( get_template_directory_uri() )',
32
+ 'text_direction' => 'is_rtl()',
33
+ 'feed_url' => "echo esc_url( get_feed_link( 'feed' ) ), where feed is rss, rss2 or atom",
34
+ ),
35
+ 'get_option' => array(
36
+ 'home' => 'home_url()',
37
+ 'site_url' => 'site_url()',
38
+ )
39
+ );
40
 
41
+ foreach ( $php_files as $php_key => $php_file ) {
42
+ // Loop through all functions.
43
+ foreach ( $checks as $function => $data ) {
44
  checkcount();
45
+
46
+ // Loop through the parameters and look for all function/parameter combinations.
47
+ foreach ( $data as $parameter => $replacement ) {
48
+ if ( preg_match( '/' . $function . '\(\s*("|\')' . $parameter . '("|\')\s*\)/', $php_file, $matches ) ) {
49
+ $filename = tc_filename( $php_key );
50
+ $error = ltrim( rtrim( $matches[0], '(' ) );
51
+ $grep = tc_grep( $error, $php_key );
52
+ $this->error[] = sprintf( '<span class="tc-lead tc-required">' . __( 'REQUIRED', 'theme-check' ) . '</span>: ' . __( '%1$s was found in the file %2$s. Use %3$s instead.%4$s', 'theme-check' ), '<strong>' . $error . '</strong>', '<strong>' . $filename . '</strong>', '<strong>' . $replacement . '</strong>', $grep );
53
+ $ret = false;
54
+ }
55
  }
56
  }
57
  }
58
+
59
  return $ret;
60
  }
61
 
checks/navmenu.php CHANGED
@@ -11,7 +11,7 @@ class NavMenuCheck implements themecheck {
11
  $php = implode( ' ', $php_files );
12
  checkcount();
13
  if ( strpos( $php, 'nav_menu' ) === false ) {
14
- $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to nav_menu's was found in the theme. Note that if your theme has a menu bar, it is required to use the WordPress nav_menu functionality for it.", "themecheck" );
15
  }
16
 
17
  return $ret;
11
  $php = implode( ' ', $php_files );
12
  checkcount();
13
  if ( strpos( $php, 'nav_menu' ) === false ) {
14
+ $this->error[] = '<span class="tc-lead tc-recommended">'.__('RECOMMENDED','theme-check').'</span>: '.__("No reference to nav_menu's was found in the theme. Note that if your theme has a menu bar, it is required to use the WordPress nav_menu functionality for it.", 'theme-check' );
15
  }
16
 
17
  return $ret;
checks/nonprintable.php CHANGED
@@ -13,7 +13,7 @@ class NonPrintableCheck implements themecheck {
13
  if ( preg_match('/[\x00-\x08\x0B-\x0C\x0E-\x1F\x80-\xFF]/', $content, $matches ) ) {
14
  $filename = tc_filename( $name );
15
  $non_print = tc_preg( '/[\x00-\x08\x0B-\x0C\x0E-\x1F\x80-\xFF]/', $name );
16
- $this->error[] = sprintf(__('<span class="tc-lead tc-info">INFO</span>: Non-printable characters were found in the <strong>%1$s</strong> file. You may want to check this file for errors.%2$s', 'themecheck'), $filename, $non_print);
17
  }
18
  }
19
 
13
  if ( preg_match('/[\x00-\x08\x0B-\x0C\x0E-\x1F\x80-\xFF]/', $content, $matches ) ) {
14
  $filename = tc_filename( $name );
15
  $non_print = tc_preg( '/[\x00-\x08\x0B-\x0C\x0E-\x1F\x80-\xFF]/', $name );
16
+ $this->error[] = sprintf('<span class="tc-lead tc-info">'.__('INFO','theme-check').'</span>: '.__('Non-printable characters were found in the %1$s file. You may want to check this file for errors.%2$s', 'theme-check'), '<strong>' . $filename . '</strong>', $non_print);
17
  }
18
  }
19
 
checks/phpshort.php CHANGED
@@ -8,10 +8,10 @@ class PHPShortTagsCheck implements themecheck {
8
 
9
  foreach ( $php_files as $php_key => $phpfile ) {
10
  checkcount();
11
- if ( preg_match( '/<\?(\=?)(?!php|xml)/', $phpfile ) ) {
12
  $filename = tc_filename( $php_key );
13
  $grep = tc_preg( '/<\?(\=?)(?!php|xml)/', $php_key );
14
- $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Found PHP short tags in file <strong>%1$s</strong>.%2$s', 'themecheck'), $filename, $grep);
15
  $ret = false;
16
  }
17
  }
8
 
9
  foreach ( $php_files as $php_key => $phpfile ) {
10
  checkcount();
11
+ if ( preg_match( '/<\?(\=?)(?!php|xml)/i', $phpfile ) ) {
12
  $filename = tc_filename( $php_key );
13
  $grep = tc_preg( '/<\?(\=?)(?!php|xml)/', $php_key );
14
+ $this->error[] = sprintf('<span class="tc-lead tc-warning">'.__('WARNING','theme-check').'</span>: '.__('Found PHP short tags in file %1$s.%2$s', 'theme-check'), '<strong>' . $filename . '</strong>', $grep);
15
  $ret = false;
16
  }
17
  }
checks/plugin-territory.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Checks for Plugin Territory Guidelines.
4
+ *
5
+ * See http://make.wordpress.org/themes/guidelines/guidelines-plugin-territory/
6
+ */
7
+
8
+ class Plugin_Territory implements themecheck {
9
+ protected $error = array();
10
+
11
+ function check( $php_files, $css_files, $other_files ) {
12
+ $ret = true;
13
+ $php = implode( ' ', $php_files );
14
+
15
+ // Functions that are required to be removed from the theme.
16
+ $forbidden_functions = array(
17
+ 'register_post_type',
18
+ 'register_taxonomy',
19
+ );
20
+
21
+ foreach ( $forbidden_functions as $function ) {
22
+ checkcount();
23
+ if ( preg_match( '/[\s?]' . $function . '\(/', $php ) ) {
24
+ $this->error[] = '<span class="tc-lead tc-required">' . __( 'REQUIRED', 'theme-check').'</span>: ' . sprintf( __( 'The theme uses the %s function, which is plugin-territory functionality.', 'theme-check' ), '<strong>' . esc_html( $function ) . '()</strong>' ) ;
25
+ $ret = false;
26
+ }
27
+ }
28
+
29
+ // Shortcodes can't be used in the post content, so warn about them.
30
+ if ( false !== strpos( $php, 'add_shortcode' ) ) {
31
+ checkcount();
32
+ $this->error[] = '<span class="tc-lead tc-warning">' . __( 'WARNING', 'theme-check').'</span>: ' . sprintf( __( 'The theme uses the %s function. Custom post-content shortcodes are plugin-territory functionality.', 'theme-check' ), '<strong>add_shortcode()</strong>' ) ;
33
+ $ret = false;
34
+ }
35
+
36
+ return $ret;
37
+ }
38
+
39
+ function getError() { return $this->error; }
40
+ }
41
+ $themechecks[] = new Plugin_Territory;
checks/post-formats.php CHANGED
@@ -24,7 +24,7 @@ class PostFormatCheck implements themecheck {
24
  $matches[0] = str_replace(array('"',"'"),'', $matches[0]);
25
  $error = esc_html( rtrim($matches[0], '(' ) );
26
  $grep = tc_grep( rtrim($matches[0], '(' ), $php_key);
27
- $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. However get_post_format and/or has_post_format were not found, and no use of formats in the CSS was detected.', 'themecheck'), $error, $filename);
28
  $ret = false;
29
  }
30
  }
24
  $matches[0] = str_replace(array('"',"'"),'', $matches[0]);
25
  $error = esc_html( rtrim($matches[0], '(' ) );
26
  $grep = tc_grep( rtrim($matches[0], '(' ), $php_key);
27
+ $this->error[] = sprintf('<span class="tc-lead tc-required">'.__('REQUIRED','theme-check').'</span>: '.__('%1$s was found in the file %2$s. However get_post_format and/or has_post_format were not found, and no use of formats in the CSS was detected.', 'theme-check'), '<strong>' . $error . '</strong>', '<strong>' . $filename . '</strong>');
28
  $ret = false;
29
  }
30
  }
checks/postsnav.php CHANGED
@@ -10,10 +10,13 @@ class PostPaginationCheck implements themecheck {
10
  // combine all the php files into one string to make it easier to search
11
  $php = implode( ' ', $php_files );
12
  checkcount();
13
- if ( strpos( $php, 'posts_nav_link' ) === false && strpos( $php, 'paginate_links' ) === false &&
 
 
 
14
  ( strpos( $php, 'previous_posts_link' ) === false && strpos( $php, 'next_posts_link' ) === false )
15
  ) {
16
- $this->error[] = __( "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have post pagination code in it. Use <strong>posts_nav_link()</strong> or <strong>paginate_links()</strong> or <strong>next_posts_link()</strong> and <strong>previous_posts_link()</strong> to add post pagination.", "themecheck" );
17
  $ret = false;
18
  }
19
 
10
  // combine all the php files into one string to make it easier to search
11
  $php = implode( ' ', $php_files );
12
  checkcount();
13
+ if ( strpos( $php, 'posts_nav_link' ) === false &&
14
+ strpos( $php, 'paginate_links' ) === false &&
15
+ strpos( $php, 'the_posts_pagination' ) === false &&
16
+ strpos( $php, 'the_posts_navigation' ) === false &&
17
  ( strpos( $php, 'previous_posts_link' ) === false && strpos( $php, 'next_posts_link' ) === false )
18
  ) {
19
+ $this->error[] = '<span class="tc-lead tc-required">'.__('REQUIRED','theme-check').'</span>: '.__("The theme doesn't have post pagination code in it. Use <strong>posts_nav_link()</strong> or <strong>paginate_links()</strong> or <strong>the_posts_pagination()</strong> or <strong>the_posts_navigation()</strong> or <strong>next_posts_link()</strong> and <strong>previous_posts_link()</strong> to add post pagination.", 'theme-check' );
20
  $ret = false;
21
  }
22
 
checks/postthumb.php CHANGED
@@ -12,11 +12,11 @@ class PostThumbnailCheck implements themecheck {
12
  checkcount();
13
 
14
  if ( strpos( $php, 'the_post_thumbnail' ) === false ) {
15
- $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>the_post_thumbnail()</strong> was found in the theme. It is recommended that the theme implement this functionality instead of using custom fields for thumbnails.", "themecheck" );
16
  }
17
 
18
  if ( strpos( $php, 'post-thumbnails' ) === false ) {
19
- $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to post-thumbnails was found in the theme. If the theme has a thumbnail like functionality, it should be implemented with <strong>add_theme_support( 'post-thumbnails' )</strong>in the functions.php file.", "themecheck" );
20
  }
21
 
22
  return $ret;
12
  checkcount();
13
 
14
  if ( strpos( $php, 'the_post_thumbnail' ) === false ) {
15
+ $this->error[] = '<span class="tc-lead tc-recommended">'.__('RECOMMENDED','theme-check').'</span>: '.__('No reference to <strong>the_post_thumbnail()</strong> was found in the theme. It is recommended that the theme implement this functionality instead of using custom fields for thumbnails.', 'theme-check' );
16
  }
17
 
18
  if ( strpos( $php, 'post-thumbnails' ) === false ) {
19
+ $this->error[] = '<span class="tc-lead tc-recommended">'.__('RECOMMENDED','theme-check').'</span>: '.__('No reference to post-thumbnails was found in the theme. If the theme has a thumbnail like functionality, it should be implemented with <strong>add_theme_support( "post-thumbnails" )</strong>in the functions.php file.', 'theme-check' );
20
  }
21
 
22
  return $ret;
checks/required.php DELETED
@@ -1,31 +0,0 @@
1
- <?php
2
-
3
- class Required implements themecheck {
4
- protected $error = array();
5
-
6
- function check( $php_files, $css_files, $other_files ) {
7
-
8
- $ret = true;
9
- $checks = array(
10
- '/\s?get_option\(\s?("|\')home("|\')\s?\)/' => 'home_url()',
11
- '/\s?get_option\(\s?("|\')site_url("|\')\s?\)/' => 'site_url()',
12
- );
13
-
14
- foreach ( $php_files as $php_key => $phpfile ) {
15
- foreach ( $checks as $key => $check ) {
16
- checkcount();
17
- if ( preg_match( $key, $phpfile, $matches ) ) {
18
- $filename = tc_filename( $php_key );
19
- $matches[0] = str_replace(array('"',"'"),'', $matches[0]);
20
- $error = esc_html( rtrim($matches[0], '(' ) );
21
- $grep = tc_grep( rtrim($matches[0], '(' ), $php_key );
22
- $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s', 'themecheck'), $error, $filename, $check, $grep);
23
- $ret = false;
24
- }
25
- }
26
- }
27
- return $ret;
28
- }
29
- function getError() { return $this->error; }
30
- }
31
- $themechecks[] = new Required;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
checks/screenshot.php CHANGED
@@ -12,18 +12,27 @@ class Screenshot_Checks implements themecheck {
12
  }
13
 
14
  checkcount();
15
- if ( in_array( 'screenshot.png', $filenames ) ) {
 
 
16
  foreach ( $other_files as $other_key => $otherfile ) {
17
- if ( basename( $other_key ) === 'screenshot.png' && preg_match( '/.*themes\/[^\/]*\/screenshot\.png/', $other_key )) {
 
18
  // we have or screenshot!
19
  $image = getimagesize( $other_key );
20
- if ( $image[0] > 320 || $image[1] > 240 ) {
21
- $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: Screenshot is wrong size! Detected: <strong>%1$sx%2$spx</strong>. Maximum allowed size is 320x240px.', 'themecheck'), $image[0], $image[1]);
 
 
 
 
 
 
22
  }
23
  }
24
  }
25
  } else {
26
- $this->error[] = __( "<span class='tc-lead tc-warning'>WARNING</span>: No screenshot detected! Please include a screenshot.png.", "themecheck" );
27
  $ret = false;
28
  }
29
  return $ret;
@@ -31,4 +40,4 @@ class Screenshot_Checks implements themecheck {
31
 
32
  function getError() { return $this->error; }
33
  }
34
- $themechecks[] = new Screenshot_Checks;
12
  }
13
 
14
  checkcount();
15
+
16
+ if ( in_array( 'screenshot.png', $filenames ) || in_array( 'screenshot.jpg', $filenames ) ) {
17
+
18
  foreach ( $other_files as $other_key => $otherfile ) {
19
+
20
+ if ( ( basename( $other_key ) === 'screenshot.png' || basename( $other_key ) === 'screenshot.jpg' ) && preg_match( '/.*themes\/[^\/]*\/screenshot\.(png|jpg)/', $other_key ) ) {
21
  // we have or screenshot!
22
  $image = getimagesize( $other_key );
23
+ if ( $image[0] > 1200 || $image[1] > 900 ) {
24
+ $this->error[] = sprintf('<span class="tc-lead tc-recommended">'. __( 'RECOMMENDED','theme-check' ) . '</span>: ' . __( 'Screenshot is wrong size! Detected: %1$sx%2$spx. Maximum allowed size is 1200x900px.', 'theme-check' ), '<strong>' . $image[0], $image[1] . '</strong>' );
25
+ }
26
+ if ( $image[1] / $image[0] != 0.75 ) {
27
+ $this->error[] = '<span class="tc-lead tc-recommended">'.__('RECOMMENDED','theme-check').'</span>: '.__('Screenshot dimensions are wrong! Ratio of width to height should be 4:3.', 'theme-check');
28
+ }
29
+ if ( $image[0] != 1200 || $image[1] != 900 ) {
30
+ $this->error[] = '<span class="tc-lead tc-recommended">'.__('RECOMMENDED','theme-check').'</span>: '.__('Screenshot size should be 1200x900, to account for HiDPI displays. Any 4:3 image size is acceptable, but 1200x900 is preferred.', 'theme-check');
31
  }
32
  }
33
  }
34
  } else {
35
+ $this->error[] = '<span class="tc-lead tc-warning">'.__('WARNING','theme-check').'</span>: '.__('No screenshot detected! Please include a screenshot.png or screenshot.jpg.', 'theme-check' );
36
  $ret = false;
37
  }
38
  return $ret;
40
 
41
  function getError() { return $this->error; }
42
  }
43
+ $themechecks[] = new Screenshot_Checks;
checks/searchform.php CHANGED
@@ -6,14 +6,14 @@ class SearchFormCheck implements themecheck {
6
  function check( $php_files, $css_files, $other_files ) {
7
 
8
  $ret = true;
9
- $checks = array( '/(include\s?\(\s?TEMPLATEPATH\s?\.?\s?["|\']\/searchform.php["|\']\s?\))/' => __( 'Please use <strong>get_search_form()</strong> instead of including searchform.php directly.', 'themecheck' ) );
10
  foreach ( $php_files as $php_key => $phpfile ) {
11
  foreach ($checks as $key => $check) {
12
  checkcount();
13
  if ( preg_match( $key, $phpfile, $out ) ) {
14
  $grep = tc_preg( $key, $php_key );
15
  $filename = tc_filename( $php_key );
16
- $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong> %2$s%3$s', 'themecheck'), $filename, $check, $grep);
17
  $ret = false;
18
  }
19
  }
6
  function check( $php_files, $css_files, $other_files ) {
7
 
8
  $ret = true;
9
+ $checks = array( '/(include\s?\(\s?TEMPLATEPATH\s?\.?\s?["|\']\/searchform.php["|\']\s?\))/' => __( 'Please use <strong>get_search_form()</strong> instead of including searchform.php directly.', 'theme-check' ) );
10
  foreach ( $php_files as $php_key => $phpfile ) {
11
  foreach ($checks as $key => $check) {
12
  checkcount();
13
  if ( preg_match( $key, $phpfile, $out ) ) {
14
  $grep = tc_preg( $key, $php_key );
15
  $filename = tc_filename( $php_key );
16
+ $this->error[] = sprintf('<span class="tc-lead tc-required">'.__('REQUIRED','theme-check').'</span>: '.__('%1$s %2$s%3$s', 'theme-check'), '<strong>' . $filename . '</strong>', $check, $grep);
17
  $ret = false;
18
  }
19
  }
checks/style_needed.php CHANGED
@@ -8,26 +8,28 @@ class Style_Needed implements themecheck {
8
  $ret = true;
9
 
10
  $checks = array(
11
- '[ \t\/*#]*Theme Name:' => __( '<strong>Theme name:</strong> is missing from your style.css header.', 'themecheck' ),
12
- '[ \t\/*#]*Description:' => __( '<strong>Description:</strong> is missing from your style.css header.', 'themecheck' ),
13
- '[ \t\/*#]*Author:' => __( '<strong>Author:</strong> is missing from your style.css header.', 'themecheck' ),
14
- '[ \t\/*#]*Version' => __( '<strong>Version:</strong> is missing from your style.css header.', 'themecheck' ),
15
- '[ \t\/*#]*License:' => __( '<strong>License:</strong> is missing from your style.css header.', 'themecheck' ),
16
- '[ \t\/*#]*License URI:' => __( '<strong>License URI:</strong> is missing from your style.css header.', 'themecheck' ),
17
- '\.sticky' => __( '<strong>.sticky</strong> css class is needed in your theme css.', 'themecheck' ),
18
- '\.bypostauthor' => __( '<strong>.bypostauthor</strong> css class is needed in your theme css.', 'themecheck' ),
19
- '\.alignleft' => __( '<strong>.alignleft</strong> css class is needed in your theme css.', 'themecheck' ),
20
- '\.alignright' => __( '<strong>.alignright</strong> css class is needed in your theme css.', 'themecheck' ),
21
- '\.aligncenter' => __( '<strong>.aligncenter</strong> css class is needed in your theme css.', 'themecheck' ),
22
- '\.wp-caption' => __( '<strong>.wp-caption</strong> css class is needed in your theme css.', 'themecheck' ),
23
- '\.wp-caption-text' => __( '<strong>.wp-caption-text</strong> css class is needed in your theme css.', 'themecheck' ),
24
- '\.gallery-caption' => __( '<strong>.gallery-caption</strong> css class is needed in your theme css.', 'themecheck' )
 
 
25
  );
26
 
27
  foreach ($checks as $key => $check) {
28
  checkcount();
29
  if ( !preg_match( '/' . $key . '/i', $css, $matches ) ) {
30
- $this->error[] = __("<span class='tc-lead tc-required'>REQUIRED</span>:") . $check;
31
  $ret = false;
32
  }
33
  }
@@ -36,4 +38,4 @@ class Style_Needed implements themecheck {
36
  }
37
  function getError() { return $this->error; }
38
  }
39
- $themechecks[] = new Style_Needed;
8
  $ret = true;
9
 
10
  $checks = array(
11
+ '[ \t\/*#]*Theme Name:' => __( '<strong>Theme name:</strong> is missing from your style.css header.', 'theme-check' ),
12
+ '[ \t\/*#]*Description:' => __( '<strong>Description:</strong> is missing from your style.css header.', 'theme-check' ),
13
+ '[ \t\/*#]*Author:' => __( '<strong>Author:</strong> is missing from your style.css header.', 'theme-check' ),
14
+ '[ \t\/*#]*Version' => __( '<strong>Version:</strong> is missing from your style.css header.', 'theme-check' ),
15
+ '[ \t\/*#]*License:' => __( '<strong>License:</strong> is missing from your style.css header.', 'theme-check' ),
16
+ '[ \t\/*#]*License URI:' => __( '<strong>License URI:</strong> is missing from your style.css header.', 'theme-check' ),
17
+ '[ \t\/*#]*Text Domain:' => __( '<strong>Text Domain:</strong> is missing from your style.css header.', 'theme-check' ),
18
+ '\.sticky' => __( '<strong>.sticky</strong> css class is needed in your theme css.', 'theme-check' ),
19
+ '\.bypostauthor' => __( '<strong>.bypostauthor</strong> css class is needed in your theme css.', 'theme-check' ),
20
+ '\.alignleft' => __( '<strong>.alignleft</strong> css class is needed in your theme css.', 'theme-check' ),
21
+ '\.alignright' => __( '<strong>.alignright</strong> css class is needed in your theme css.', 'theme-check' ),
22
+ '\.aligncenter' => __( '<strong>.aligncenter</strong> css class is needed in your theme css.', 'theme-check' ),
23
+ '\.wp-caption' => __( '<strong>.wp-caption</strong> css class is needed in your theme css.', 'theme-check' ),
24
+ '\.wp-caption-text' => __( '<strong>.wp-caption-text</strong> css class is needed in your theme css.', 'theme-check' ),
25
+ '\.gallery-caption' => __( '<strong>.gallery-caption</strong> css class is needed in your theme css.', 'theme-check' ),
26
+ '\.screen-reader-text' => __( '<strong>.screen-reader-text</strong> css class is needed in your theme css. See See: <a href="http://codex.wordpress.org/CSS#WordPress_Generated_Classes">the Codex</a> for an example implementation.', 'theme-check' )
27
  );
28
 
29
  foreach ($checks as $key => $check) {
30
  checkcount();
31
  if ( !preg_match( '/' . $key . '/i', $css, $matches ) ) {
32
+ $this->error[] = "<span class='tc-lead tc-required'>" . __('REQUIRED', 'theme-check' ) . "</span>: " . $check;
33
  $ret = false;
34
  }
35
  }
38
  }
39
  function getError() { return $this->error; }
40
  }
41
+ $themechecks[] = new Style_Needed;
checks/style_suggested.php CHANGED
@@ -17,7 +17,7 @@ class Style_Suggested implements themecheck {
17
 
18
  foreach ($checks as $key => $check) {
19
  if ( !preg_match( '/' . $key . '/i', $css, $matches ) ) {
20
- $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: <strong>%1$s</strong> is missing from your style.css header.', 'themecheck'), $check);
21
  }
22
  }
23
 
17
 
18
  foreach ($checks as $key => $check) {
19
  if ( !preg_match( '/' . $key . '/i', $css, $matches ) ) {
20
+ $this->error[] = sprintf('<span class="tc-lead tc-recommended">'.__('RECOMMENDED','theme-check').'</span>: '.__('%s is missing from your style.css header.', 'theme-check'), '<strong>' . $check . '</strong>' );
21
  }
22
  }
23
 
checks/style_tags.php CHANGED
@@ -13,26 +13,31 @@ class Style_Tags implements themecheck {
13
  }
14
 
15
  if ( !$data[ 'Tags' ] ) {
16
- $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: <strong>Tags:</strong> is either empty or missing in style.css header.", "themecheck" );
17
  return $ret;
18
  }
 
 
19
 
20
- $allowed_tags = array("black","blue","brown","gray","green","orange","pink","purple","red","silver","tan","white","yellow","dark","light","one-column",
21
- "two-columns","three-columns","four-columns","left-sidebar","right-sidebar","fixed-width","flexible-width","blavatar","buddypress","custom-background",
22
- "custom-colors","custom-header","custom-menu","editor-style","featured-image-header","featured-images","front-page-post-form","full-width-template",
23
- "microformats","post-formats","rtl-language-support","sticky-post","theme-options","threaded-comments","translation-ready","holiday","photoblogging",
24
- "seasonal");
25
-
26
  foreach( $data[ 'Tags' ] as $tag ) {
27
- if ( !in_array( strtolower( $tag ), $allowed_tags ) ) {
28
- $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Found wrong tag, remove <strong>%1$s</strong> from your style.css header.', 'themecheck'), $tag);
29
- $ret = false;
 
 
 
 
 
 
 
 
 
30
  }
31
  }
32
-
33
  return $ret;
34
  }
35
 
36
  function getError() { return $this->error; }
37
  }
38
- $themechecks[] = new Style_Tags;
13
  }
14
 
15
  if ( !$data[ 'Tags' ] ) {
16
+ $this->error[] = '<span class="tc-lead tc-recommended">' . __('RECOMMENDED','theme-check') . '</span>: ' . __( '<strong>Tags:</strong> is either empty or missing in style.css header.', 'theme-check' );
17
  return $ret;
18
  }
19
+ $deprecated_tags = array("flexible-width","fixed-width","black","blue","brown","gray","green","orange","pink","purple","red","silver","tan","white","yellow","dark","light","fixed-layout","fluid-layout","responsive-layout","blavatar","holiday","photoblogging","seasonal");
20
+ $allowed_tags = array('grid-layout',"one-column","two-columns","three-columns","four-columns","left-sidebar","right-sidebar","flexible-header",'footer-widgets',"accessibility-ready","buddypress","custom-background","custom-colors","custom-header","custom-menu","custom-logo","editor-style","featured-image-header","featured-images","front-page-post-form","full-width-template","microformats","post-formats","rtl-language-support","sticky-post","theme-options","threaded-comments","translation-ready",'blog','e-commerce','education','entertainment','food-and-drink','holiday','news','photography','portfolio');
21
 
 
 
 
 
 
 
22
  foreach( $data[ 'Tags' ] as $tag ) {
23
+
24
+ if ( strpos( strtolower( $tag ), "accessibility-ready") !== false ) {
25
+ $this->error[] = '<span class="tc-lead tc-info">'. __('INFO','theme-check'). '</span>: ' . __( 'Themes that use the tag accessibility-ready will need to undergo an accessibility review.','theme-check' ) . ' ' . __('See <a href="https://make.wordpress.org/themes/handbook/review/accessibility/">https://make.wordpress.org/themes/handbook/review/accessibility/</a>', 'theme-check' );
26
+ }
27
+
28
+ if ( ! in_array( strtolower( $tag ), $allowed_tags ) ) {
29
+ if ( in_array( strtolower( $tag ), $deprecated_tags ) ) {
30
+ $this->error[] = '<span class="tc-lead tc-warning">'. __('WARNING','theme-check'). '</span>: ' . sprintf( __('The tag %s has been deprecated, please remove it from your style.css header.', 'theme-check'), '<strong>' . $tag . '</strong>' );
31
+ } else {
32
+ $this->error[] = '<span class="tc-lead tc-warning">'. __('WARNING','theme-check'). '</span>: ' . sprintf( __('Found wrong tag, remove %s from your style.css header.', 'theme-check'), '<strong>' . $tag . '</strong>' );
33
+ $ret = false;
34
+ }
35
  }
36
  }
37
+
38
  return $ret;
39
  }
40
 
41
  function getError() { return $this->error; }
42
  }
43
+ $themechecks[] = new Style_Tags;
checks/suggested.php DELETED
@@ -1,43 +0,0 @@
1
- <?php
2
- class Suggested implements themecheck {
3
- protected $error = array();
4
-
5
- function check( $php_files, $css_files, $other_files ) {
6
-
7
- $ret = true;
8
-
9
- $checks = array(
10
- '/[\s|]get_bloginfo\(\s?("|\')url("|\')\s?\)/' => 'home_url()',
11
- '/[\s|]get_bloginfo\(\s?("|\')wpurl("|\')\s?\)/' => 'site_url()',
12
- '/[\s|]get_bloginfo\(\s?("|\')stylesheet_directory("|\')\s?\)/' => 'get_stylesheet_directory_uri()',
13
- '/[\s|]get_bloginfo\(\s?("|\')template_directory("|\')\s?\)/' => 'get_template_directory_uri()',
14
- '/[\s|]get_bloginfo\(\s?("|\')template_url("|\')\s?\)/' => 'get_template_directory_uri()',
15
- '/[\s|]get_bloginfo\(\s?("|\')text_direction("|\')\s?\)/' => 'is_rtl()',
16
- '/[\s|]get_bloginfo\(\s?("|\')feed_url("|\')\s?\)/' => 'get_feed_link( \'feed\' ) (where feed is rss, rss2, atom)',
17
- '/[\s|]bloginfo\(\s?("|\')url("|\')\s?\)/' => 'echo home_url()',
18
- '/[\s|]bloginfo\(\s?("|\')wpurl("|\')\s?\)/' => 'echo site_url()',
19
- '/[\s|]bloginfo\(\s?("|\')stylesheet_directory("|\')\s?\)/' => 'get_stylesheet_directory_uri()',
20
- '/[\s|]bloginfo\(\s?("|\')template_directory("|\')\s?\)/' => 'get_template_directory_uri()',
21
- '/[\s|]bloginfo\(\s?("|\')template_url("|\')\s?\)/' => 'get_template_directory_uri()',
22
- '/[\s|]bloginfo\(\s?("|\')text_direction("|\')\s?\)/' => 'is_rtl()',
23
- '/[\s|]bloginfo\(\s?("|\')feed_url("|\')\s?\)/' => 'get_feed_link( \'feed\' ) (where feed is rss, rss2, atom)',
24
- );
25
-
26
- foreach ( $php_files as $php_key => $phpfile ) {
27
- foreach ( $checks as $key => $check ) {
28
- checkcount();
29
- if ( preg_match( $key, $phpfile, $matches ) ) {
30
- $filename = tc_filename( $php_key );
31
- $matches[0] = str_replace(array('"',"'"),'', $matches[0]);
32
- $error = trim( esc_html( rtrim($matches[0], '(' ) ) );
33
- $grep = tc_grep( rtrim( $matches[0], '(' ), $php_key );
34
- $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s', 'themecheck'), $error, $filename, $check, $grep);
35
- }
36
- }
37
- }
38
- return $ret;
39
- }
40
-
41
- function getError() { return $this->error; }
42
- }
43
- $themechecks[] = new Suggested;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
checks/tags.php CHANGED
@@ -10,7 +10,7 @@ class TagCheck implements themecheck {
10
  checkcount();
11
  $ret = true;
12
  if ( strpos( $php, 'the_tags' ) === false && strpos( $php, 'get_the_tag_list' ) === false && strpos( $php, 'get_the_term_list' ) === false ) {
13
- $this->error[] = __( "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to display tags. Modify it to display tags in appropriate locations.", "themecheck" );
14
  $ret = false;
15
  }
16
 
10
  checkcount();
11
  $ret = true;
12
  if ( strpos( $php, 'the_tags' ) === false && strpos( $php, 'get_the_tag_list' ) === false && strpos( $php, 'get_the_term_list' ) === false ) {
13
+ $this->error[] = "<span class='tc-lead tc-required'>" . __( 'REQUIRED', 'theme-check' ) . '</span>: '. __( "This theme doesn't seem to display tags. Modify it to display tags in appropriate locations.", "theme-check" );
14
  $ret = false;
15
  }
16
 
checks/textdomain.php CHANGED
@@ -1,71 +1,164 @@
1
  <?php
2
-
3
  class TextDomainCheck implements themecheck {
4
  protected $error = array();
5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  function check( $php_files, $css_files, $other_files ) {
7
  global $data, $themename;
 
8
  $ret = true;
9
  $error = '';
10
  checkcount();
11
- if ( $data['Name'] === 'Twenty Ten' || $data['Name'] === 'Twenty Eleven')
12
- return $ret;
13
 
14
- $checks = array(
15
- '/[\s|\(|;]_[e|_]\s?\(\s?[\'|"][^\'|"]*[\'|"]\s?\)/' => __( 'You have not included a text domain!', 'themecheck' )
16
- );
 
 
 
 
 
17
 
18
  foreach ( $php_files as $php_key => $phpfile ) {
19
- $error = '';
20
- foreach ( $checks as $key => $check ) {
21
- checkcount();
22
- if ( preg_match_all( $key, $phpfile, $matches ) || preg_match_all( '/[\s|\(]_x\s?\(\s?[\'|"][^\'|"]*[\'|"]\s?,\s?[\'|"][^\'|"]*[\'|"]\s?\)/', $phpfile, $matches )) {
23
-
24
- $filename = tc_filename( $php_key );
25
- foreach ($matches[0] as $match ) {
26
- $grep = tc_grep( ltrim( $match ), $php_key );
27
- preg_match( '/[^\s]*\s[0-9]+/', $grep, $line);
28
- $error .= ( !strpos( $error, $line[0] ) ) ? $grep : '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  }
30
- $this->error[] = sprintf( __( '<span class=\'tc-lead tc-recommended\'>RECOMMENDED</span>: Text domain problems in <strong>%1$s</strong>. %2$s %3$s ', 'themecheck' ), $filename, $check, $error );
31
  }
32
  }
33
  }
34
 
35
- $checks = array(
36
- '/[\s|\(]_[e|_]\s?\([^,|;]*\s?,\s?[\'|"]([^\'|"]*)[\'|"]\s?\)/' => sprintf(__('Text domain should match theme slug: <strong>%1$s</strong>', 'themecheck'), $themename ),
37
- '/[\s|\(]_x\s?\([^,]*\s?,\s[^\'|"]*[\'|"][^\'|"]*[\'|"],\s?[\'|"]([^\'|"]*)[\'|"]\s?\)/' => sprintf(__('Text domain should match theme slug: <strong>%1$s</strong>', 'themecheck'), $themename )
38
- );
39
- foreach ( $php_files as $php_key => $phpfile ) {
40
- foreach ( $checks as $key => $check ) {
41
- checkcount();
42
- if ( preg_match_all( $key, $phpfile, $matches ) ) {
43
- foreach ($matches[0] as $count => $domaincheck) {
44
- if ( preg_match( '/[\s|\(]_[e|_]\s?\(\s?[\'|"][^\'|"]*[\'|"]\s?\)/', $domaincheck ) )
45
- unset( $matches[1][$count] ); //filter out false positives
46
- }
47
- $filename = tc_filename( $php_key );
48
- $count = 0;
49
- while ( isset( $matches[1][$count] ) ) {
50
- if ( $matches[1][$count] !== $themename ) {
51
- $error = tc_grep( $matches[0][$count], $php_key );
52
- if ( $matches[1][$count] === 'twentyten' || $matches[1][$count] === 'twentyeleven' ):
53
- $this->error[] = sprintf(__( '<span class=\'tc-lead tc-recommended\'>RECOMMENDED</span>: Text domain problems in <strong>%1$s</strong>. The twentyten text domain is being used!%2$s', 'themecheck' ), $filename, $error );
54
- else:
55
- if ( defined( 'TC_TEST' ) && strpos( strtolower( $themename ), $matches[1][$count] ) === false ) {
56
- $error = tc_grep( $matches[0][$count], $php_key );
57
- $this->error[] = sprintf( __( '<span class=\'tc-lead tc-recommended\'>RECOMMENDED</span>: Text domain problems in <strong>%1$s</strong>. %2$s You are using: <strong>%3s</strong>%4$s', 'themecheck' ), $filename, $check, $matches[1][$count], $error );
58
- }
59
- endif;
60
- }
61
- $count++;
62
- } //end while
63
- }
64
  }
65
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  return $ret;
67
  }
68
 
69
  function getError() { return $this->error; }
70
  }
71
- $themechecks[] = new TextDomainCheck;
1
  <?php
 
2
  class TextDomainCheck implements themecheck {
3
  protected $error = array();
4
 
5
+ // rules come from WordPress core tool makepot.php, modified by me to have domain info
6
+ var $rules = array(
7
+ '__' => array('string', 'domain'),
8
+ '_e' => array('string', 'domain'),
9
+ '_c' => array('string', 'domain'),
10
+ '_n' => array('singular', 'plural', 'domain'),
11
+ '_n_noop' => array('singular', 'plural', 'domain'),
12
+ '_nc' => array('singular', 'plural', 'domain'),
13
+ '__ngettext' => array('singular', 'plural', 'domain'),
14
+ '__ngettext_noop' => array('singular', 'plural', 'domain'),
15
+ '_x' => array('string', 'context', 'domain'),
16
+ '_ex' => array('string', 'context', 'domain'),
17
+ '_nx' => array('singular', 'plural', 'context', 'domain'),
18
+ '_nx_noop' => array('singular', 'plural', 'context', 'domain'),
19
+ '_n_js' => array('singular', 'plural', 'domain'),
20
+ '_nx_js' => array('singular', 'plural', 'context', 'domain'),
21
+ 'esc_attr__' => array('string', 'domain'),
22
+ 'esc_html__' => array('string', 'domain'),
23
+ 'esc_attr_e' => array('string', 'domain'),
24
+ 'esc_html_e' => array('string', 'domain'),
25
+ 'esc_attr_x' => array('string', 'context', 'domain'),
26
+ 'esc_html_x' => array('string', 'context', 'domain'),
27
+ 'comments_number_link' => array('string', 'singular', 'plural', 'domain'),
28
+ );
29
+
30
+ // core names their themes differently
31
+ var $exceptions = array( 'twentyten', 'twentyeleven', 'twentytwelve', 'twentythirteen', 'twentyfourteen', 'twentyfifteen', 'twentysixteen', 'twentyseventeen', 'twentyeighteen', 'twentynineteen', 'twentytwenty' );
32
+
33
  function check( $php_files, $css_files, $other_files ) {
34
  global $data, $themename;
35
+
36
  $ret = true;
37
  $error = '';
38
  checkcount();
 
 
39
 
40
+ // make sure the tokenizer is available
41
+ if ( !function_exists( 'token_get_all' ) ) {
42
+ return true;
43
+ }
44
+
45
+ $funcs = array_keys($this->rules);
46
+
47
+ $domains = array();
48
 
49
  foreach ( $php_files as $php_key => $phpfile ) {
50
+ $error='';
51
+
52
+ // tokenize the file
53
+ $tokens = token_get_all($phpfile);
54
+
55
+ $in_func = false;
56
+ $args_started = false;
57
+ $parens_balance = 0;
58
+ $found_domain = false;
59
+
60
+ foreach($tokens as $token) {
61
+ $string_success = false;
62
+
63
+ if (is_array($token)) {
64
+ list($id, $text) = $token;
65
+ if (T_STRING == $id && in_array($text, $funcs)) {
66
+ $in_func = true;
67
+ $func = $text;
68
+ $parens_balance = 0;
69
+ $args_started = false;
70
+ $found_domain = false;
71
+ } elseif (T_CONSTANT_ENCAPSED_STRING == $id) {
72
+ if ($in_func && $args_started) {
73
+ if (! isset( $this->rules[$func][$args_count] ) ) {
74
+ // avoid a warning when too many arguments are in a function, cause a fail case
75
+ $new_args = $args;
76
+ $new_args[] = $text;
77
+ $this->error[] = '<span class="tc-lead tc-warning">' . __( 'WARNING', 'theme-check' ) . '</span>: '
78
+ . sprintf (
79
+ __( 'Found a translation function that has an incorrect number of arguments. Function %1$s, with the arguments %2$s', 'theme-check' ),
80
+ '<strong>' . $func . '</strong>',
81
+ '<strong>' . implode(', ',$new_args) . '</strong>'
82
+ );
83
+ } else if ($this->rules[$func][$args_count] == 'domain') {
84
+ // strip quotes from the domain, avoids 'domain' and "domain" not being recognized as the same
85
+ $text = str_replace(array('"', "'"), '', $text);
86
+ $domains[] = $text;
87
+ $found_domain=true;
88
+ }
89
+ if ($parens_balance == 1) {
90
+ $args_count++;
91
+ $args[] = $text;
92
+ }
93
+ }
94
+ }
95
+ $token = $text;
96
+ } elseif ('(' == $token){
97
+ if ($parens_balance == 0) {
98
+ $args=array();
99
+ $args_started = true;
100
+ $args_count = 0;
101
+ }
102
+ ++$parens_balance;
103
+ } elseif (')' == $token) {
104
+ --$parens_balance;
105
+ if ($in_func && 0 == $parens_balance) {
106
+ if (!$found_domain) {
107
+ $this->error[] = '<span class="tc-lead tc-warning">' . __( 'WARNING', 'theme-check' ) . '</span>: '
108
+ . sprintf (
109
+ __( 'Found a translation function that is missing a text-domain. Function %1$s, with the arguments %2$s', 'theme-check' ),
110
+ '<strong>' . $func . '</strong>',
111
+ '<strong>' . implode(', ',$args) . '</strong>'
112
+ );
113
+ }
114
+ $in_func = false;
115
+ $func='';
116
+ $args_started = false;
117
+ $found_domain = false;
118
  }
 
119
  }
120
  }
121
  }
122
 
123
+ $domains = array_unique($domains);
124
+ $domainlist = implode( ', ', $domains );
125
+ $domainscount = count($domains);
126
+
127
+ // ignore core themes and uploads on w.org for this one check
128
+ if ( !in_array($themename, $this->exceptions) && ! defined( 'WPORGPATH' ) ) {
129
+ $correct_domain = sanitize_title_with_dashes($data['Name']);
130
+ if ( $themename != $correct_domain ) {
131
+ $this->error[] = '<span class="tc-lead tc-warning">' . __( 'WARNING', 'theme-check' ) . '</span>: '
132
+ . sprintf ( __( "Your theme appears to be in the wrong directory for the theme name. The directory name must match the slug of the theme. This theme's correct slug and text-domain is %s.", 'theme-check' ), '<strong>' . $correct_domain . '</strong>' ).
133
+ '<br>'. __( '(If this is a child theme, you can ignore this error.)' , 'theme-check' );
134
+ } elseif ( ! in_array( $correct_domain, $domains ) ) {
135
+ $this->error[] = '<span class="tc-lead tc-required">' . __( 'REQUIRED', 'theme-check' ) . '</span>: '
136
+ . sprintf ( __( "This theme text domain does not match the theme's slug. The text domain used: %s", 'theme-check' ), '<strong>' . $domainlist . '</strong>' )
137
+ . sprintf ( __( "This theme's correct slug and text-domain is %s.", 'theme-check' ), '<strong>' . $correct_domain . '</strong>' );
138
+ $ret = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  }
140
  }
141
+
142
+ if ( $domainscount > 1 ) {
143
+ $this->error[] = '<span class="tc-lead tc-warning">' . __( 'Warning', 'theme-check' ) . '</span>: '
144
+ . __( 'More than one text-domain is being used in this theme. This means the theme will not be compatible with WordPress.org language packs.', 'theme-check' )
145
+ . '<br>'
146
+ . sprintf( __( 'The domains found are %s', 'theme-check'), '<strong>' . $domainlist . '</strong>' );
147
+ } else {
148
+ $this->error[] = '<span class="tc-lead tc-info">' . __( 'INFO', 'theme-check' ) . '</span>: '
149
+ . __( "Only one text-domain is being used in this theme. Make sure it matches the theme's slug correctly so that the theme will be compatible with WordPress.org language packs.", 'theme-check' )
150
+ . '<br>'
151
+ . sprintf( __( 'The domain found is %s', 'theme-check'), '<strong>' . $domainlist . '</strong>' );
152
+
153
+ }
154
+
155
+ if ( $domainscount > 2 ) {
156
+ $ret = false;
157
+ }
158
+
159
  return $ret;
160
  }
161
 
162
  function getError() { return $this->error; }
163
  }
164
+ $themechecks[] = new TextDomainCheck;
checks/theme_support.php DELETED
@@ -1,33 +0,0 @@
1
- <?php
2
- class Theme_Support implements themecheck {
3
- protected $error = array();
4
-
5
- function check( $php_files, $css_files, $other_files ) {
6
-
7
- $ret = true;
8
-
9
- $checks = array(
10
- // '/add_theme_support\(\s?("|\')custom-headers("|\')\s?\)/' => 'add_custom_image_header()',
11
- //s '/add_theme_support\(\s?("|\')custom-background("|\')\s?\)/' => 'add_custom_background()',
12
- );
13
-
14
- foreach ( $php_files as $php_key => $phpfile ) {
15
- foreach ( $checks as $key => $check ) {
16
- checkcount();
17
- if ( preg_match( $key, $phpfile, $matches ) ) {
18
- $filename = tc_filename( $php_key );
19
- $matches[0] = str_replace(array('"',"'"),'', $matches[0]);
20
- $error = esc_html( rtrim( $matches[0], '(' ) );
21
- $grep = tc_grep( rtrim( $matches[0], '(' ), $php_key );
22
- $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s', 'themecheck'), $error, $filename, $check, $grep );
23
- $ret = false;
24
- }
25
- }
26
-
27
- }
28
- return $ret;
29
- }
30
-
31
- function getError() { return $this->error; }
32
- }
33
- $themechecks[] = new Theme_support;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
checks/time_date.php CHANGED
@@ -19,7 +19,7 @@ class Time_Date implements themecheck {
19
  $filename = tc_filename( $php_key );
20
  $matches[0] = str_replace(array('"',"'"),'', $matches[0]);
21
  $error = trim( esc_html( rtrim( $matches[0], '(' ) ) );
22
- $this->error[] = sprintf( __( '<span class="tc-lead tc-info">INFO</span>: At least one hard coded date was found in the file <strong>%s</strong>. Consider get_option( \'date_format\' )', 'themecheck' ), $filename );
23
  }
24
  }
25
  }
19
  $filename = tc_filename( $php_key );
20
  $matches[0] = str_replace(array('"',"'"),'', $matches[0]);
21
  $error = trim( esc_html( rtrim( $matches[0], '(' ) ) );
22
+ $this->error[] = sprintf( '<span class="tc-lead tc-info">' . __( 'INFO', 'theme-check' ) . '</span>: ' . __( 'At least one hard coded date was found in the file %1$s. Consider %2$s instead.', 'theme-check' ), '<strong>' . $filename . '</strong>', "<strong>get_option( 'date_format' )</strong>" );
23
  }
24
  }
25
  }
checks/title.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Checks for the title:
4
+ * Are there <title> and </title> tags?
5
+ * Is there a call to wp_title()?
6
+ * There can't be any hardcoded text in the <title> tag.
7
+ *
8
+ * See: http://make.wordpress.org/themes/guidelines/guidelines-theme-check/
9
+ */
10
+ class Title_Checks implements themecheck {
11
+ protected $error = array();
12
+
13
+ function check( $php_files, $css_files, $other_files ) {
14
+ $ret = true;
15
+ $php = implode( ' ', $php_files );
16
+
17
+ // Look for add_theme_support( 'title-tag' ) first
18
+ $titletag = true;
19
+ if ( ! preg_match( '#add_theme_support\s?\(\s?[\'|"]title-tag#', $php ) ) {
20
+ $this->error[] = '<span class="tc-lead tc-required">'.__('REQUIRED','theme-check').'</span>: '.__('No reference to <strong>add_theme_support( "title-tag" )</strong> was found in the theme.', 'theme-check' );
21
+ $titletag = false;
22
+ $ret = false;
23
+ }
24
+
25
+ // Look for <title> and </title> tags.
26
+ checkcount();
27
+ if ( ( 0 <= strpos( $php, '<title>' ) || 0 <= strpos( $php, '</title>' ) ) && !$titletag ) {
28
+ $this->error[] = '<span class="tc-lead tc-required">' . __( 'REQUIRED', 'theme-check').'</span>: ' . __( 'The theme must not used the <strong>&lt;title&gt;</strong> tags.', 'theme-check' );
29
+ $ret = false;
30
+ }
31
+
32
+ // Check whether there is a call to wp_title()
33
+ checkcount();
34
+ if ( 0 <= strpos( $php, 'wp_title(' ) && !$titletag ) {
35
+ $this->error[] = '<span class="tc-lead tc-required">' . __( 'REQUIRED', 'theme-check').'</span>: ' . __( 'The theme must not call to <strong>wp_title()</strong>.', 'theme-check' );
36
+ $ret = false;
37
+ }
38
+
39
+ //Check whether the the <title> tag contains something besides a call to wp_title()
40
+ checkcount();
41
+
42
+ foreach ( $php_files as $file_path => $file_content ) {
43
+ // Look for anything that looks like <svg>...</svg> and exclude it (inline svg's have titles too)
44
+ $file_content = preg_replace('/<svg.*>.*<\/svg>/s', '', $file_content);
45
+
46
+ // First looks ahead to see of there's <title>...</title>
47
+ // Then performs a negative look ahead for <title> wp_title(...); </title>
48
+ if ( preg_match( '/(?=<title>(.*)<\/title>)(?!<title>\s*<\?php\s*wp_title\([^\)]*\);?\s*\?>\s*<\/title>)/s', $file_content ) ) {
49
+ $this->error[] = '<span class="tc-lead tc-required">' . __( 'REQUIRED', 'theme-check').'</span>: ' . __( 'The <strong>&lt;title&gt;</strong> tags can only contain a call to <strong>wp_title()</strong>. Use the <strong>wp_title filter</strong> to modify the output', 'theme-check' );
50
+ $ret = false;
51
+ }
52
+ }
53
+
54
+ return $ret;
55
+ }
56
+
57
+ function getError() { return $this->error; }
58
+ }
59
+
60
+ $themechecks[] = new Title_Checks;
checks/uri.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Check_URI implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ checkcount();
9
+ $ret = true;
10
+ global $data;
11
+
12
+ if ( !empty( $data['AuthorURI'] ) && !empty( $data['URI'] ) ) {
13
+
14
+ if ( strtolower( preg_replace('/https?:\/\/|www./i', '', trim( $data['URI'] , '/' ) ) ) == strtolower( preg_replace('/https?:\/\/|www./i', '', trim( $data['AuthorURI'], '/' ) ) ) ) {
15
+ $this->error[] = __('<span class="tc-lead tc-required">'.__('REQUIRED','theme-check').'</span>: '.__('Your Theme URI and Author URI should not be the same.', 'theme-check') );
16
+ $ret = false;
17
+ }
18
+
19
+ //We allow .org user profiles as Author URI, so only check the Theme URI. We also allow WordPress.com links.
20
+ if ( stripos( $data['URI'], 'wordpress.org' ) && $data[ 'AuthorName' ] <> "the WordPress team" || stripos( $data['URI'], 'w.org' ) && $data[ 'AuthorName' ] <> "the WordPress team" ) {
21
+ $this->error[] .= __('<span class="tc-lead tc-required">'.__('REQUIRED','theme-check').'</span>: '.__('Using a WordPress.org Theme URI is reserved for official themes.', 'theme-check') );
22
+ $ret = false;
23
+ }
24
+ }
25
+
26
+ return $ret;
27
+ }
28
+
29
+ function getError() { return $this->error; }
30
+ }
31
+ $themechecks[] = new Check_URI;
checks/widgets.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class WidgetsCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ $ret = true;
9
+
10
+ // combine all the php files into one string to make it easier to search
11
+ $php = implode( ' ', $php_files );
12
+ checkcount();
13
+
14
+ // no widgets registered or used...
15
+ if ( strpos( $php, 'register_sidebar' ) === false && strpos( $php, 'dynamic_sidebar' ) === false ) {
16
+ $this->error[] = "<span class='tc-lead tc-recommended'>" . __( "RECOMMENDED", 'theme-check') . '</span>: '. __( "This theme contains no sidebars/widget areas. See <a href='https://codex.wordpress.org/Widgets_API'>Widgets API</a>", "theme-check" );
17
+ $ret = true;
18
+ }
19
+
20
+ if ( strpos( $php, 'register_sidebar' ) !== false && strpos( $php, 'dynamic_sidebar' ) === false ) {
21
+ $this->error[] = "<span class='tc-lead tc-required'>" . __( "REQUIRED", 'theme-check') . '</span>: '. __( "The theme appears to use <strong>register_sidebar()</strong> but no <strong>dynamic_sidebar()</strong> was found. See: <a href='https://codex.wordpress.org/Function_Reference/dynamic_sidebar'>dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( \$index ); ?&gt;</pre>", "theme-check" );
22
+ $ret = false;
23
+ }
24
+
25
+ if ( strpos( $php, 'register_sidebar' ) === false && strpos( $php, 'dynamic_sidebar' ) !== false ) {
26
+ $this->error[] = "<span class='tc-lead tc-required'>" . __( "REQUIRED", 'theme-check') . '</span>: '. __( "The theme appears to use <strong>dynamic_sidebars()</strong> but no <strong>register_sidebar()</strong> was found. See: <a href='https://codex.wordpress.org/Function_Reference/register_sidebar'>register_sidebar</a><pre> &lt;?php register_sidebar( \$args ); ?&gt;</pre>", "theme-check" );
27
+ $ret = false;
28
+ }
29
+
30
+ /**
31
+ * There are widgets registered, is the widgets_init action present?
32
+ */
33
+ if ( strpos( $php, 'register_sidebar' ) !== false && preg_match( '/add_action\s*\(\s*("|\')widgets_init("|\')\s*,/', $php ) == false ) {
34
+ $this->error[] = "<span class='tc-lead tc-required'>" . __( "REQUIRED", 'theme-check') . '</span>: '. sprintf( __( "Sidebars need to be registered in a custom function hooked to the <strong>widgets_init</strong> action. See: %s.", "theme-check" ), '<a href="https://codex.wordpress.org/Function_Reference/register_sidebar">register_sidebar()</a>' );
35
+ $ret = false;
36
+ }
37
+ return $ret;
38
+ }
39
+
40
+ function getError() { return $this->error; }
41
+ }
42
+ $themechecks[] = new WidgetsCheck;
checks/worms.php CHANGED
@@ -6,17 +6,11 @@ class WormCheck implements themecheck {
6
  $ret = true;
7
  $php_files = array_merge( $php_files, $other_files );
8
  $checks = array(
9
- '/wshell\.php/'=> __( 'This may be a script used by hackers to get control of your server!', 'themecheck' ),
10
- '/ShellBOT/' => __( 'This may be a script used by hackers to get control of your server', 'themecheck' ),
11
- '/uname -a/' => __( 'Tells a hacker what operating system your server is running', 'themecheck' ),
12
- '/YW55cmVzdWx0cy5uZXQ=/' => __( 'base64 encoded text found in Search Engine Redirect hack <a href="http://blogbuildingu.com/wordpress/wordpress-search-engine-redirect-hack">[1]</a>', 'themecheck' ),
13
- '/\$_COOKIE\[\'yahg\'\]/' => __( 'YAHG Googlerank.info exploit code <a href="http://creativebriefing.com/wordpress-hacked-googlerankinfo/">[1]</a>', 'themecheck' ),
14
- '/ekibastos/' => __( 'Possible Ekibastos attack <a href="http://ocaoimh.ie/did-your-wordpress-site-get-hacked/">[1]</a>', 'themecheck' ),
15
- '/<!--[A-Za-z0-9]+--><\?php/' => __( 'Symptom of a link injection attack <a href="http://www.kyle-brady.com/2009/11/07/wordpress-mediatemple-and-an-injection-attack/">[1]</a>', 'themecheck' ),
16
- '/<script>\/\*(GNU GPL|LGPL)\*\/ try\{window.onload.+catch\(e\) \{\}<\/script>/' => __( 'Possible "Gumblar" JavaScript attack <a href="http://threatinfo.trendmicro.com/vinfo/articles/securityarticles.asp?xmlfile=042710-GUMBLAR.xml">[1]</a> <a href="http://justcoded.com/article/gumblar-family-virus-removal-tool/">[2]</a>', 'themecheck' ),
17
- '/php \$[a-zA-Z]*=\'as\';/' => __( 'Symptom of the "Pharma Hack" <a href="http://blog.sucuri.net/2010/07/understanding-and-cleaning-the-pharma-hack-on-wordpress.html">[1]</a>', 'themecheck' ),
18
- '/defined?\(\'wp_class_support/' => __( 'Symptom of the "Pharma Hack" <a href="http://blog.sucuri.net/2010/07/understanding-and-cleaning-the-pharma-hack-on-wordpress.html">[1]</a>', 'themecheck' ),
19
- '/AGiT3NiT3NiT3fUQKxJvI/' => __( 'Malicious footer code injection detected!', 'themecheck' )
20
  );
21
 
22
  foreach ( $php_files as $php_key => $phpfile ) {
@@ -26,7 +20,7 @@ class WormCheck implements themecheck {
26
  $filename = tc_filename( $php_key );
27
  $error = $matches[0];
28
  $grep = tc_grep( $error, $php_key );
29
- $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: <strong>%1$s</strong> %2$s%3$s', 'themecheck'), $filename, $check, $grep );
30
  $ret = false;
31
  }
32
  }
6
  $ret = true;
7
  $php_files = array_merge( $php_files, $other_files );
8
  $checks = array(
9
+ '/wshell\.php/'=> __( 'This may be a script used by hackers to get control of your server!', 'theme-check' ),
10
+ '/ShellBOT/' => __( 'This may be a script used by hackers to get control of your server', 'theme-check' ),
11
+ '/uname -a/' => __( 'Tells a hacker what operating system your server is running', 'theme-check' ),
12
+ '/php \$[a-zA-Z]*=\'as\';/' => __( 'Symptom of the "Pharma Hack" <a href="http://blog.sucuri.net/2010/07/understanding-and-cleaning-the-pharma-hack-on-wordpress.html">[1]</a>', 'theme-check' ),
13
+ '/defined?\(\'wp_class_support/' => __( 'Symptom of the "Pharma Hack" <a href="http://blog.sucuri.net/2010/07/understanding-and-cleaning-the-pharma-hack-on-wordpress.html">[1]</a>', 'theme-check' ),
 
 
 
 
 
 
14
  );
15
 
16
  foreach ( $php_files as $php_key => $phpfile ) {
20
  $filename = tc_filename( $php_key );
21
  $error = $matches[0];
22
  $grep = tc_grep( $error, $php_key );
23
+ $this->error[] = sprintf('<span class="tc-lead tc-warning">'. __( 'WARNING', 'theme-check') . '</span>: <strong>%1$s</strong> %2$s%3$s', $filename, $check, $grep );
24
  $ret = false;
25
  }
26
  }
lang/themecheck-de_DE.mo DELETED
Binary file
lang/themecheck-de_DE.po DELETED
@@ -1,364 +0,0 @@
1
- # Copyright (C) 2010 Theme-Check
2
- # This file is distributed under the same license as the Theme-Check package.
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: Theme-Check 20101228.2\n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/theme-check\n"
7
- "POT-Creation-Date: 2011-01-23 14:04:21+00:00\n"
8
- "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=UTF-8\n"
10
- "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2011-01-25 23:41+0200\n"
12
- "Last-Translator: Daniel Tara <contact@onedesigns.com>\n"
13
- "Language-Team: WPTRT <theme-reviewers@lists.wordpress.org>\n"
14
- "X-Poedit-Language: German\n"
15
- "X-Poedit-Country: GERMANY\n"
16
- "X-Poedit-SourceCharset: utf-8\n"
17
-
18
- #: main.php:66
19
- msgid "Theme Info"
20
- msgstr "Theme Info"
21
-
22
- #: main.php:67
23
- msgid "Title"
24
- msgstr "Titel"
25
-
26
- #: main.php:68
27
- msgid "Version"
28
- msgstr "Version"
29
-
30
- #: main.php:69
31
- msgid "Author"
32
- msgstr "Autor"
33
-
34
- #: main.php:70
35
- msgid "Author URI"
36
- msgstr "Autor URI"
37
-
38
- #: main.php:71
39
- msgid "Theme URI"
40
- msgstr "Theme URI"
41
-
42
- #: main.php:72
43
- msgid "License"
44
- msgstr "Lizenz"
45
-
46
- #: main.php:73
47
- msgid "LicenseURI"
48
- msgstr "LizenzURI"
49
-
50
- #: main.php:75
51
- msgid "Tags"
52
- msgstr "Schlagwörter"
53
-
54
- #: main.php:76
55
- msgid "Description"
56
- msgstr "Beschreibung"
57
-
58
- #: main.php:79
59
- msgid "This is a child theme. The parent theme is"
60
- msgstr "Das ist ein Child Theme. Das Parent Theme ist"
61
-
62
- #: main.php:91
63
- msgid "One or more errors were found for "
64
- msgstr "Ein oder mehrere Fehler wurden gefunden für "
65
-
66
- #: main.php:93
67
- msgid " passed the tests"
68
- msgstr "hat die Teste durchgelaufen"
69
-
70
- #: main.php:96
71
- msgid "<strong>WP_DEBUG is not enabled!</strong> Please test your theme with <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug enabled</a> before you upload!</div>"
72
- msgstr "<strong>WP_DEBUG ist nicht aktiv!</strong> Bitte überprüf dein Theme mit <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug aktiv</a> bevor du auflädst!</div>"
73
-
74
- #: main.php:161
75
- msgid "Check it!"
76
- msgstr "Überprüf es!"
77
-
78
- #: checkbase.php:87
79
- #: checkbase.php:106
80
- msgid "<pre class='tc-grep'>Line "
81
- msgstr "<pre class='tc-grep'>Linie "
82
-
83
- #: theme-check.php:23
84
- msgid "You do not have sufficient permissions to access this page."
85
- msgstr "Du hast nicht die nötigen Rechte, auf diese Seite zurückzugreifen."
86
-
87
- #: checks/tags.php:13
88
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to display tags. Modify it to display tags in appropriate locations."
89
- msgstr "<span class='tc-lead tc-required'>ERFORDERLICH</span>: Dieses Theme scheint nicht, Schlagwörter anzuzeigen. Ändere es, um Schlagwörter in den passenden Positionen anzuzeigen."
90
-
91
- #: checks/gravatar.php:15
92
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to support the standard avatar functions. Use <strong>get_avatar</strong> or <strong>wp_list_comments</strong> to add this support."
93
- msgstr "<span class='tc-lead tc-required'>ERFORDERLICH</span>: Dieses Thema scheint nicht, die standard Avatar Funktionen zu unterstützen. Verwende <strong>get_avatar</strong> oder <strong>wp_list_comments</strong>, um diese Unterstützung hinzufügen."
94
-
95
- #: checks/commpage.php:15
96
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have comment pagination code in it. Use <strong>paginate_comments_links()</strong> or <strong>next_comments_link()</strong> and <strong>previous_comments_link()</strong> to add comment pagination."
97
- msgstr "<span class='tc-lead tc-required'>ERFORDERLICH</span>: Das Theme hat keine Paginierungcode für Kommentare. Benutze <strong>paginate_comments_links()</strong> oder <strong>next_comments_link()</strong> und <strong>previous_comments_link()</strong> um Komentarepaginierungen hinzufügen."
98
-
99
- #: checks/postthumb.php:15
100
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>the_post_thumbnail()</strong> was found in the theme. It is recommended that the theme implement this functionality instead of using custom fields for thumbnails."
101
- msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: Kein Hinweis auf <strong>the_post_thumbnail()</strong> wurde im Theme gefunden. Es ist empfohlen, dass das Theme diese Funktionalität einführt, anstatt benutzerdefinierte Felder für Thumbnails zu benutzen."
102
-
103
- #: checks/postthumb.php:19
104
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to post-thumbnails was found in the theme. If the theme has a thumbnail like functionality, it should be implemented with <strong>add_theme_support( 'post-thumbnails' )</strong>in the functions.php file."
105
- msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: Kein Hinweis auf post-thumbnails wurde im Theme gefunden. Wenn das Thema Thumbnail Funktionalität hat, soltle es mit <strong>add_theme_support(' post-thumbnails' )</strong> in die functions.php Datei eingeführt werden."
106
-
107
- #: checks/navmenu.php:14
108
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to nav_menu's was found in the theme. Note that if your theme has a menu bar, it is required to use the WordPress nav_menu functionality for it."
109
- msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: Kein Hinweis auf nav_menu' s wurde im Theme gefunden. Merke dass, wenn dein Thema einen Menü hat, es angefordert ist, die WordPress nav_menu Funktionalität dafür zu verwenden."
110
-
111
- #: checks/directories.php:27
112
- msgid "Please remove any extraneous directories like .git or .svn from the ZIP file before uploading it."
113
- msgstr "Entferne bitte alle äußeren Ordner wie .git oder .svn von der ZIP Datei, bevor es aufladen."
114
-
115
- #: checks/customs.php:14
116
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_image_header</strong> was found in the theme. It is recommended that the theme implement this functionality if using an image for the header."
117
- msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: Kein Hinweis auf <strong>add_custom_image_header</strong> wurde im Theme gefunden. Es ist empfohlen, dass das Theme diese Funktionalität einführt, wenn ein Bild für den Header verwendet wird."
118
-
119
- #: checks/customs.php:18
120
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_background()</strong> was found in the theme. If the theme uses background images or solid colors for the background, then it is recommended that the theme implement this functionality."
121
- msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: Kein Hinweis auf <strong>add_custom_background()</strong> wurde im Theme gefunden. Wenn das Thema Hintergründe oder feste Farben für den Hintergrund verwendet, ist es empfohlen, dass das Theme diese Funktionalität einführt."
122
-
123
- #: checks/filenames.php:21
124
- msgid "Windows thumbnail store"
125
- msgstr "Windows thumbnail store"
126
-
127
- #: checks/filenames.php:22
128
- msgid "windows system file"
129
- msgstr "Windows System Datei"
130
-
131
- #: checks/filenames.php:23
132
- msgid "Komodo Project File"
133
- msgstr "Komodo Projekt Datei"
134
-
135
- #: checks/filenames.php:24
136
- msgid "Hidden File"
137
- msgstr "Versteckte Datei"
138
-
139
- #: checks/filenames.php:25
140
- msgid "PHP server settings file"
141
- msgstr "PHP Server Einstellungen Datei"
142
-
143
- #: checks/filenames.php:26
144
- msgid "Dreamweaver project file"
145
- msgstr "Dreamweaver Projekt Datei"
146
-
147
- #: checks/filenames.php:27
148
- msgid "PHP error log"
149
- msgstr "PHP Fehler Protokoll"
150
-
151
- #: checks/filenames.php:28
152
- msgid "Server settings file"
153
- msgstr "Server Einstellungen Datei"
154
-
155
- #: checks/filenames.php:32
156
- msgid "Please see <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> for more information."
157
- msgstr "Bitte siehe <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> für mehrere Informationen."
158
-
159
- #: checks/style_needed.php:11
160
- msgid "<strong>Theme name:</strong> is missing from your style.css header."
161
- msgstr "<strong>Theme name:</strong> fehlt von dein style.css Überschrift."
162
-
163
- #: checks/style_needed.php:12
164
- msgid "<strong>Description:</strong> is missing from your style.css header."
165
- msgstr "<strong>Description:</strong> fehlt von dein style.css Überschrift."
166
-
167
- #: checks/style_needed.php:13
168
- msgid "<strong>Author:</strong> is missing from your style.css header."
169
- msgstr "<strong>Author:</strong> fehlt von dein style.css Überschrift."
170
-
171
- #: checks/style_needed.php:14
172
- msgid "<strong>Version:</strong> is missing from your style.css header."
173
- msgstr "<strong>Version:</strong> fehlt von dein style.css Überschrift."
174
-
175
- #: checks/style_needed.php:15
176
- msgid "<strong>License:</strong> is missing from your style.css header."
177
- msgstr "<strong>License:</strong> fehlt von dein style.css Überschrift."
178
-
179
- #: checks/style_needed.php:16
180
- msgid "<strong>License URI:</strong> is missing from your style.css header."
181
- msgstr "<strong>License URI:</strong> fehlt von dein style.css Überschrift."
182
-
183
- #: checks/style_needed.php:17
184
- msgid "<strong>.alignleft</strong> css class is needed in your theme css."
185
- msgstr "<strong>.alignleft</strong> CSS Klasse ist gebraucht in dein theme's CSS."
186
-
187
- #: checks/style_needed.php:18
188
- msgid "<strong>.alignright</strong> css class is needed in your theme css."
189
- msgstr "<strong>.alignright</strong> CSS Klasse ist gebraucht in dein theme's CSS."
190
-
191
- #: checks/style_needed.php:19
192
- msgid "<strong>.aligncenter</strong> css class is needed in your theme css."
193
- msgstr "<strong>.aligncenter</strong> CSS Klasse ist gebraucht in dein theme's CSS."
194
-
195
- #: checks/style_needed.php:20
196
- msgid "<strong>.wp-caption</strong> css class is needed in your theme css."
197
- msgstr "<strong>.wp-caption</strong> CSS Klasse ist gebraucht in dein theme's CSS."
198
-
199
- #: checks/style_needed.php:21
200
- msgid "<strong>.wp-caption-text</strong> css class is needed in your theme css."
201
- msgstr "<strong>.wp-caption-text</strong> CSS Klasse ist gebraucht in dein theme's CSS."
202
-
203
- #: checks/style_needed.php:22
204
- msgid "<strong>.gallery-caption</strong> css class is needed in your theme css."
205
- msgstr "<strong>.gallery-caption</strong> CSS Klasse ist gebraucht in dein theme's CSS."
206
-
207
- #: checks/style_tags.php:20
208
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: <strong>Tags:</strong> is either empty or missing in style.css header."
209
- msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: <strong>Tags:</strong> ist entweder leer oder fehlt in style.css Überschrift."
210
-
211
- #: checks/searchform.php:14
212
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: Please use <strong>get_search_form()</strong> instead of including searchform.php directly."
213
- msgstr "<span class='tc-lead tc-required'>ERFORDERLICH</span>: Bitte benutze <strong>get_search_form()</strong> anstatt searchform.php direkt einschließen."
214
-
215
- #: checks/worms.php:9
216
- msgid "<strong>PHP shell was found!</strong>"
217
- msgstr "<strong>PHP shell wurde gefunded!</strong>"
218
-
219
- #: checks/include.php:10
220
- msgid "The theme appears to use include or require. If these are being used to include separate sections of a template from independent files, then <strong>get_template_part()</strong> should be used instead."
221
- msgstr "Das Theme scheint include oder require zu benutzen. Wenn diese benutzt sind, um unterschiedliche Abschnitte eines Templates von selbständige Dateien einzuschließen, dann <strong>get_template_part()</strong> sollte anstatt benutzt werden."
222
-
223
- #: checks/malware.php:9
224
- msgid "possible file operations"
225
- msgstr "mögliche Datei Operationen"
226
-
227
- #: checks/postsnav.php:16
228
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have post pagination code in it. Use <strong>posts_nav_link()</strong> or <strong>paginate_links()</strong> or <strong>next_posts_link()</strong> and <strong>previous_posts_link()</strong> to add post pagination."
229
- msgstr "<span class='tc-lead tc-required'>ERFORDERLICH</span>: Das Theme hat keine Paginierungcode für Einträge. Benutze <strong>posts_nav_link()</strong> oder <strong>paginate_links()</strong> oder <strong>next_posts_link()</strong> und <strong>previous_posts_link()</strong> um Einträgepaginierungen hinzufügen."
230
-
231
- #: checks/admin_menu.php:13
232
- msgid "User levels were deprecated in <strong>2.0</strong>. Please see <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
233
- msgstr "Benutzerniveaus wurden missbilligt in <strong>2.0</strong>. Bitte siehe <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
234
-
235
- #: checks/admin_menu.php:33
236
- msgid "Themes should use <strong>add_theme_page()</strong> for adding admin pages."
237
- msgstr "Themes sollen <strong>add_theme_page()</strong> benutzen, um Admin Seiten hinzufügen."
238
-
239
- #: checks/artisteer.php:23
240
- msgid "This theme appears to have been auto-generated. Generated themes are not allowed in the themes directory."
241
- msgstr "Dieses Theme scheint Selbst-erzeugt worden zu sein. Erzeugte Themes sind im Themesverzeichnis nicht erlaubt."
242
-
243
- #: checks/editorstyle.php:13
244
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_editor_style()</strong> was found in the theme. It is recommended that the theme implement editor styling, so as to make the editor content match the resulting post output in the theme, for a better user experience."
245
- msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: Kein Hinweis auf <strong>add_editor_style()</strong> wurde im Theme gefunden. Es ist empfohlen, dass das Theme Editor Stilisierung einführt, damit derEditorinhalt den resultierenden Eintragausgabeinhalt übereinstimmt, für eine bessere Benutzererfahrung."
246
-
247
- #: checks/content-width.php:14
248
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: No content width has been defined. Example: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
249
- msgstr "<span class='tc-lead tc-required'>ERFORDERLICH</span>: Einhalt Breite wurde nicht definiert. Beispiel: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
250
-
251
- #: checks/badthings.php:9
252
- msgid "eval() is not allowed."
253
- msgstr "eval() ist nicht erlaubt."
254
-
255
- #: checks/badthings.php:10
256
- msgid "PHP sytem calls should be disabled by server admins anyway!"
257
- msgstr "PHP Systemaufrufe sollten jedenfalls vom Serveradmin deaktiviert werden!"
258
-
259
- #: checks/badthings.php:11
260
- msgid "Themes should not change server PHP settings"
261
- msgstr "Themes sollen PHP server einstellungen nicht ändern."
262
-
263
- #: checks/badthings.php:12
264
- msgid "base64_decode() is not allowed"
265
- msgstr "base64_decode() ist nicht erlaubt."
266
-
267
- #: checks/badthings.php:13
268
- msgid "base64_encode() is not allowed"
269
- msgstr "base64_encode() ist nicht erlaubt."
270
-
271
- #: checks/badthings.php:14
272
- msgid "uudecode() is not allowed"
273
- msgstr "uudecode() ist nicht erlaubt."
274
-
275
- #: checks/badthings.php:15
276
- msgid "str_rot13() is not allowed"
277
- msgstr "str_rot13() ist nicht erlaubt."
278
-
279
- #: checks/badthings.php:16
280
- #: checks/badthings.php:37
281
- msgid "Google search code detected"
282
- msgstr "Google Suche Code entdeckt"
283
-
284
- #: checks/badthings.php:17
285
- #: checks/badthings.php:38
286
- msgid "Googe advertising code detected"
287
- msgstr "Google Werbung Code entdeckt"
288
-
289
- #: checks/basic.php:14
290
- msgid "See: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
291
- msgstr "Siehe: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
292
-
293
- #: checks/basic.php:15
294
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
295
- msgstr "Siehe: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
296
-
297
- #: checks/basic.php:16
298
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
299
- msgstr "Siehe: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
300
-
301
- #: checks/basic.php:17
302
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
303
- msgstr "Siehe: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
304
-
305
- #: checks/basic.php:18
306
- msgid "There must be a charset defined in the Content-Type or the meta charset tag in the head."
307
- msgstr "Ein charset muss in den Content-Type oder den meta charset tag im head definiert werden."
308
-
309
- #: checks/basic.php:19
310
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
311
- msgstr "Siehe: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
312
-
313
- #: checks/basic.php:20
314
- msgid "See: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
315
- msgstr "Siehe: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
316
-
317
- #: checks/basic.php:21
318
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
319
- msgstr "Siehe: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
320
-
321
- #: checks/basic.php:22
322
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
323
- msgstr "Siehe: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
324
-
325
- #: checks/basic.php:23
326
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
327
- msgstr "Siehe: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
328
-
329
- #: checks/basic.php:24
330
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
331
- msgstr "Siehe: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
332
-
333
- #: checks/basic.php:25
334
- msgid "See: <a href=\"http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
335
- msgstr "Siehe: <a href=\"http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
336
-
337
- #: checks/basic.php:26
338
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
339
- msgstr "Siehe: <a href=\"http://codex.wordpress.org/Template_Tags/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
340
-
341
- #: checks/basic.php:27
342
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
343
- msgstr "Siehe: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
344
-
345
- #. Plugin Name of the plugin/theme
346
- msgid "Theme-Check"
347
- msgstr "Theme-Check"
348
-
349
- #. Plugin URI of the plugin/theme
350
- msgid "http://pross.org.uk/plugins"
351
- msgstr "http://pross.org.uk/plugins"
352
-
353
- #. Description of the plugin/theme
354
- msgid "A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!"
355
- msgstr "Eine einfache und leichte Art, dein Theme auf alle letzten WordPress Standards und Praxis zu überprüfen. Ein großes Theme-Entwicklungswerkzeug!"
356
-
357
- #. Author of the plugin/theme
358
- msgid "Pross"
359
- msgstr "Pross"
360
-
361
- #. Author URI of the plugin/theme
362
- msgid "http://pross.org.uk"
363
- msgstr "http://pross.org.uk"
364
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lang/themecheck-ja.mo DELETED
Binary file
lang/themecheck-ja.po DELETED
@@ -1,719 +0,0 @@
1
- # Copyright (C) 2012
2
- # This file is distributed under the same license as the package.
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: theme check ja\n"
6
- "Report-Msgid-Bugs-To: \n"
7
- "POT-Creation-Date: 2012-02-19 18:15+0900\n"
8
- "PO-Revision-Date: 2012-02-19 21:36+0900\n"
9
- "Last-Translator: JOTAKI, Taisuke <tekapo@gmail.com>\n"
10
- "Language-Team: wp ja <tekapo@gmail.com>\n"
11
- "Language: \n"
12
- "MIME-Version: 1.0\n"
13
- "Content-Type: text/plain; charset=UTF-8\n"
14
- "Content-Transfer-Encoding: 8bit\n"
15
- "X-Poedit-Language: Japanese\n"
16
- "X-Poedit-Country: JAPAN\n"
17
- "X-Poedit-SourceCharset: utf-8\n"
18
- "X-Poedit-KeywordsList: __;_e\n"
19
-
20
- #: theme-check/theme-check.php:34
21
- msgid "You do not have sufficient permissions to access this page."
22
- msgstr "このページにアクセスするための十分なアクセス権がありません。"
23
-
24
- #: theme-check/main.php:12
25
- #, php-format
26
- msgid "Parent theme <strong>%1$s</strong> not found! You have to have parent AND child-theme installed!"
27
- msgstr "親テーマ <strong>%1$s</strong> が見つかりませんでした! 親テーマと子テーマをインストールしてください!"
28
-
29
- #: theme-check/main.php:39
30
- msgid "Theme Info"
31
- msgstr "テーマ情報"
32
-
33
- #: theme-check/main.php:50
34
- msgid "Title"
35
- msgstr "タイトル"
36
-
37
- #: theme-check/main.php:51
38
- msgid "Version"
39
- msgstr "バージョン"
40
-
41
- #: theme-check/main.php:52
42
- msgid "Author"
43
- msgstr "作成者"
44
-
45
- #: theme-check/main.php:53
46
- msgid "Author URI"
47
- msgstr "作成者の URI"
48
-
49
- #: theme-check/main.php:54
50
- msgid "Theme URI"
51
- msgstr "テーマの URI"
52
-
53
- #: theme-check/main.php:55
54
- msgid "License"
55
- msgstr "ライセンス"
56
-
57
- #: theme-check/main.php:56
58
- msgid "LicenseURI"
59
- msgstr "ライセンスの URI"
60
-
61
- #: theme-check/main.php:57
62
- msgid "Tags"
63
- msgstr "タグ"
64
-
65
- #: theme-check/main.php:58
66
- msgid "Description"
67
- msgstr "説明"
68
-
69
- #: theme-check/main.php:62
70
- #, php-format
71
- msgid "This child theme requires at least version <strong>%1$s</strong> of theme <strong>%2$s</strong> to be installed. You only have <strong>%3$s</strong> please update the parent theme."
72
- msgstr "この子テーマは、親テーマ <strong>%2$s</strong> のバージョン <strong>%1$s</strong> 以上を必要とします。現在の親テーマのバージョンは <strong>%3$s</strong> なので、アップデートしてください。"
73
-
74
- #: theme-check/main.php:64
75
- #, php-format
76
- msgid "This is a child theme. The parent theme is: <strong>%1$s</strong>. These files have been included automatically!"
77
- msgstr "これは子テーマです。親テーマは <strong>%1$s</strong> です。親テーマのファイルは自動的にインクルードされます!"
78
-
79
- #: theme-check/main.php:66
80
- msgid "Child theme does not have the <strong>Template Version</strong> tag in style.css."
81
- msgstr "子テーマの style.css に<strong>Template Version</strong> タグがありません。"
82
-
83
- #: theme-check/main.php:68
84
- #, php-format
85
- msgid "Child theme is only tested up to version %1$s of %2$s breakage may occur! %3$s installed version is %4$s"
86
- msgstr "子テーマは %2$s のバージョン %1$s までしかテストされていないので、表示がおかしくなるかもしれません。インストールされている %3$s のバージョンは %4$s です。"
87
-
88
- #: theme-check/main.php:75
89
- #, php-format
90
- msgid " Running <strong>%1$s</strong> tests against <strong>%2$s</strong> using Guidelines Version: <strong>%3$s</strong> Plugin revision: <strong>%4$s</strong>"
91
- msgstr "ガイドラインバージョン: <strong>%3$s</strong>、プラグインリビジョン: <strong>%4$s</strong> を利用し、<strong>%2$s</strong> に対して <strong>%1$s</strong> 項目のテストを実施しました。"
92
-
93
- #: theme-check/main.php:81
94
- #, php-format
95
- msgid "One or more errors were found for %1$s."
96
- msgstr "%1$s にて、エラーが見つかりました。"
97
-
98
- #: theme-check/main.php:83
99
- #, php-format
100
- msgid "%1$s passed the tests"
101
- msgstr "%1$s はテストをパスしました"
102
-
103
- #: theme-check/main.php:86
104
- msgid "<strong>WP_DEBUG is not enabled!</strong> Please test your theme with <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug enabled</a> before you upload!</div>"
105
- msgstr "<strong>WP_DEBUG が無効になっています!</strong> テーマをアップロードする前に、<a href=\"http://wpdocs.sourceforge.jp/wp-config.php_%E3%81%AE%E7%B7%A8%E9%9B%86\">デバッグモードを有効にして</a>テーマをテストしてください。</div>"
106
-
107
- #: theme-check/main.php:96
108
- msgid "<h2>About</h2>"
109
- msgstr "<h2>このプラグインについて</h2>"
110
-
111
- #: theme-check/main.php:97
112
- msgid "<p>The theme check plugin is an easy way to test your theme and make sure it's up to spec with the latest theme review standards.<br />"
113
- msgstr "<p>テーマチェックプラグインは、テーマをテストし、最新のテーマレビュー基準の仕様に従っていることを簡単に確認することができるプラグインです。<br />"
114
-
115
- #: theme-check/main.php:98
116
- msgid "With it, you can run all the same automated testing tools on your theme that WordPress.org uses for theme submissions.</p>"
117
- msgstr "このプラグインにより、WordPress.org がテーマの受付時に使用する自動化されたテストツールとまったく同じテストを自分のテーマに対して行うことができます。</p>"
118
-
119
- #: theme-check/main.php:99
120
- msgid "<h2>Contact</h2>"
121
- msgstr "<h2>コンタクト</h2>"
122
-
123
- #: theme-check/main.php:100
124
- msgid "<p>Theme-Check is maintained by <a href=\"http://profiles.wordpress.org/users/pross/\">Pross</a> and <a href=\"http://profiles.wordpress.org/users/otto42/\">Otto42</a><br />"
125
- msgstr "<p>Theme-Check は <a href=\"http://profiles.wordpress.org/users/pross/\">Pross</a> と <a href=\"http://profiles.wordpress.org/users/otto42/\">Otto42</a> によってメンテナンスされています。<br />"
126
-
127
- #: theme-check/main.php:101
128
- msgid "If you have found a bug or would like to make a suggestion or contribution why not join the <a href=\"http://wordpress.org/extend/themes/contact/\">theme-reviewers mailing list</a><br />"
129
- msgstr "もしバグを見つけたり、もしくは提案や貢献をしてくれるのなら、 <a href=\"http://wordpress.org/extend/themes/contact/\">theme-reviewers メーリングリスト</a>に参加するか、<br />"
130
-
131
- #: theme-check/main.php:102
132
- msgid "or leave a post on the <a href=\"http://wordpress.org/tags/theme-check?forum_id=10\">WordPress forums</a>.<br /></p>"
133
- msgstr "<a href=\"http://wordpress.org/tags/theme-check?forum_id=10\">WordPress フォーラム</a>に投稿してください。<br /></p>"
134
-
135
- #: theme-check/main.php:104
136
- msgid "<h2>Contributors</h2>"
137
- msgstr "<h2>貢献者</h2>"
138
-
139
- #: theme-check/main.php:105
140
- msgid "<h3>localization</h3>"
141
- msgstr "<h3>ローカライズ</h3>"
142
-
143
- #: theme-check/main.php:110
144
- msgid "<h3>Testers</h3>"
145
- msgstr "<h3>テスター</h3>"
146
-
147
- #: theme-check/main.php:111
148
- msgid "<p><a href=\"http://make.wordpress.org/themes/\">The WordPress Theme Review Team</a></p>"
149
- msgstr "<p><a href=\"http://make.wordpress.org/themes/\">WordPress テーマレビューチーム</a></p>"
150
-
151
- #: theme-check/main.php:115
152
- msgid "<div class=\"tc-success\"><p>Now your theme has passed the basic tests you need to check it properly using the test data before you upload to the WordPress Themes Directory.</p>"
153
- msgstr "<div class=\"tc-success\"><p>このテーマは基本的なテストをパスしました。WordPress テーマディレクトリにアップロードする前にテストデータを使って適切にチェックする必要があります。</p>"
154
-
155
- #: theme-check/main.php:117
156
- msgid "<p>Make sure to review the guidelines at <a href=\"http://codex.wordpress.org/Theme_Review\">Theme Review</a> before uploading a Theme.</p>"
157
- msgstr "<p>テーマをアップロードする前に、<a href=\"http://wpdocs.sourceforge.jp/Theme_Review\">テーマレビュー</a>のガイドラインを確実に復習してください。</p>"
158
-
159
- #: theme-check/main.php:118
160
- msgid "<h3>Codex Links</h3>"
161
- msgstr "<h3>Codex のリンク</h3>"
162
-
163
- #: theme-check/main.php:120
164
- msgid "<li><a href=\"http://codex.wordpress.org/Theme_Development\">Theme Development</a></li>"
165
- msgstr "<li><a href=\"http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%BC%E3%83%9E%E3%81%AE%E4%BD%9C%E6%88%90\">テーマの作成</a></li>"
166
-
167
- #: theme-check/main.php:121
168
- msgid "<li><a href=\"http://wordpress.org/support/forum/5\">Themes and Templates forum</a></li>"
169
- msgstr "<li><a href=\"http://wordpress.org/support/forum/5\">テーマとテンプレートのフォーラム (英語)</a> (<a href=\"http://ja.forums.wordpress.org/forum/4\">日本語</a>)</li>"
170
-
171
- #: theme-check/main.php:122
172
- msgid "<li><a href=\"http://codex.wordpress.org/Theme_Unit_Test\">Theme Unit Tests</a></li>"
173
- msgstr "<li><a href=\"http://wpdocs.sourceforge.jp/Theme_Unit_Test\">テーマユニットテスト</a></li>"
174
-
175
- #: theme-check/main.php:140
176
- msgid "Check it!"
177
- msgstr "テスト実行 !"
178
-
179
- #: theme-check/main.php:141
180
- msgid "Output in Trac format."
181
- msgstr "Trac フォーマットでの出力。"
182
-
183
- #: theme-check/main.php:142
184
- msgid "Suppress INFO."
185
- msgstr "情報 を表示させない。"
186
-
187
- #: theme-check/checkbase.php:91
188
- #: theme-check/checkbase.php:109
189
- msgid "<pre class='tc-grep'>Line "
190
- msgstr "<pre class='tc-grep'>行 "
191
-
192
- #: theme-check/checkbase.php:250
193
- msgid "Visit author homepage"
194
- msgstr "作成者のホームページを表示"
195
-
196
- #: theme-check/checkbase.php:253
197
- msgid "Anonymous"
198
- msgstr "匿名"
199
-
200
- #: theme-check/checks/navmenu.php:14
201
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to nav_menu's was found in the theme. Note that if your theme has a menu bar, it is required to use the WordPress nav_menu functionality for it."
202
- msgstr "<span class='tc-lead tc-recommended'>推奨</span>: このテーマ内に nav_menu への参照が見つかりませんでした。テーマにメニューバーがあるのなら、そのための WordPress の nav_menu 機能を使用してください。"
203
-
204
- #: theme-check/checks/style_tags.php:16
205
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: <strong>Tags:</strong> is either empty or missing in style.css header."
206
- msgstr "<span class='tc-lead tc-recommended'>推奨</span>: style.css のヘッダーの <strong>Tags:</strong> が空か存在していません。"
207
-
208
- #: theme-check/checks/style_tags.php:28
209
- #, php-format
210
- msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: Found wrong tag, remove <strong>%1$s</strong> from your style.css header."
211
- msgstr "<span class=\"tc-lead tc-warning\">注意</span>: 誤ったタグが見つかりました。style.css のヘッダーから <strong>%1$s</strong> を取り除いてください。"
212
-
213
- #: theme-check/checks/tags.php:13
214
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to display tags. Modify it to display tags in appropriate locations."
215
- msgstr "<span class='tc-lead tc-required'>必須</span>: このテーマではタグを表示していないようです。適した場所にタグを表示するように修正してください。"
216
-
217
- #: theme-check/checks/basic.php:14
218
- msgid "See: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
219
- msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/HTML_to_XHTML\">http://wpdocs.sourceforge.jp/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
220
-
221
- #: theme-check/checks/basic.php:15
222
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
223
- msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
224
-
225
- #: theme-check/checks/basic.php:16
226
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
227
- msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
228
-
229
- #: theme-check/checks/basic.php:17
230
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
231
- msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
232
-
233
- #: theme-check/checks/basic.php:18
234
- msgid "There must be a charset defined in the Content-Type or the meta charset tag in the head."
235
- msgstr "ヘッダー内の Content-Type もしくは meta charset タグ内に charset の設定が必ず必要です。"
236
-
237
- #: theme-check/checks/basic.php:19
238
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
239
- msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
240
-
241
- #: theme-check/checks/basic.php:20
242
- msgid "See: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
243
- msgstr "参照: <ahref=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
244
-
245
- #: theme-check/checks/basic.php:21
246
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
247
- msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
248
-
249
- #: theme-check/checks/basic.php:22
250
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
251
- msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
252
-
253
- #: theme-check/checks/basic.php:23
254
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
255
- msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
256
-
257
- #: theme-check/checks/basic.php:24
258
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
259
- msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
260
-
261
- #: theme-check/checks/basic.php:25
262
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
263
- msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
264
-
265
- #: theme-check/checks/basic.php:26
266
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_link_pages\">wp_link_pages</a><pre> &lt;?php wp_link_pages( $args ); ?&gt;</pre>"
267
- msgstr "参考: <a href=\"http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_link_pages\">wp_link_pages</a><pre> &lt;?php wp_link_pages( $args ); ?&gt;</pre>"
268
-
269
- #: theme-check/checks/basic.php:27
270
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
271
- msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
272
-
273
- #: theme-check/checks/basic.php:33
274
- msgid "add_theme_support( 'automatic-feed-links' )"
275
- msgstr "add_theme_support( 'automatic-feed-links' )"
276
-
277
- #: theme-check/checks/basic.php:34
278
- msgid "wp_enqueue_script( 'comment-reply' )"
279
- msgstr "wp_enqueue_script( 'comment-reply' )"
280
-
281
- #: theme-check/checks/basic.php:35
282
- msgid "body_class call in body tag"
283
- msgstr "body タグ内での body_class 呼び出し"
284
-
285
- #: theme-check/checks/basic.php:36
286
- msgid "register_sidebar() or register_sidebars()"
287
- msgstr "register_sidebar() または register_sidebars()"
288
-
289
- #: theme-check/checks/basic.php:38
290
- #, php-format
291
- msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: Could not find <strong>%1$s</strong>. %2$s"
292
- msgstr "<span class=\"tc-lead tc-required\">必須</span>: <strong>%1$s</strong> が見つかりませんでした。%2$s"
293
-
294
- #: theme-check/checks/dep_recommend.php:26
295
- #, php-format
296
- msgid "<span class=\"tc-lead tc-recommended\">RECOMMENDED</span>: <strong>%1$s</strong> found in the file <strong>%2$s</strong>. Deprecated since version <strong>%3$s</strong>. Use <strong>%4$s</strong> instead.%5$s"
297
- msgstr "<span class=\"tc-lead tc-recommended\">推奨</span>: ファイル <strong>%2$s</strong> 内に <strong>%1$s</strong> が見つかりました。これはバージョン <strong>%3$s</strong> 以降、非推奨になっています。代わりに <strong>%4$s</strong> を使用してください。%5$s"
298
-
299
- #: theme-check/checks/more_deprecated.php:22
300
- #, php-format
301
- msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s"
302
- msgstr "<span class=\"tc-lead tc-required\">必須</span>: ファイル <strong>%2$s</strong> に <strong>%1$s</strong> が見つかりました。%4$s の代わりに <strong>%3$s</strong> を使用してください。"
303
-
304
- #: theme-check/checks/lineendings.php:11
305
- #: theme-check/checks/lineendings.php:20
306
- #: theme-check/checks/lineendings.php:31
307
- #, php-format
308
- msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: Both DOS and UNIX style line endings were found in the file <strong>%1$s</strong>. This causes a problem with SVN repositories and must be corrected before the theme can be accepted. Please change the file to use only one style of line endings."
309
- msgstr "<span class=\"tc-lead tc-warning\">注意</span>: ファイル <strong>%1$s</strong> 内に DOS と UNIX スタイルの両方の行末コードが見つかりました。これは SVN リポジトリで問題を引き起こします。この問題を修正しないとテーマは承認されません。行末コードをどちらかのスタイルを使うようにファイルを修正してください。"
310
-
311
- #: theme-check/checks/postthumb.php:15
312
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>the_post_thumbnail()</strong> was found in the theme. It is recommended that the theme implement this functionality instead of using custom fields for thumbnails."
313
- msgstr "<span class='tc-lead tc-recommended'>推奨</span>: このテーマ内に <strong>the_post_thumbnail()</strong> への参照が見つかりませんでした。サムネイル用には、カスタムフィールドを使う代りにこの機能を実装するようお勧めします。"
314
-
315
- #: theme-check/checks/postthumb.php:19
316
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to post-thumbnails was found in the theme. If the theme has a thumbnail like functionality, it should be implemented with <strong>add_theme_support( 'post-thumbnails' )</strong>in the functions.php file."
317
- msgstr "<span class='tc-lead tc-recommended'>推奨</span>: このテーマ内に投稿サムネイル (アイキャッチ画像) への参照が見つかりませんでした。 このテーマにサムネイルの機能をもたせるのなら functions.php 内に <strong>add_theme_support( 'post-thumbnails' )</strong> を実装したほうがいいでしょう。"
318
-
319
- #: theme-check/checks/searchform.php:9
320
- msgid "Please use <strong>get_search_form()</strong> instead of including searchform.php directly."
321
- msgstr "searchform.php を直接インクルードする代りに <strong>get_search_form()</strong> を使ってください。"
322
-
323
- #: theme-check/checks/searchform.php:16
324
- #, php-format
325
- msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: <strong>%1$s</strong> %2$s%3$s"
326
- msgstr "<span class=\"tc-lead tc-required\">必須</span>: <strong>%1$s</strong> %2$s%3$s"
327
-
328
- #: theme-check/checks/editorstyle.php:13
329
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_editor_style()</strong> was found in the theme. It is recommended that the theme implement editor styling, so as to make the editor content match the resulting post output in the theme, for a better user experience."
330
- msgstr "<span class='tc-lead tc-recommended'>推奨</span>: このテーマ内に <strong>add_editor_style()</strong> への参照が見つかりませんでした。テーマへのエディタースタイルの実装を推奨します。これにより、エディターのコンテンツとこのテーマの実際の出力とをマッチさせることができ、ユーザーエクスペリエンスが向上します。"
331
-
332
- #: theme-check/checks/style_needed.php:11
333
- msgid "<strong>Theme name:</strong> is missing from your style.css header."
334
- msgstr "style.css のヘッダーに <strong>Theme name:</strong> がありません。"
335
-
336
- #: theme-check/checks/style_needed.php:12
337
- msgid "<strong>Description:</strong> is missing from your style.css header."
338
- msgstr "style.css のヘッダーに <strong>Description:</strong> がありません。"
339
-
340
- #: theme-check/checks/style_needed.php:13
341
- msgid "<strong>Author:</strong> is missing from your style.css header."
342
- msgstr "style.css のヘッダーに <strong>Author:</strong> がありません。"
343
-
344
- #: theme-check/checks/style_needed.php:14
345
- msgid "<strong>Version:</strong> is missing from your style.css header."
346
- msgstr "style.css のヘッダーに <strong>Version:</strong> がありません。"
347
-
348
- #: theme-check/checks/style_needed.php:15
349
- msgid "<strong>License:</strong> is missing from your style.css header."
350
- msgstr "style.css のヘッダーに <strong>License:</strong> がありません。"
351
-
352
- #: theme-check/checks/style_needed.php:16
353
- msgid "<strong>License URI:</strong> is missing from your style.css header."
354
- msgstr "style.css のヘッダーに <strong>License URI:</strong> がありません。"
355
-
356
- #: theme-check/checks/style_needed.php:17
357
- msgid "<strong>.sticky</strong> css class is needed in your theme css."
358
- msgstr "テーマの css には <strong>.sticky</strong> の css クラスが必要です。"
359
-
360
- #: theme-check/checks/style_needed.php:18
361
- msgid "<strong>.bypostauthor</strong> css class is needed in your theme css."
362
- msgstr "テーマの css には <strong>.bypostauthor</strong> の css クラスが必要です。"
363
-
364
- #: theme-check/checks/style_needed.php:19
365
- msgid "<strong>.alignleft</strong> css class is needed in your theme css."
366
- msgstr "テーマの css には <strong>.alignleft</strong> の css クラスが必要です。"
367
-
368
- #: theme-check/checks/style_needed.php:20
369
- msgid "<strong>.alignright</strong> css class is needed in your theme css."
370
- msgstr "テーマの css には <strong>.alignright</strong> の css クラスが必要です。"
371
-
372
- #: theme-check/checks/style_needed.php:21
373
- msgid "<strong>.aligncenter</strong> css class is needed in your theme css."
374
- msgstr "テーマの css には <strong>.aligncenter</strong> の css クラスが必要です。"
375
-
376
- #: theme-check/checks/style_needed.php:22
377
- msgid "<strong>.wp-caption</strong> css class is needed in your theme css."
378
- msgstr "テーマの css には <strong>.wp-caption</strong> の css クラスが必要です。"
379
-
380
- #: theme-check/checks/style_needed.php:23
381
- msgid "<strong>.wp-caption-text</strong> css class is needed in your theme css."
382
- msgstr "テーマの css には <strong>.wp-caption-text</strong> の css クラスが必要です。"
383
-
384
- #: theme-check/checks/style_needed.php:24
385
- msgid "<strong>.gallery-caption</strong> css class is needed in your theme css."
386
- msgstr "テーマの css には <strong>.gallery-caption</strong> の css クラスが必要です。"
387
-
388
- #: theme-check/checks/style_needed.php:30
389
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>:"
390
- msgstr "<span class='tc-lead tc-required'>必須</span>:"
391
-
392
- #: theme-check/checks/commpage.php:15
393
- msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: The theme doesn't have comment pagination code in it. Use <strong>paginate_comments_links()</strong> or <strong>next_comments_link()</strong> and <strong>previous_comments_link()</strong> to add comment pagination."
394
- msgstr "<span class='tc-lead tc-required'>必須</span>: このテーマにはコメントページネーションのコードがありません。<strong>paginate_comments_links()</strong> もしくは <strong>next_comments_link()</strong> と <strong>previous_comments_link()</strong> を使用してコメントページネーションを追加してください。"
395
-
396
- #: theme-check/checks/customs.php:14
397
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_image_header</strong> was found in the theme. It is recommended that the theme implement this functionality if using an image for the header."
398
- msgstr "<span class='tc-lead tc-recommended'>推奨</span>: テーマ内に <strong>add_custom_image_header</strong> への参照が見つかりませんでした。ヘッダーに画像を使用するのならこの機能の実装をお勧めします。"
399
-
400
- #: theme-check/checks/customs.php:18
401
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_background()</strong> was found in the theme. If the theme uses background images or solid colors for the background, then it is recommended that the theme implement this functionality."
402
- msgstr "<span class='tc-lead tc-recommended'>推奨</span>: このテーマ内に <strong>add_custom_background()</strong> への参照が見つかりませんでした。テーマで背景に画像やソリッドカラーを使用するのなら、この機能の実装をお勧めします。"
403
-
404
- #: theme-check/checks/suggested.php:34
405
- #: theme-check/checks/constants.php:24
406
- #, php-format
407
- msgid "<span class=\"tc-lead tc-recommended\">RECOMMENDED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s"
408
- msgstr "<span class=\"tc-lead tc-recommended\">推奨</span>: ファイル <strong>%2$s</strong> に <strong>%1$s</strong> が見つかりました。%4$s の代わりに<strong>%3$s</strong> を使ってください。"
409
-
410
- #: theme-check/checks/gravatar.php:15
411
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to support the standard avatar functions. Use <strong>get_avatar</strong> or <strong>wp_list_comments</strong> to add this support."
412
- msgstr "<span class='tc-lead tc-required'>必須</span>: このテーマは標準のアバター機能をサポートしていないようです。このサポートを追加するには <strong>get_avatar</strong> もしくは <strong>wp_list_comments</strong> を使用してください。"
413
-
414
- #: theme-check/checks/links.php:26
415
- #, php-format
416
- msgid "<span class=\"tc-lead tc-info\">INFO</span>: Possible hard-coded links were found in the file <strong>%1$s</strong>.%2$s"
417
- msgstr "<span class=\"tc-lead tc-info\">情報</span>: ファイル <strong>%1$s</strong> 内にハードコードされているようなリンクが見つかりました。%2$s"
418
-
419
- #: theme-check/checks/textdomain.php:15
420
- msgid "You have not included a text domain!"
421
- msgstr "テキストドメインが含まれていません!"
422
-
423
- #: theme-check/checks/textdomain.php:30
424
- #, php-format
425
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: Text domain problems in <strong>%1$s</strong>. %2$s %3$s "
426
- msgstr "<span class='tc-lead tc-recommended'>推奨</span>: <strong>%1$s</strong> 内にテキストドメインに関する問題があります。 %2$s %3$s "
427
-
428
- #: theme-check/checks/textdomain.php:36
429
- #: theme-check/checks/textdomain.php:37
430
- #, php-format
431
- msgid "Text domain should match theme slug: <strong>%1$s</strong>"
432
- msgstr "テキストドメインはテーマのスラッグと合わせてください: <strong>%1$s</strong>"
433
-
434
- #: theme-check/checks/textdomain.php:53
435
- #, php-format
436
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: Text domain problems in <strong>%1$s</strong>. The twentyten text domain is being used!%2$s"
437
- msgstr "<span class='tc-lead tc-recommended'>推奨</span>: <strong>%1$s</strong> 内にテキストドメインに関する問題があります。 twentyten のテキストドメインが使われています! %2$s"
438
-
439
- #: theme-check/checks/textdomain.php:57
440
- #, php-format
441
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: Text domain problems in <strong>%1$s</strong>. %2$s You are using: <strong>%3s</strong>%4$s"
442
- msgstr "<span class='tc-lead tc-recommended'>推奨</span>: <strong>%1$s</strong> 内にテキストドメインに関する問題があります。 %2$s 次のが使われています: <strong>%3s</strong>%4$s"
443
-
444
- #: theme-check/checks/badthings.php:9
445
- msgid "eval() is not allowed."
446
- msgstr "eval() は許可されていません。"
447
-
448
- #: theme-check/checks/badthings.php:10
449
- msgid "PHP sytem calls should be disabled by server admins anyway!"
450
- msgstr "PHP システムコールはサーバー管理者によってとにかく無効にされるべきです!"
451
-
452
- #: theme-check/checks/badthings.php:11
453
- msgid "Themes should not change server PHP settings"
454
- msgstr "テーマでサーバーの PHP の設定を変更するべきではありません"
455
-
456
- #: theme-check/checks/badthings.php:12
457
- msgid "base64_decode() is not allowed"
458
- msgstr "base64_decode() は許可されていません。"
459
-
460
- #: theme-check/checks/badthings.php:13
461
- msgid "base64_encode() is not allowed"
462
- msgstr "base64_encode() は許可されていません。"
463
-
464
- #: theme-check/checks/badthings.php:14
465
- msgid "uudecode() is not allowed"
466
- msgstr "uudecode() は許可されていません。"
467
-
468
- #: theme-check/checks/badthings.php:15
469
- msgid "str_rot13() is not allowed"
470
- msgstr "str_rot13() は許可されていません。"
471
-
472
- #: theme-check/checks/badthings.php:16
473
- #: theme-check/checks/badthings.php:37
474
- msgid "Google search code detected"
475
- msgstr "Google 検索のコードが検知されました"
476
-
477
- #: theme-check/checks/badthings.php:17
478
- #: theme-check/checks/badthings.php:38
479
- msgid "Googe advertising code detected"
480
- msgstr "Goolge 広告のコードが検知されました"
481
-
482
- #: theme-check/checks/badthings.php:29
483
- #, php-format
484
- msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: Found <strong>%1$s</strong> in the file <strong>%2$s</strong>. %3$s. %4$s"
485
- msgstr "<span class=\"tc-lead tc-warning\">注意</span>: ファイル <strong>%2$s</strong> 内に <strong>%1$s</strong> が見つかりました。 %3$s. %4$s"
486
-
487
- #: theme-check/checks/badthings.php:48
488
- #, php-format
489
- msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: Found <strong>%1$s</strong> in the file <strong>%2$s</strong>. %3$s.%4$s"
490
- msgstr "<span class=\"tc-lead tc-warning\">注意</span>: ファイル <strong>%2$s</strong> 内に <strong>%1$s</strong> が見つかりました。 %3$s.%4$s"
491
-
492
- #: theme-check/checks/comment_reply.php:14
493
- msgid "See: <a href=\"http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
494
- msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
495
-
496
- #: theme-check/checks/comment_reply.php:15
497
- #, php-format
498
- msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: Could not find the <strong>comment-reply</strong> script enqueued. %1$s"
499
- msgstr "<span class=\"tc-lead tc-required\">必須</span>: <strong>comment-reply</strong> スクリプトが呼び出されていません。 %1$s"
500
-
501
- #: theme-check/checks/comment_reply.php:18
502
- msgid "<span class=\"tc-lead tc-info\">INFO</span>: Could not find the <strong>comment-reply</strong> script enqueued, however a reference to 'comment-reply' was found. Make sure that the comment-reply script is being enqueued properly on singular pages."
503
- msgstr "<span class=\"tc-lead tc-info\">情報</span>: 'comment-reply' への参照が見つかりましたが、<strong>comment-reply</strong> スクリプトが呼び出されていません。単独ページで comment-reply スクリプトが正しく呼び出されているか確認してください。"
504
-
505
- #: theme-check/checks/directories.php:27
506
- msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: Please remove any extraneous directories like .git or .svn from the ZIP file before uploading it."
507
- msgstr "<span class=\"tc-lead tc-required\">必須</span>: アップロードする前に、ZIP ファイルから .git や .svn などの無関係なディレクトリを取り除いてください。"
508
-
509
- #: theme-check/checks/style_suggested.php:20
510
- #, php-format
511
- msgid "<span class=\"tc-lead tc-recommended\">RECOMMENDED</span>: <strong>%1$s</strong> is missing from your style.css header."
512
- msgstr "<span class=\"tc-lead tc-recommended\">推奨</span>: style.css のヘッダーに <strong>%1$s</strong> がありません。"
513
-
514
- #: theme-check/checks/time_date.php:22
515
- #, php-format
516
- msgid "<span class=\"tc-lead tc-info\">INFO</span>: At least one hard coded date was found in the file <strong>%s</strong>. Consider get_option( 'date_format' )"
517
- msgstr "<span class=\"tc-lead tc-info\">情報</span>: 少なくともひとつのハードコードされた日付がファイル <strong>%s</strong> に見つかりました。get_option( 'date_format' ) の使用を検討してください。"
518
-
519
- #: theme-check/checks/nonprintable.php:16
520
- #, php-format
521
- msgid "<span class=\"tc-lead tc-info\">INFO</span>: Non-printable characters were found in the <strong>%1$s</strong> file. You may want to check this file for errors.%2$s"
522
- msgstr "<span class=\"tc-lead tc-info\">情報</span>: ファイル <strong>%1$s</strong> 内に非アスキー文字および/または制御文字が見つかりました。対象が日本語ユーザーのみの場合は日本語が入っていてもかまいませんが、公式テーマディレクトリに登録する場合は他言語ユーザーに配慮してテンプレートファイル内に日本語は使わないようにしてください。日本語以外の文字でこのエラーが出ている場合は次のエラーを確認して制御文字が入り込んでいないかファイルをチェックしてみてください。%2$s"
523
-
524
- #: theme-check/checks/postsnav.php:16
525
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have post pagination code in it. Use <strong>posts_nav_link()</strong> or <strong>paginate_links()</strong> or <strong>next_posts_link()</strong> and <strong>previous_posts_link()</strong> to add post pagination."
526
- msgstr "<span class='tc-lead tc-required'>必須</span>: このテーマには投稿記事ページネーションのコードがありません。<strong>posts_nav_link()</strong> もしくは <strong>paginate_links()</strong> もしくは <strong>next_posts_link()</strong> と <strong>previous_posts_link()</strong> を使用して投稿記事ページネーションを追加してください。"
527
-
528
- #: theme-check/checks/filenames.php:21
529
- msgid "Windows thumbnail store"
530
- msgstr "Windows サムネイルファイル"
531
-
532
- #: theme-check/checks/filenames.php:22
533
- msgid "windows system file"
534
- msgstr "Windows システムファイル"
535
-
536
- #: theme-check/checks/filenames.php:23
537
- #: theme-check/checks/filenames.php:24
538
- msgid "NetBeans Project File"
539
- msgstr "NetBeans プロジェクトファイル"
540
-
541
- #: theme-check/checks/filenames.php:25
542
- msgid "Komodo Project File"
543
- msgstr "Komodo プロジェクトファイル"
544
-
545
- #: theme-check/checks/filenames.php:26
546
- msgid "Hidden Files or Folders"
547
- msgstr "隠しファイルもしくは隠しフォルダ"
548
-
549
- #: theme-check/checks/filenames.php:27
550
- msgid "PHP server settings file"
551
- msgstr "PHP サーバー設定ファイル"
552
-
553
- #: theme-check/checks/filenames.php:28
554
- msgid "Dreamweaver project file"
555
- msgstr "Dreamweaver プロジェクトファイル"
556
-
557
- #: theme-check/checks/filenames.php:29
558
- msgid "PHP error log"
559
- msgstr "PHP エラーログ"
560
-
561
- #: theme-check/checks/filenames.php:30
562
- msgid "Server settings file"
563
- msgstr "サーバー設定ファイル"
564
-
565
- #: theme-check/checks/filenames.php:31
566
- msgid "SQL dump file"
567
- msgstr "SQL ダンプファイル"
568
-
569
- #: theme-check/checks/filenames.php:35
570
- msgid "Please see <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> for more information."
571
- msgstr "より詳しい情報は <a href=\"http://wpdocs.sourceforge.jp/Theme_Review#Theme_Documentation\">Theme_Documentation</a> をご覧ください。"
572
-
573
- #: theme-check/checks/filenames.php:42
574
- #, php-format
575
- msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: <strong>%1$s</strong> %2$s found."
576
- msgstr "<span class=\"tc-lead tc-warning\">注意</span>: <strong>%1$s</strong> %2$s が見つかりました。"
577
-
578
- #: theme-check/checks/filenames.php:49
579
- #, php-format
580
- msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: could not find the file <strong>%1$s</strong> in the theme."
581
- msgstr "<span class=\"tc-lead tc-warning\">注意</span>: テーマ内にファイル <strong>%1$s</strong> が見つかりませんでした。"
582
-
583
- #: theme-check/checks/filenames.php:56
584
- #, php-format
585
- msgid "<span class=\"tc-lead tc-recommended\">RECOMMENDED</span>: could not find the file <strong>%1$s</strong> in the theme. %2$s"
586
- msgstr "<span class=\"tc-lead tc-recommended\">推奨</span>: テーマ内にファイル <strong>%1$s</strong> が見つかりませんでした。 %2$s"
587
-
588
- #: theme-check/checks/worms.php:9
589
- msgid "This may be a script used by hackers to get control of your server!"
590
- msgstr "これはあなたのサーバーをコントロールするためにクラッカーが利用しているスクリプトかもしれません!"
591
-
592
- #: theme-check/checks/worms.php:10
593
- msgid "This may be a script used by hackers to get control of your server"
594
- msgstr "これはあなたのサーバーをコントロールするためにクラッカーが利用しているスクリプトかもしれません!"
595
-
596
- #: theme-check/checks/worms.php:11
597
- msgid "Tells a hacker what operating system your server is running"
598
- msgstr "サーバーの OS をクラッカーに伝えます"
599
-
600
- #: theme-check/checks/worms.php:12
601
- msgid "base64 encoded text found in Search Engine Redirect hack <a href=\"http://blogbuildingu.com/wordpress/wordpress-search-engine-redirect-hack\">[1]</a>"
602
- msgstr "検索エンジンリダイレクトハック <a href=\"http://blogbuildingu.com/wordpress/wordpress-search-engine-redirect-hack\">[1]</a> に base64 でエンコードされたテキストが見つかりました"
603
-
604
- #: theme-check/checks/worms.php:13
605
- msgid "YAHG Googlerank.info exploit code <a href=\"http://creativebriefing.com/wordpress-hacked-googlerankinfo/\">[1]</a>"
606
- msgstr "YAHG Googlerank.info 攻撃用コード <a href=\"http://creativebriefing.com/wordpress-hacked-googlerankinfo/\">[1]</a>"
607
-
608
- #: theme-check/checks/worms.php:14
609
- msgid "Possible Ekibastos attack <a href=\"http://ocaoimh.ie/did-your-wordpress-site-get-hacked/\">[1]</a>"
610
- msgstr "Ekibastos 攻撃の可能性 <a href=\"http://ocaoimh.ie/did-your-wordpress-site-get-hacked/\">[1]</a>"
611
-
612
- #: theme-check/checks/worms.php:15
613
- msgid "Symptom of a link injection attack <a href=\"http://www.kyle-brady.com/2009/11/07/wordpress-mediatemple-and-an-injection-attack/\">[1]</a>"
614
- msgstr "リンクインジェクション <a href=\"http://www.kyle-brady.com/2009/11/07/wordpress-mediatemple-and-an-injection-attack/\">[1]</a> の兆候"
615
-
616
- #: theme-check/checks/worms.php:16
617
- msgid "Possible \"Gumblar\" JavaScript attack <a href=\"http://threatinfo.trendmicro.com/vinfo/articles/securityarticles.asp?xmlfile=042710-GUMBLAR.xml\">[1]</a> <a href=\"http://justcoded.com/article/gumblar-family-virus-removal-tool/\">[2]</a>"
618
- msgstr "\"Gumblar\" JavaScript 攻撃 <a href=\"http://threatinfo.trendmicro.com/vinfo/articles/securityarticles.asp?xmlfile=042710-GUMBLAR.xml\">[1]</a> <a href=\"http://justcoded.com/article/gumblar-family-virus-removal-tool/\">[2]</a> の可能性"
619
-
620
- #: theme-check/checks/worms.php:17
621
- #: theme-check/checks/worms.php:18
622
- msgid "Symptom of the \"Pharma Hack\" <a href=\"http://blog.sucuri.net/2010/07/understanding-and-cleaning-the-pharma-hack-on-wordpress.html\">[1]</a>"
623
- msgstr "\"Pharma Hack\" <a href=\"http://blog.sucuri.net/2010/07/understanding-and-cleaning-the-pharma-hack-on-wordpress.html\">[1]</a> の可能性"
624
-
625
- #: theme-check/checks/worms.php:19
626
- msgid "Malicious footer code injection detected!"
627
- msgstr "悪意のあるフッターコードのインジェクションを検知しました!"
628
-
629
- #: theme-check/checks/worms.php:29
630
- #, php-format
631
- msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: <strong>%1$s</strong> %2$s%3$s"
632
- msgstr "<span class=\"tc-lead tc-warning\">注意</span>: <strong>%1$s</strong> %2$s%3$s"
633
-
634
- #: theme-check/checks/phpshort.php:14
635
- #, php-format
636
- msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: Found PHP short tags in file <strong>%1$s</strong>.%2$s"
637
- msgstr "<span class=\"tc-lead tc-warning\">注意</span>: ファイル <strong>%1$s</strong>に PHP のショートタグが見つかりました。%2$s"
638
-
639
- #: theme-check/checks/screenshot.php:21
640
- #, php-format
641
- msgid "<span class=\"tc-lead tc-recommended\">RECOMMENDED</span>: Screenshot is wrong size! Detected: <strong>%1$sx%2$spx</strong>. Maximum allowed size is 320x240px."
642
- msgstr "<span class=\"tc-lead tc-recommended\">推奨</span>: スクリーンショットのサイズが違います! 検知したサイズ: <strong>%1$sx%2$spx</strong> です。許可されている最大サイズは 320x240px です。"
643
-
644
- #: theme-check/checks/screenshot.php:26
645
- msgid "<span class='tc-lead tc-warning'>WARNING</span>: No screenshot detected! Please include a screenshot.png."
646
- msgstr "<span class='tc-lead tc-warning'>注意</span>: スクリーンショットがありません! screenshot.png を含めるようにしてください。"
647
-
648
- #: theme-check/checks/deprecated.php:155
649
- #, php-format
650
- msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: <strong>%1$s</strong> found in the file <strong>%2$s</strong>. Deprecated since version <strong>%3$s</strong>. Use <strong>%4$s</strong> instead.%5$s"
651
- msgstr "<span class=\"tc-lead tc-required\">必須</span>: ファイル <strong>%2$s</strong> 内に <strong>%1$s</strong> が見つかりました。これはバージョン <strong>%3$s</strong> 以降、非推奨になっています。代わりに <strong>%4$s</strong> を使用してください。%5$s"
652
-
653
- #: theme-check/checks/iframes.php:9
654
- msgid "iframes are sometimes used to load unwanted adverts and code on your site"
655
- msgstr "iframes は、無用な広告やコードのサイトへの読み込みに使われることがあります"
656
-
657
- #: theme-check/checks/iframes.php:20
658
- #, php-format
659
- msgid "<span class=\"tc-lead tc-info\">INFO</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong> %3$s.%4$s"
660
- msgstr "<span class=\"tc-lead tc-info\">情報</span>: ファイル <strong>%2$s</strong> 内に <strong>%1$s</strong> が見つかりました。 %3$s。%4$s"
661
-
662
- #: theme-check/checks/artisteer.php:24
663
- msgid "This theme appears to have been auto-generated. Generated themes are not allowed in the themes directory."
664
- msgstr "このテーマは自動的に生成されたテーマのようです。自動生成されたテーマはテーマディレクトリでは許可されていません。"
665
-
666
- #: theme-check/checks/malware.php:9
667
- msgid "possible file operations"
668
- msgstr "ファイル操作の可能性"
669
-
670
- #: theme-check/checks/malware.php:23
671
- #, php-format
672
- msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong> %3$s.%4$s"
673
- msgstr "<span class=\"tc-lead tc-warning\">注意</span>: ファイル <strong>%2$s</strong> に <strong>%1$s</strong> が見つかりました %3$s.%4$s"
674
-
675
- #: theme-check/checks/post-formats.php:27
676
- #, php-format
677
- msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. However get_post_format and/or has_post_format were not found, and no use of formats in the CSS was detected."
678
- msgstr "<span class=\"tc-lead tc-required\">必須</span>: ファイル <strong>%2$s</strong> 内に <strong>%1$s</strong> が見つかりました。get_post_format および/または has_post_format は見つかりませんでした。また、CSS にはフォーマット用のスタイルは検知されませんでした。"
679
-
680
- #: theme-check/checks/content-width.php:14
681
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: No content width has been defined. Example: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
682
- msgstr "<span class='tc-lead tc-required'>必須</span>: コンテンツ幅が設定されていません。例: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
683
-
684
- #: theme-check/checks/include.php:10
685
- msgid "The theme appears to use include or require. If these are being used to include separate sections of a template from independent files, then <strong>get_template_part()</strong> should be used instead."
686
- msgstr "このテーマでは include もしくは require が使用されているようです。もし単独ファイルからテンプレートの別個のセクションをインクルードするためなら、代りに <strong>get_template_part()</strong> を使用してください。"
687
-
688
- #: theme-check/checks/include.php:19
689
- #, php-format
690
- msgid "<span class=\"tc-lead tc-info\">INFO</span>: <strong>%1$s</strong> %2$s %3$s"
691
- msgstr "<span class=\"tc-lead tc-info\">情報</span>: <strong>%1$s</strong> %2$s %3$s"
692
-
693
- #: theme-check/checks/admin_menu.php:13
694
- #: theme-check/checks/admin_menu.php:14
695
- msgid "User levels were deprecated in <strong>2.0</strong>. Please see <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
696
- msgstr "ユーザーレベルは <strong>2.0</strong> で非推奨になりました。<a href=\"http://wpdocs.sourceforge.jp/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E7%A8%AE%E9%A1%9E%E3%81%A8%E6%A8%A9%E9%99%90\">ユーザーの種類と権限</a>を参照してください。"
697
-
698
- #: theme-check/checks/admin_menu.php:23
699
- #, php-format
700
- msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: <strong>%1$s</strong>. %2$s%3$s"
701
- msgstr "<span class=\"tc-lead tc-warning\">注意</span>: <strong>%1$s</strong>. %2$s%3$s"
702
-
703
- #: theme-check/checks/admin_menu.php:33
704
- msgid "Themes should use <strong>add_theme_page()</strong> for adding admin pages."
705
- msgstr "管理画面ページの追加は <strong>add_theme_page()</strong> を使ってください。"
706
-
707
- #: theme-check/checks/admin_menu.php:44
708
- #, php-format
709
- msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: <strong>%1$s</strong>. %2$s%3$s"
710
- msgstr "<span class=\"tc-lead tc-required\">必須</span>: <strong>%1$s</strong>。 %2$s%3$s"
711
-
712
- #~ msgid "This is a child theme. The parent theme is"
713
- #~ msgstr "このテーマは子テーマです。親テーマ"
714
-
715
- #~ msgid "twentyten text domain is being used!"
716
- #~ msgstr "twentyten のテキストドメインが使用されています!"
717
-
718
- #~ msgid "<strong>PHP shell was found!</strong>"
719
- #~ msgstr "<strong>PHP シェルが見つかりました!</strong>"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lang/themecheck-ro_RO.mo DELETED
Binary file
lang/themecheck-ro_RO.po DELETED
@@ -1,364 +0,0 @@
1
- # Copyright (C) 2010 Theme-Check
2
- # This file is distributed under the same license as the Theme-Check package.
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: Theme-Check 20101228.2\n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/theme-check\n"
7
- "POT-Creation-Date: 2011-01-23 14:04:21+00:00\n"
8
- "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=utf-8\n"
10
- "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2011-01-26 00:43+0200\n"
12
- "Last-Translator: Daniel Tara <contact@onedesigns.com>\n"
13
- "Language-Team: WPTRT <theme-reviewers@lists.wordpress.org>\n"
14
- "X-Poedit-Language: Romanian\n"
15
- "X-Poedit-Country: ROMANIA\n"
16
- "X-Poedit-SourceCharset: utf-8\n"
17
-
18
- #: main.php:66
19
- msgid "Theme Info"
20
- msgstr "Informații Temă"
21
-
22
- #: main.php:67
23
- msgid "Title"
24
- msgstr "Titlu"
25
-
26
- #: main.php:68
27
- msgid "Version"
28
- msgstr "Versiune"
29
-
30
- #: main.php:69
31
- msgid "Author"
32
- msgstr "Autor"
33
-
34
- #: main.php:70
35
- msgid "Author URI"
36
- msgstr "URI Autor"
37
-
38
- #: main.php:71
39
- msgid "Theme URI"
40
- msgstr "URI Temă"
41
-
42
- #: main.php:72
43
- msgid "License"
44
- msgstr "Licență"
45
-
46
- #: main.php:73
47
- msgid "LicenseURI"
48
- msgstr "URILicență"
49
-
50
- #: main.php:75
51
- msgid "Tags"
52
- msgstr "Etichete"
53
-
54
- #: main.php:76
55
- msgid "Description"
56
- msgstr "Descriere"
57
-
58
- #: main.php:79
59
- msgid "This is a child theme. The parent theme is"
60
- msgstr "Această temă este \"child-theme\". Tema \"parent\" este"
61
-
62
- #: main.php:91
63
- msgid "One or more errors were found for "
64
- msgstr "Una sau mai multe erori au fost găsite pentru "
65
-
66
- #: main.php:93
67
- msgid " passed the tests"
68
- msgstr "a trecut testele"
69
-
70
- #: main.php:96
71
- msgid "<strong>WP_DEBUG is not enabled!</strong> Please test your theme with <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug enabled</a> before you upload!</div>"
72
- msgstr "<strong>WP_DEBUG nu este activ!</strong> Testează tema cu <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">modul debug activat</a> inainte sa incarci!</div>"
73
-
74
- #: main.php:161
75
- msgid "Check it!"
76
- msgstr "Verifică!"
77
-
78
- #: checkbase.php:87
79
- #: checkbase.php:106
80
- msgid "<pre class='tc-grep'>Line "
81
- msgstr "<pre class='tc-grep'>Linie "
82
-
83
- #: theme-check.php:23
84
- msgid "You do not have sufficient permissions to access this page."
85
- msgstr "Nu ai suficiente drepturi pentru a accesa aceastp pagină."
86
-
87
- #: checks/tags.php:13
88
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to display tags. Modify it to display tags in appropriate locations."
89
- msgstr "<span class='tc-lead tc-required'>REQUIRED</span>: Această temă nu ăare să afișeze etichete. Modifică tema, astfel încât să afișeze etichetele în locurile corespunzătoare."
90
-
91
- #: checks/gravatar.php:15
92
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to support the standard avatar functions. Use <strong>get_avatar</strong> or <strong>wp_list_comments</strong> to add this support."
93
- msgstr "<span class='tc-lead tc-required'>NECESAR</span>: Tema nu pare să suporte funcțiile standard pentru avatare. Folosește <strong>get_avatar</strong> sau <strong>wp_list_comments</strong> pentru a adăuga această funcționalitate."
94
-
95
- #: checks/commpage.php:15
96
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have comment pagination code in it. Use <strong>paginate_comments_links()</strong> or <strong>next_comments_link()</strong> and <strong>previous_comments_link()</strong> to add comment pagination."
97
- msgstr "<span class='tc-lead tc-required'>NECESAR</span>: Tema nu are cod pentru paginatia comentariilor. Folosește <strong>paginate_comments_links()</strong> sau <strong>next_comments_link()</strong> si <strong>previous_comments_link()</strong> pentru a adăuga paginație comentariilor."
98
-
99
- #: checks/postthumb.php:15
100
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>the_post_thumbnail()</strong> was found in the theme. It is recommended that the theme implement this functionality instead of using custom fields for thumbnails."
101
- msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: Nu s-au găsit referințe către <strong>the_post_thumbnail()</strong> în temă. Este recomandat ca tema să implementeze această de funcționalitate pentru pictograme, in loc de câmpuri particularizate."
102
-
103
- #: checks/postthumb.php:19
104
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to post-thumbnails was found in the theme. If the theme has a thumbnail like functionality, it should be implemented with <strong>add_theme_support( 'post-thumbnails' )</strong>in the functions.php file."
105
- msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: Nu s-au găsit referințe către post-thumbnails în temă. Dacă tema are funcționalitate pentru pictograme, ar trebui implementată cu <strong>add_theme_support( 'post-thumbnails' )</strong> în fișierul functions.php."
106
-
107
- #: checks/navmenu.php:14
108
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to nav_menu's was found in the theme. Note that if your theme has a menu bar, it is required to use the WordPress nav_menu functionality for it."
109
- msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: Nu s-au găsit referințe către nav_menu în temă. Dacă tema are o bară de meniu, este necesar să folosească funcționalitatea nav_menu din WordPress pentru ea."
110
-
111
- #: checks/directories.php:27
112
- msgid "Please remove any extraneous directories like .git or .svn from the ZIP file before uploading it."
113
- msgstr "Elimină directoare externe ca .git sau .svn din arhiva ZIP inainte de a o incarca."
114
-
115
- #: checks/customs.php:14
116
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_image_header</strong> was found in the theme. It is recommended that the theme implement this functionality if using an image for the header."
117
- msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: Nu s-au găsit referințe către <strong>add_custom_image_header</strong> în temă. Este recomandat ca tema să implementeze această funcționalitate daca folosește o imagine pentru antet."
118
-
119
- #: checks/customs.php:18
120
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_background()</strong> was found in the theme. If the theme uses background images or solid colors for the background, then it is recommended that the theme implement this functionality."
121
- msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: Nu s-au găsit referințe către <strong>add_custom_background()</strong> în temă. Daca tema foloseste imagini sau culori pentru fond, este recomandat să implementeze această funcționalitate."
122
-
123
- #: checks/filenames.php:21
124
- msgid "Windows thumbnail store"
125
- msgstr "Baza de date de pictograme Windows"
126
-
127
- #: checks/filenames.php:22
128
- msgid "windows system file"
129
- msgstr "Fișier sistem Windows"
130
-
131
- #: checks/filenames.php:23
132
- msgid "Komodo Project File"
133
- msgstr "Fișier proiect Komodo"
134
-
135
- #: checks/filenames.php:24
136
- msgid "Hidden File"
137
- msgstr "Fișier ascuns"
138
-
139
- #: checks/filenames.php:25
140
- msgid "PHP server settings file"
141
- msgstr "Fișier setări server PHP"
142
-
143
- #: checks/filenames.php:26
144
- msgid "Dreamweaver project file"
145
- msgstr "Fișier proiect Dreamweaver"
146
-
147
- #: checks/filenames.php:27
148
- msgid "PHP error log"
149
- msgstr "Jurnal erori PHP"
150
-
151
- #: checks/filenames.php:28
152
- msgid "Server settings file"
153
- msgstr "Fișier setări server"
154
-
155
- #: checks/filenames.php:32
156
- msgid "Please see <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> for more information."
157
- msgstr "Vezi <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> pentru mai multe informații."
158
-
159
- #: checks/style_needed.php:11
160
- msgid "<strong>Theme name:</strong> is missing from your style.css header."
161
- msgstr "<strong>Theme name:</strong> lipsește din antetul style.css."
162
-
163
- #: checks/style_needed.php:12
164
- msgid "<strong>Description:</strong> is missing from your style.css header."
165
- msgstr "<strong>Description:</strong> lipsește din antetul style.css."
166
-
167
- #: checks/style_needed.php:13
168
- msgid "<strong>Author:</strong> is missing from your style.css header."
169
- msgstr "<strong>Author:</strong> lipsește din antetul style.css."
170
-
171
- #: checks/style_needed.php:14
172
- msgid "<strong>Version:</strong> is missing from your style.css header."
173
- msgstr "<strong>Version:</strong> lipsește din antetul style.css."
174
-
175
- #: checks/style_needed.php:15
176
- msgid "<strong>License:</strong> is missing from your style.css header."
177
- msgstr "<strong>License:</strong> lipsește din antetul style.css."
178
-
179
- #: checks/style_needed.php:16
180
- msgid "<strong>License URI:</strong> is missing from your style.css header."
181
- msgstr "<strong>License URI:</strong> lipsește din antetul style.css."
182
-
183
- #: checks/style_needed.php:17
184
- msgid "<strong>.alignleft</strong> css class is needed in your theme css."
185
- msgstr "Clasa CSS <strong>.alignleft</strong> este necesară in fișierul CSS al temei."
186
-
187
- #: checks/style_needed.php:18
188
- msgid "<strong>.alignright</strong> css class is needed in your theme css."
189
- msgstr "Clasa CSS <strong>.alignright</strong> este necesară in fișierul CSS al temei."
190
-
191
- #: checks/style_needed.php:19
192
- msgid "<strong>.aligncenter</strong> css class is needed in your theme css."
193
- msgstr "Clasa CSS <strong>.aligncenter</strong> este necesară in fișierul CSS al temei."
194
-
195
- #: checks/style_needed.php:20
196
- msgid "<strong>.wp-caption</strong> css class is needed in your theme css."
197
- msgstr "Clasa CSS <strong>.wp-caption</strong> este necesară in fișierul CSS al temei."
198
-
199
- #: checks/style_needed.php:21
200
- msgid "<strong>.wp-caption-text</strong> css class is needed in your theme css."
201
- msgstr "Clasa CSS <strong>.wp-caption-text</strong> este necesară in fișierul CSS al temei."
202
-
203
- #: checks/style_needed.php:22
204
- msgid "<strong>.gallery-caption</strong> css class is needed in your theme css."
205
- msgstr "Clasa CSS <strong>.gallery-caption</strong> este necesară in fișierul CSS al temei."
206
-
207
- #: checks/style_tags.php:20
208
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: <strong>Tags:</strong> is either empty or missing in style.css header."
209
- msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: <strong>Tags:</strong> este gol sau lipsește din antetul style.css."
210
-
211
- #: checks/searchform.php:14
212
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: Please use <strong>get_search_form()</strong> instead of including searchform.php directly."
213
- msgstr "<span class='tc-lead tc-required'>NECESAR</span>: Folosește <strong>get_search_form()</strong> în loc de a include direct searchform.php."
214
-
215
- #: checks/worms.php:9
216
- msgid "<strong>PHP shell was found!</strong>"
217
- msgstr "<strong>Shell PHP a fost găsit!</strong>"
218
-
219
- #: checks/include.php:10
220
- msgid "The theme appears to use include or require. If these are being used to include separate sections of a template from independent files, then <strong>get_template_part()</strong> should be used instead."
221
- msgstr "Tema pare să folosească include sau require. Dacă acestea sunt folosite pentru a include secțiuni separate ale template-ului din fișiere independente, atunci <strong>get_template_part()</strong> ar trebui folosit."
222
-
223
- #: checks/malware.php:9
224
- msgid "possible file operations"
225
- msgstr "posibile operațiuni cu fișiere"
226
-
227
- #: checks/postsnav.php:16
228
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have post pagination code in it. Use <strong>posts_nav_link()</strong> or <strong>paginate_links()</strong> or <strong>next_posts_link()</strong> and <strong>previous_posts_link()</strong> to add post pagination."
229
- msgstr "<span class='tc-lead tc-required'>NECESAR</span>: Tema nu are paginație pentru intrări. Folosește <strong>posts_nav_link()</strong> sau <strong>paginate_links()</strong> sau <strong>next_posts_link()</strong> si <strong>previous_posts_link()</strong> pentru a adăuga paginație intrărilor."
230
-
231
- #: checks/admin_menu.php:13
232
- msgid "User levels were deprecated in <strong>2.0</strong>. Please see <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
233
- msgstr "Nivelele de utilizatori au fost depreciate in <strong>2.0</strong>. Vezi <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
234
-
235
- #: checks/admin_menu.php:33
236
- msgid "Themes should use <strong>add_theme_page()</strong> for adding admin pages."
237
- msgstr "Temele ar trebui să folosească <strong>add_theme_page()</strong> pentru adăugarea paginilor de administrație."
238
-
239
- #: checks/artisteer.php:23
240
- msgid "This theme appears to have been auto-generated. Generated themes are not allowed in the themes directory."
241
- msgstr "Această tema pare să fie generată automat. Temele generate nu sunt permise în directorul de teme."
242
-
243
- #: checks/editorstyle.php:13
244
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_editor_style()</strong> was found in the theme. It is recommended that the theme implement editor styling, so as to make the editor content match the resulting post output in the theme, for a better user experience."
245
- msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: Nu s-au găsit referințe către <strong>add_editor_style()</strong> în temă. Este recomandat ca tema să implementeze stilizarea editorului, pentru a face conținutul din editor să se potrivească cu conținutul intrării din temă, pentru o experiență mai buna a utilizatorului."
246
-
247
- #: checks/content-width.php:14
248
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: No content width has been defined. Example: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
249
- msgstr "<span class='tc-lead tc-required'>NECESAR</span>: Lățimea conținutului nu a fost definită. Exemplu: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
250
-
251
- #: checks/badthings.php:9
252
- msgid "eval() is not allowed."
253
- msgstr "eval() nu este permis."
254
-
255
- #: checks/badthings.php:10
256
- msgid "PHP sytem calls should be disabled by server admins anyway!"
257
- msgstr "Apelurile de sistem PHP ar trebui sa fie oricum dezactivate de către administratori."
258
-
259
- #: checks/badthings.php:11
260
- msgid "Themes should not change server PHP settings"
261
- msgstr "Temele nu ar trebui să modifice setările serverului PHP"
262
-
263
- #: checks/badthings.php:12
264
- msgid "base64_decode() is not allowed"
265
- msgstr "base64_decode() nu este permis"
266
-
267
- #: checks/badthings.php:13
268
- msgid "base64_encode() is not allowed"
269
- msgstr "base64_encode() nu este permis"
270
-
271
- #: checks/badthings.php:14
272
- msgid "uudecode() is not allowed"
273
- msgstr "uudecode() nu este permis"
274
-
275
- #: checks/badthings.php:15
276
- msgid "str_rot13() is not allowed"
277
- msgstr "str_rot13() nu este permis"
278
-
279
- #: checks/badthings.php:16
280
- #: checks/badthings.php:37
281
- msgid "Google search code detected"
282
- msgstr "Cod căutare Google detectat"
283
-
284
- #: checks/badthings.php:17
285
- #: checks/badthings.php:38
286
- msgid "Googe advertising code detected"
287
- msgstr "Cod reclame Googe detectat"
288
-
289
- #: checks/basic.php:14
290
- msgid "See: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
291
- msgstr "Vezi: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
292
-
293
- #: checks/basic.php:15
294
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
295
- msgstr "Vezi: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
296
-
297
- #: checks/basic.php:16
298
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
299
- msgstr "Vezi: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
300
-
301
- #: checks/basic.php:17
302
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
303
- msgstr "Vezi: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
304
-
305
- #: checks/basic.php:18
306
- msgid "There must be a charset defined in the Content-Type or the meta charset tag in the head."
307
- msgstr "Charset trebuie definit in Content-Type sau meta charset in head"
308
-
309
- #: checks/basic.php:19
310
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
311
- msgstr "Vezi: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
312
-
313
- #: checks/basic.php:20
314
- msgid "See: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
315
- msgstr "Vezi: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
316
-
317
- #: checks/basic.php:21
318
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
319
- msgstr "Vezi: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
320
-
321
- #: checks/basic.php:22
322
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
323
- msgstr "Vezi: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
324
-
325
- #: checks/basic.php:23
326
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
327
- msgstr "Vezi: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
328
-
329
- #: checks/basic.php:24
330
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
331
- msgstr "Vezi: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
332
-
333
- #: checks/basic.php:25
334
- msgid "See: <a href=\"http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
335
- msgstr "Vezi: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
336
-
337
- #: checks/basic.php:26
338
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
339
- msgstr "Vezi: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
340
-
341
- #: checks/basic.php:27
342
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
343
- msgstr "Vezi: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
344
-
345
- #. Plugin Name of the plugin/theme
346
- msgid "Theme-Check"
347
- msgstr "Theme-Check"
348
-
349
- #. Plugin URI of the plugin/theme
350
- msgid "http://pross.org.uk/plugins"
351
- msgstr "http://pross.org.uk/plugins"
352
-
353
- #. Description of the plugin/theme
354
- msgid "A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!"
355
- msgstr "Un mod simplu și ușor de a verifica tema ta pentru toate standardele și practcile WordPress recente."
356
-
357
- #. Author of the plugin/theme
358
- msgid "Pross"
359
- msgstr "Pross"
360
-
361
- #. Author URI of the plugin/theme
362
- msgid "http://pross.org.uk"
363
- msgstr "http://pross.org.uk"
364
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lang/themecheck-sr_RS.mo DELETED
Binary file
lang/themecheck-sr_RS.po DELETED
@@ -1,364 +0,0 @@
1
- # Copyright (C) 2010 Theme-Check
2
- # This file is distributed under the same license as the Theme-Check package.
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: Theme-Check 20101228.2\n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/theme-check\n"
7
- "POT-Creation-Date: 2011-01-23 14:04:21+00:00\n"
8
- "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=UTF-8\n"
10
- "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2011-01-25 22:26-0600\n"
12
- "Last-Translator: Emil Uzelac <emil@themeid.com>\n"
13
- "Language-Team: WPTRT <theme-reviewers@lists.wordpress.org>\n"
14
- "X-Poedit-Language: Serbian\n"
15
- "X-Poedit-Country: SERBIA\n"
16
- "X-Poedit-SourceCharset: utf-8\n"
17
-
18
- #: main.php:66
19
- msgid "Theme Info"
20
- msgstr "Информације Теме"
21
-
22
- #: main.php:67
23
- msgid "Title"
24
- msgstr "Наслов"
25
-
26
- #: main.php:68
27
- msgid "Version"
28
- msgstr "Верзија"
29
-
30
- #: main.php:69
31
- msgid "Author"
32
- msgstr "Аутор"
33
-
34
- #: main.php:70
35
- msgid "Author URI"
36
- msgstr "Аутор URI"
37
-
38
- #: main.php:71
39
- msgid "Theme URI"
40
- msgstr "Тема URI"
41
-
42
- #: main.php:72
43
- msgid "License"
44
- msgstr "Лиценца"
45
-
46
- #: main.php:73
47
- msgid "LicenseURI"
48
- msgstr "Лиценца URI"
49
-
50
- #: main.php:75
51
- msgid "Tags"
52
- msgstr "Етикете"
53
-
54
- #: main.php:76
55
- msgid "Description"
56
- msgstr "Опис"
57
-
58
- #: main.php:79
59
- msgid "This is a child theme. The parent theme is"
60
- msgstr "Ово је child тема. Parent тема је"
61
-
62
- #: main.php:91
63
- msgid "One or more errors were found for "
64
- msgstr "Једна или више грешака је пронађено"
65
-
66
- #: main.php:93
67
- msgid " passed the tests"
68
- msgstr "је прошла све тестове"
69
-
70
- #: main.php:96
71
- msgid "<strong>WP_DEBUG is not enabled!</strong> Please test your theme with <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug enabled</a> before you upload!</div>"
72
- msgstr "<strong>WP_DEBUG није подешен!</strong> Молим Вас да тестирате вашу тему са <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug одобрењем</a> пре пребацивања!</div>"
73
-
74
- #: main.php:161
75
- msgid "Check it!"
76
- msgstr "Провери!"
77
-
78
- #: checkbase.php:87
79
- #: checkbase.php:106
80
- msgid "<pre class='tc-grep'>Line "
81
- msgstr "<pre class='tc-grep'>Ред"
82
-
83
- #: theme-check.php:23
84
- msgid "You do not have sufficient permissions to access this page."
85
- msgstr "Немате довољно одобрење за приступ овој страници."
86
-
87
- #: checks/tags.php:13
88
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to display tags. Modify it to display tags in appropriate locations."
89
- msgstr "<span class='tc-lead tc-required'>ОБАВЕЗНО</span>: Ова тема није у могућности да прикаже етикете. Модификујте код за етикете у намењеној локацији."
90
-
91
- #: checks/gravatar.php:15
92
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to support the standard avatar functions. Use <strong>get_avatar</strong> or <strong>wp_list_comments</strong> to add this support."
93
- msgstr "<span class='tc-lead tc-required'>ОБАВЕЗНО</span>: Ова тема не подржава основне аватар функције. Користите <strong>get_avatar</strong> или <strong>wp_list_comments</strong> да додате подршку."
94
-
95
- #: checks/commpage.php:15
96
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have comment pagination code in it. Use <strong>paginate_comments_links()</strong> or <strong>next_comments_link()</strong> and <strong>previous_comments_link()</strong> to add comment pagination."
97
- msgstr "<span class='tc-lead tc-required'>ОБАВЕЗНО</span>: Ова тема нема comment pagination код. Користите <strong>paginate_comments_links()</strong> или <strong>next_comments_link()</strong> и <strong>previous_comments_link()</strong> да додате comment pagination."
98
-
99
- #: checks/postthumb.php:15
100
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>the_post_thumbnail()</strong> was found in the theme. It is recommended that the theme implement this functionality instead of using custom fields for thumbnails."
101
- msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: Нема ознака да <strong>the_post_thumbnail()</strong> постоји у теми. Препоручено је да тема спроведе ову функцију, уместо да користи custom fields за thumbnails."
102
-
103
- #: checks/postthumb.php:19
104
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to post-thumbnails was found in the theme. If the theme has a thumbnail like functionality, it should be implemented with <strong>add_theme_support( 'post-thumbnails' )</strong>in the functions.php file."
105
- msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: Нема ознака да post-thumbnails постоји у теми. Ако тема има thumbnail функције, требало би да се спроведе са <strong>add_theme_support( 'post-thumbnails' )</strong>у functions.php фајлу."
106
-
107
- #: checks/navmenu.php:14
108
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to nav_menu's was found in the theme. Note that if your theme has a menu bar, it is required to use the WordPress nav_menu functionality for it."
109
- msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: Нема ознака да nav_menu's постоји у теми. Обратите пажњу да уколико Ваша тема има menu bar, обавезно је да користите WordPress nav_menu функције за то."
110
-
111
- #: checks/directories.php:27
112
- msgid "Please remove any extraneous directories like .git or .svn from the ZIP file before uploading it."
113
- msgstr "Молим Вас да избаците све непотребне датотеке као што су .git или .svn из ZIP фајла пре уплоадовања."
114
-
115
- #: checks/customs.php:14
116
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_image_header</strong> was found in the theme. It is recommended that the theme implement this functionality if using an image for the header."
117
- msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: Нема ознака да <strong>add_custom_image_header</strong> постоји у теми. Препоручено је да спроведете ову функцију у теми уколико користите имиџ у хедеру."
118
-
119
- #: checks/customs.php:18
120
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_background()</strong> was found in the theme. If the theme uses background images or solid colors for the background, then it is recommended that the theme implement this functionality."
121
- msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: Нема ознака да <strong>add_custom_background()</strong> је пронађен у теми. Ако тема користи имиџе за позадину или боје, онда се препоручује да примените ову функционалност."
122
-
123
- #: checks/filenames.php:21
124
- msgid "Windows thumbnail store"
125
- msgstr "Windows thumbnail магацин"
126
-
127
- #: checks/filenames.php:22
128
- msgid "windows system file"
129
- msgstr "windows систем фајл"
130
-
131
- #: checks/filenames.php:23
132
- msgid "Komodo Project File"
133
- msgstr "Komodo Пројект Фајл"
134
-
135
- #: checks/filenames.php:24
136
- msgid "Hidden File"
137
- msgstr "Скривени Фајл"
138
-
139
- #: checks/filenames.php:25
140
- msgid "PHP server settings file"
141
- msgstr "PHP сервер подесиони фајл"
142
-
143
- #: checks/filenames.php:26
144
- msgid "Dreamweaver project file"
145
- msgstr "Dreamweaver пројект фајл"
146
-
147
- #: checks/filenames.php:27
148
- msgid "PHP error log"
149
- msgstr "PHP протокол грешке"
150
-
151
- #: checks/filenames.php:28
152
- msgid "Server settings file"
153
- msgstr "Серверов подесиони фајл"
154
-
155
- #: checks/filenames.php:32
156
- msgid "Please see <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> for more information."
157
- msgstr "Молим да видите <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> за више информација."
158
-
159
- #: checks/style_needed.php:11
160
- msgid "<strong>Theme name:</strong> is missing from your style.css header."
161
- msgstr "<strong>Име Теме:</strong> недостаје из вашег style.css хедера."
162
-
163
- #: checks/style_needed.php:12
164
- msgid "<strong>Description:</strong> is missing from your style.css header."
165
- msgstr "<strong>Опис:</strong> недостаје из вашег style.css хедера."
166
-
167
- #: checks/style_needed.php:13
168
- msgid "<strong>Author:</strong> is missing from your style.css header."
169
- msgstr "<strong>Аутор:</strong> недостаје из вашег style.css хедера."
170
-
171
- #: checks/style_needed.php:14
172
- msgid "<strong>Version:</strong> is missing from your style.css header."
173
- msgstr "<strong>Верзија:</strong> недостаје из вашег style.css хедера."
174
-
175
- #: checks/style_needed.php:15
176
- msgid "<strong>License:</strong> is missing from your style.css header."
177
- msgstr "<strong>Лиценца:</strong> недостаје из вашег style.css хедера."
178
-
179
- #: checks/style_needed.php:16
180
- msgid "<strong>License URI:</strong> is missing from your style.css header."
181
- msgstr "<strong>Лиценца URI:</strong> недостаје из вашег style.css хедера."
182
-
183
- #: checks/style_needed.php:17
184
- msgid "<strong>.alignleft</strong> css class is needed in your theme css."
185
- msgstr "<strong>.alignleft</strong> css класа је неопходна у css фајлу ваше теме."
186
-
187
- #: checks/style_needed.php:18
188
- msgid "<strong>.alignright</strong> css class is needed in your theme css."
189
- msgstr "<strong>.alignright</strong> css класа је неопходна у css фајлу ваше теме."
190
-
191
- #: checks/style_needed.php:19
192
- msgid "<strong>.aligncenter</strong> css class is needed in your theme css."
193
- msgstr "<strong>.aligncenter</strong> css класа је неопходна у css фајлу ваше теме."
194
-
195
- #: checks/style_needed.php:20
196
- msgid "<strong>.wp-caption</strong> css class is needed in your theme css."
197
- msgstr "<strong>.wp-caption</strong> css класа је неопходна у css фајлу ваше теме."
198
-
199
- #: checks/style_needed.php:21
200
- msgid "<strong>.wp-caption-text</strong> css class is needed in your theme css."
201
- msgstr "<strong>.wp-caption-text</strong> css класа је неопходна у css фајлу ваше теме."
202
-
203
- #: checks/style_needed.php:22
204
- msgid "<strong>.gallery-caption</strong> css class is needed in your theme css."
205
- msgstr "<strong>.gallery-caption</strong> css класа је неопходна у css фајлу ваше теме."
206
-
207
- #: checks/style_tags.php:20
208
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: <strong>Tags:</strong> is either empty or missing in style.css header."
209
- msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: <strong>Етикета:</strong> је или празна или не постоји у style.css хедеру."
210
-
211
- #: checks/searchform.php:14
212
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: Please use <strong>get_search_form()</strong> instead of including searchform.php directly."
213
- msgstr "<span class='tc-lead tc-required'>ОБАВЕЗНО</span>: Молим да користите <strong>get_search_form()</strong> уместо садржавања searchform.php директно."
214
-
215
- #: checks/worms.php:9
216
- msgid "<strong>PHP shell was found!</strong>"
217
- msgstr "<strong>PHP shell је пронађен!</strong>"
218
-
219
- #: checks/include.php:10
220
- msgid "The theme appears to use include or require. If these are being used to include separate sections of a template from independent files, then <strong>get_template_part()</strong> should be used instead."
221
- msgstr "Тема изгледа да користи include или require. Уколико се и користе за убацивање одвојених секција темплејта из независних фајлова, онда уместо тога користите <strong>get_template_part()</strong>"
222
-
223
- #: checks/malware.php:9
224
- msgid "possible file operations"
225
- msgstr "могуће фајл операције"
226
-
227
- #: checks/postsnav.php:16
228
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have post pagination code in it. Use <strong>posts_nav_link()</strong> or <strong>paginate_links()</strong> or <strong>next_posts_link()</strong> and <strong>previous_posts_link()</strong> to add post pagination."
229
- msgstr "<span class='tc-lead tc-required'>ОБАВЕЗНО</span>: Тема нема код за пост пагинацију. Користите <strong>posts_nav_link()</strong> или <strong>paginate_links()</strong> и <strong>next_posts_link()</strong> и <strong>previous_posts_link()</strong> да додате пост пагинацију."
230
-
231
- #: checks/admin_menu.php:13
232
- msgid "User levels were deprecated in <strong>2.0</strong>. Please see <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
233
- msgstr "Кориснички нивои су одбачени у <strong>2.0</strong>. Молим да погледате <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
234
-
235
- #: checks/admin_menu.php:33
236
- msgid "Themes should use <strong>add_theme_page()</strong> for adding admin pages."
237
- msgstr "Теме би требале да користе <strong>add_theme_page()</strong> за убацивање администрационих страница."
238
-
239
- #: checks/artisteer.php:23
240
- msgid "This theme appears to have been auto-generated. Generated themes are not allowed in the themes directory."
241
- msgstr "Ова тема изгледа да је била аутоматски генерисана. Генерисане теме нису дозвољене у директоријуму тема."
242
-
243
- #: checks/editorstyle.php:13
244
- msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_editor_style()</strong> was found in the theme. It is recommended that the theme implement editor styling, so as to make the editor content match the resulting post output in the theme, for a better user experience."
245
- msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: Нема ознака да <strong>add_editor_style()</strong> постоји у теми. Препоручено је да тема укључи стил за уреднике како би уређивачки садржај изгледао као и постови теме, зарад бољег искуства корисника."
246
-
247
- #: checks/content-width.php:14
248
- msgid "<span class='tc-lead tc-required'>REQUIRED</span>: No content width has been defined. Example: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
249
- msgstr "<span class='tc-lead tc-required'>ОБАВЕЗНО</span>: Ширина садржаја није дефинисана. Пример: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
250
-
251
- #: checks/badthings.php:9
252
- msgid "eval() is not allowed."
253
- msgstr "eval() није дозвољен."
254
-
255
- #: checks/badthings.php:10
256
- msgid "PHP sytem calls should be disabled by server admins anyway!"
257
- msgstr "PHP систем позиви свакако треба да буду онеспособљени од стане администратора сервера!"
258
-
259
- #: checks/badthings.php:11
260
- msgid "Themes should not change server PHP settings"
261
- msgstr "Тема неби требала да прави PHP промене на серверу"
262
-
263
- #: checks/badthings.php:12
264
- msgid "base64_decode() is not allowed"
265
- msgstr "base64_decode() није дозвољен"
266
-
267
- #: checks/badthings.php:13
268
- msgid "base64_encode() is not allowed"
269
- msgstr "base64_encode() није дозвољен"
270
-
271
- #: checks/badthings.php:14
272
- msgid "uudecode() is not allowed"
273
- msgstr "uudecode() није дозвољен"
274
-
275
- #: checks/badthings.php:15
276
- msgid "str_rot13() is not allowed"
277
- msgstr "str_rot13() није дозвољен"
278
-
279
- #: checks/badthings.php:16
280
- #: checks/badthings.php:37
281
- msgid "Google search code detected"
282
- msgstr "Google претраживачки код је пронађен"
283
-
284
- #: checks/badthings.php:17
285
- #: checks/badthings.php:38
286
- msgid "Googe advertising code detected"
287
- msgstr "Google рекламни код је пронађен"
288
-
289
- #: checks/basic.php:14
290
- msgid "See: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
291
- msgstr "Види: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
292
-
293
- #: checks/basic.php:15
294
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
295
- msgstr "Види: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
296
-
297
- #: checks/basic.php:16
298
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
299
- msgstr "Види: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
300
-
301
- #: checks/basic.php:17
302
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
303
- msgstr "Види: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
304
-
305
- #: checks/basic.php:18
306
- msgid "There must be a charset defined in the Content-Type or the meta charset tag in the head."
307
- msgstr "Charset мора да буде дефинисан у Content-Type или meta charset ознака на врху стране."
308
-
309
- #: checks/basic.php:19
310
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
311
- msgstr "Види: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
312
-
313
- #: checks/basic.php:20
314
- msgid "See: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
315
- msgstr "Види: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
316
-
317
- #: checks/basic.php:21
318
- msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
319
- msgstr "Види: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
320
-
321
- #: checks/basic.php:22
322
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
323
- msgstr "Види: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
324
-
325
- #: checks/basic.php:23
326
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
327
- msgstr "Види: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
328
-
329
- #: checks/basic.php:24
330
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
331
- msgstr "Види: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
332
-
333
- #: checks/basic.php:25
334
- msgid "See: <a href=\"http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
335
- msgstr "Види: <a href=\"http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
336
-
337
- #: checks/basic.php:26
338
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
339
- msgstr "Види: <a href=\"http://codex.wordpress.org/Template_Tags/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
340
-
341
- #: checks/basic.php:27
342
- msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
343
- msgstr "Види: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
344
-
345
- #. Plugin Name of the plugin/theme
346
- msgid "Theme-Check"
347
- msgstr "Провера-Теме"
348
-
349
- #. Plugin URI of the plugin/theme
350
- msgid "http://pross.org.uk/plugins"
351
- msgstr "http://pross.org.uk/plugins"
352
-
353
- #. Description of the plugin/theme
354
- msgid "A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!"
355
- msgstr "Једноставан и лак начин за тестирање Ваше теме по последњим WordPress стандардима и вештинама. Одлична алатка за развијање!"
356
-
357
- #. Author of the plugin/theme
358
- msgid "Pross"
359
- msgstr "Pross"
360
-
361
- #. Author URI of the plugin/theme
362
- msgid "http://pross.org.uk"
363
- msgstr "http://pross.org.uk"
364
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lang/themecheck.pot DELETED
@@ -1,547 +0,0 @@
1
- # Copyright (C) 2010
2
- # This file is distributed under the same license as the package.
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: \n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/theme-check_svn\n"
7
- "POT-Creation-Date: 2011-02-05 19:47:08+00:00\n"
8
- "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=UTF-8\n"
10
- "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
12
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
- "Language-Team: LANGUAGE <LL@li.org>\n"
14
-
15
- #: theme-check.php:28
16
- msgid "You do not have sufficient permissions to access this page."
17
- msgstr ""
18
-
19
- #: checks/malware.php:9
20
- msgid "possible file operations"
21
- msgstr ""
22
-
23
- #: checks/searchform.php:9
24
- msgid ""
25
- "Please use <strong>get_search_form()</strong> instead of including "
26
- "searchform.php directly."
27
- msgstr ""
28
-
29
- #: checks/commpage.php:15
30
- msgid ""
31
- "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have "
32
- "comment pagination code in it. Use <strong>paginate_comments_links()</"
33
- "strong> or <strong>next_comments_link()</strong> and "
34
- "<strong>previous_comments_link()</strong> to add comment pagination."
35
- msgstr ""
36
-
37
- #: checks/editorstyle.php:13
38
- msgid ""
39
- "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to "
40
- "<strong>add_editor_style()</strong> was found in the theme. It is "
41
- "recommended that the theme implement editor styling, so as to make the "
42
- "editor content match the resulting post output in the theme, for a better "
43
- "user experience."
44
- msgstr ""
45
-
46
- #: checks/screenshot.php:26
47
- msgid ""
48
- "<span class='tc-lead tc-warning'>WARNING</span>: No screenshot detected! "
49
- "Please include a screenshot.png."
50
- msgstr ""
51
-
52
- #: checks/navmenu.php:14
53
- msgid ""
54
- "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to "
55
- "nav_menu's was found in the theme. Note that if your theme has a menu bar, "
56
- "it is required to use the WordPress nav_menu functionality for it."
57
- msgstr ""
58
-
59
- #: checks/include.php:10
60
- msgid ""
61
- "The theme appears to use include or require. If these are being used to "
62
- "include separate sections of a template from independent files, then "
63
- "<strong>get_template_part()</strong> should be used instead."
64
- msgstr ""
65
-
66
- #: checks/directories.php:27
67
- msgid ""
68
- "Please remove any extraneous directories like .git or .svn from the ZIP file "
69
- "before uploading it."
70
- msgstr ""
71
-
72
- #: checks/style_tags.php:20
73
- msgid ""
74
- "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: <strong>Tags:</"
75
- "strong> is either empty or missing in style.css header."
76
- msgstr ""
77
-
78
- #: checks/customs.php:14
79
- msgid ""
80
- "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to "
81
- "<strong>add_custom_image_header</strong> was found in the theme. It is "
82
- "recommended that the theme implement this functionality if using an image "
83
- "for the header."
84
- msgstr ""
85
-
86
- #: checks/customs.php:18
87
- msgid ""
88
- "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to "
89
- "<strong>add_custom_background()</strong> was found in the theme. If the "
90
- "theme uses background images or solid colors for the background, then it is "
91
- "recommended that the theme implement this functionality."
92
- msgstr ""
93
-
94
- #: checks/textdomain.php:15
95
- msgid "twentyten text domain is being used!"
96
- msgstr ""
97
-
98
- #: checks/textdomain.php:16
99
- msgid "You have not included a text domain!"
100
- msgstr ""
101
-
102
- #: checks/badthings.php:9
103
- msgid "eval() is not allowed."
104
- msgstr ""
105
-
106
- #: checks/badthings.php:10
107
- msgid "PHP sytem calls should be disabled by server admins anyway!"
108
- msgstr ""
109
-
110
- #: checks/badthings.php:11
111
- msgid "Themes should not change server PHP settings"
112
- msgstr ""
113
-
114
- #: checks/badthings.php:12
115
- msgid "base64_decode() is not allowed"
116
- msgstr ""
117
-
118
- #: checks/badthings.php:13
119
- msgid "base64_encode() is not allowed"
120
- msgstr ""
121
-
122
- #: checks/badthings.php:14
123
- msgid "uudecode() is not allowed"
124
- msgstr ""
125
-
126
- #: checks/badthings.php:15
127
- msgid "str_rot13() is not allowed"
128
- msgstr ""
129
-
130
- #: checks/badthings.php:16 checks/badthings.php:37
131
- msgid "Google search code detected"
132
- msgstr ""
133
-
134
- #: checks/badthings.php:17 checks/badthings.php:38
135
- msgid "Googe advertising code detected"
136
- msgstr ""
137
-
138
- #: checks/artisteer.php:23
139
- msgid ""
140
- "This theme appears to have been auto-generated. Generated themes are not "
141
- "allowed in the themes directory."
142
- msgstr ""
143
-
144
- #: checks/basic.php:14
145
- msgid ""
146
- "See: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex."
147
- "wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD "
148
- "XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict."
149
- "dtd\"?&gt;</pre>"
150
- msgstr ""
151
-
152
- #: checks/basic.php:15
153
- msgid ""
154
- "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer"
155
- "\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
156
- msgstr ""
157
-
158
- #: checks/basic.php:16
159
- msgid ""
160
- "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head"
161
- "\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
162
- msgstr ""
163
-
164
- #: checks/basic.php:17
165
- msgid ""
166
- "See: <a href=\"http://codex.wordpress.org/Function_Reference/"
167
- "language_attributes\">language_attributes</a><pre>&lt;html &lt;?php "
168
- "language_attributes(); ?&gt;</pre>"
169
- msgstr ""
170
-
171
- #: checks/basic.php:18
172
- msgid ""
173
- "There must be a charset defined in the Content-Type or the meta charset tag "
174
- "in the head."
175
- msgstr ""
176
-
177
- #: checks/basic.php:19
178
- msgid ""
179
- "See: <a href=\"http://codex.wordpress.org/Function_Reference/"
180
- "add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support"
181
- "( $feature ); ?&gt;</pre>"
182
- msgstr ""
183
-
184
- #: checks/basic.php:20
185
- msgid ""
186
- "See: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar"
187
- "\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
188
- msgstr ""
189
-
190
- #: checks/basic.php:21
191
- msgid ""
192
- "See: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar"
193
- "\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
194
- msgstr ""
195
-
196
- #: checks/basic.php:22
197
- msgid ""
198
- "See: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template"
199
- "\">comments_template</a><pre> &lt;?php comments_template( $file, "
200
- "$separate_comments ); ?&gt;</pre>"
201
- msgstr ""
202
-
203
- #: checks/basic.php:23
204
- msgid ""
205
- "See: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments"
206
- "\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
207
- msgstr ""
208
-
209
- #: checks/basic.php:24
210
- msgid ""
211
- "See: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form"
212
- "\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
213
- msgstr ""
214
-
215
- #: checks/basic.php:25
216
- msgid ""
217
- "See: <a href=\"http://codex.wordpress.org/"
218
- "Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating "
219
- "Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if "
220
- "( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
221
- msgstr ""
222
-
223
- #: checks/basic.php:26
224
- msgid ""
225
- "See: <a href=\"http://codex.wordpress.org/Template_Tags/body_class"
226
- "\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
227
- msgstr ""
228
-
229
- #: checks/basic.php:27
230
- msgid ""
231
- "See: <a href=\"http://codex.wordpress.org/Template_Tags/post_class"
232
- "\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php "
233
- "post_class(); ?&gt;&gt;</pre>"
234
- msgstr ""
235
-
236
- #: checks/gravatar.php:15
237
- msgid ""
238
- "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem "
239
- "to support the standard avatar functions. Use <strong>get_avatar</strong> or "
240
- "<strong>wp_list_comments</strong> to add this support."
241
- msgstr ""
242
-
243
- #: checks/style_needed.php:11
244
- msgid "<strong>Theme name:</strong> is missing from your style.css header."
245
- msgstr ""
246
-
247
- #: checks/style_needed.php:12
248
- msgid "<strong>Description:</strong> is missing from your style.css header."
249
- msgstr ""
250
-
251
- #: checks/style_needed.php:13
252
- msgid "<strong>Author:</strong> is missing from your style.css header."
253
- msgstr ""
254
-
255
- #: checks/style_needed.php:14
256
- msgid "<strong>Version:</strong> is missing from your style.css header."
257
- msgstr ""
258
-
259
- #: checks/style_needed.php:15
260
- msgid "<strong>License:</strong> is missing from your style.css header."
261
- msgstr ""
262
-
263
- #: checks/style_needed.php:16
264
- msgid "<strong>License URI:</strong> is missing from your style.css header."
265
- msgstr ""
266
-
267
- #: checks/style_needed.php:17
268
- msgid "<strong>.alignleft</strong> css class is needed in your theme css."
269
- msgstr ""
270
-
271
- #: checks/style_needed.php:18
272
- msgid "<strong>.alignright</strong> css class is needed in your theme css."
273
- msgstr ""
274
-
275
- #: checks/style_needed.php:19
276
- msgid "<strong>.aligncenter</strong> css class is needed in your theme css."
277
- msgstr ""
278
-
279
- #: checks/style_needed.php:20
280
- msgid "<strong>.wp-caption</strong> css class is needed in your theme css."
281
- msgstr ""
282
-
283
- #: checks/style_needed.php:21
284
- msgid ""
285
- "<strong>.wp-caption-text</strong> css class is needed in your theme css."
286
- msgstr ""
287
-
288
- #: checks/style_needed.php:22
289
- msgid ""
290
- "<strong>.gallery-caption</strong> css class is needed in your theme css."
291
- msgstr ""
292
-
293
- #: checks/worms.php:9
294
- msgid "<strong>PHP shell was found!</strong>"
295
- msgstr ""
296
-
297
- #: checks/postsnav.php:16
298
- msgid ""
299
- "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have "
300
- "post pagination code in it. Use <strong>posts_nav_link()</strong> or "
301
- "<strong>paginate_links()</strong> or <strong>next_posts_link()</strong> and "
302
- "<strong>previous_posts_link()</strong> to add post pagination."
303
- msgstr ""
304
-
305
- #: checks/content-width.php:14
306
- msgid ""
307
- "<span class='tc-lead tc-required'>REQUIRED</span>: No content width has been "
308
- "defined. Example: <pre>if ( ! isset( $content_width ) ) $content_width = 900;"
309
- "</pre>"
310
- msgstr ""
311
-
312
- #: checks/filenames.php:21
313
- msgid "Windows thumbnail store"
314
- msgstr ""
315
-
316
- #: checks/filenames.php:22
317
- msgid "windows system file"
318
- msgstr ""
319
-
320
- #: checks/filenames.php:23
321
- msgid "Komodo Project File"
322
- msgstr ""
323
-
324
- #: checks/filenames.php:24
325
- msgid "Hidden File"
326
- msgstr ""
327
-
328
- #: checks/filenames.php:25
329
- msgid "PHP server settings file"
330
- msgstr ""
331
-
332
- #: checks/filenames.php:26
333
- msgid "Dreamweaver project file"
334
- msgstr ""
335
-
336
- #: checks/filenames.php:27
337
- msgid "PHP error log"
338
- msgstr ""
339
-
340
- #: checks/filenames.php:28
341
- msgid "Server settings file"
342
- msgstr ""
343
-
344
- #: checks/filenames.php:32
345
- msgid ""
346
- "Please see <a href=\"http://codex.wordpress.org/"
347
- "Theme_Review#Theme_Documentation\">Theme_Documentation</a> for more "
348
- "information."
349
- msgstr ""
350
-
351
- #: checks/tags.php:13
352
- msgid ""
353
- "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem "
354
- "to display tags. Modify it to display tags in appropriate locations."
355
- msgstr ""
356
-
357
- #: checks/postthumb.php:15
358
- msgid ""
359
- "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to "
360
- "<strong>the_post_thumbnail()</strong> was found in the theme. It is "
361
- "recommended that the theme implement this functionality instead of using "
362
- "custom fields for thumbnails."
363
- msgstr ""
364
-
365
- #: checks/postthumb.php:19
366
- msgid ""
367
- "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to "
368
- "post-thumbnails was found in the theme. If the theme has a thumbnail like "
369
- "functionality, it should be implemented with <strong>add_theme_support"
370
- "( 'post-thumbnails' )</strong>in the functions.php file."
371
- msgstr ""
372
-
373
- #: checks/admin_menu.php:13 checks/admin_menu.php:14
374
- msgid ""
375
- "User levels were deprecated in <strong>2.0</strong>. Please see <a href="
376
- "\"http://codex.wordpress.org/Roles_and_Capabilities"
377
- "\">Roles_and_Capabilities</a>"
378
- msgstr ""
379
-
380
- #: checks/admin_menu.php:34
381
- msgid ""
382
- "Themes should use <strong>add_theme_page()</strong> for adding admin pages."
383
- msgstr ""
384
-
385
- #: main.php:76
386
- msgid "Theme Info"
387
- msgstr ""
388
-
389
- #: main.php:77
390
- msgid "Title"
391
- msgstr ""
392
-
393
- #: main.php:78
394
- msgid "Version"
395
- msgstr ""
396
-
397
- #: main.php:79
398
- msgid "Author"
399
- msgstr ""
400
-
401
- #: main.php:80
402
- msgid "Author URI"
403
- msgstr ""
404
-
405
- #: main.php:81
406
- msgid "Theme URI"
407
- msgstr ""
408
-
409
- #: main.php:82
410
- msgid "License"
411
- msgstr ""
412
-
413
- #: main.php:83
414
- msgid "LicenseURI"
415
- msgstr ""
416
-
417
- #: main.php:85
418
- msgid "Tags"
419
- msgstr ""
420
-
421
- #: main.php:86
422
- msgid "Description"
423
- msgstr ""
424
-
425
- #: main.php:89
426
- msgid "This is a child theme. The parent theme is"
427
- msgstr ""
428
-
429
- #: main.php:100
430
- msgid "One or more errors were found for "
431
- msgstr ""
432
-
433
- #: main.php:102
434
- msgid " passed the tests"
435
- msgstr ""
436
-
437
- #: main.php:105
438
- msgid ""
439
- "<strong>WP_DEBUG is not enabled!</strong> Please test your theme with <a "
440
- "href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug enabled</a> "
441
- "before you upload!</div>"
442
- msgstr ""
443
-
444
- #: checkbase.php:87 checkbase.php:106
445
- msgid "<pre class='tc-grep'>Line "
446
- msgstr ""
447
-
448
- #: checkbase.php:185
449
- msgid "<h2>About</h2>"
450
- msgstr ""
451
-
452
- #: checkbase.php:186
453
- msgid ""
454
- "<p>The theme check plugin is an easy way to test your theme and make sure "
455
- "it's up to spec with the latest theme review standards.<br />"
456
- msgstr ""
457
-
458
- #: checkbase.php:187
459
- msgid ""
460
- "With it, you can run all the same automated testing tools on your theme that "
461
- "WordPress.org uses for theme submissions.</p>"
462
- msgstr ""
463
-
464
- #: checkbase.php:188
465
- msgid "<h2>Contact</h2>"
466
- msgstr ""
467
-
468
- #: checkbase.php:189
469
- msgid ""
470
- "<p>Theme-Check is maintained by <a href=\"http://profiles.wordpress.org/"
471
- "users/pross/\">Pross</a> and <a href=\"http://profiles.wordpress.org/users/"
472
- "otto42/\">Otto42</a><br />"
473
- msgstr ""
474
-
475
- #: checkbase.php:190
476
- msgid ""
477
- "If you have found a bug or would like to make a suggestion or contribution "
478
- "why not join the <a href=\"http://wordpress.org/extend/themes/contact/"
479
- "\">theme-reviewers mailing list</a><br />"
480
- msgstr ""
481
-
482
- #: checkbase.php:191
483
- msgid ""
484
- "or leave a post on the <a href=\"http://wordpress.org/tags/theme-check?"
485
- "forum_id=10\">WordPress forums</a>.<br />"
486
- msgstr ""
487
-
488
- #: checkbase.php:193
489
- msgid "<h2>Contributors</h2>"
490
- msgstr ""
491
-
492
- #: checkbase.php:194
493
- msgid "<h3>localization</h3>"
494
- msgstr ""
495
-
496
- #: checkbase.php:199
497
- msgid "<h3>Testers</h3>"
498
- msgstr ""
499
-
500
- #: checkbase.php:200
501
- msgid ""
502
- "<p><a href=\"http://make.wordpress.org/themes/\">The WordPress Theme Review "
503
- "Team</a></p>"
504
- msgstr ""
505
-
506
- #: checkbase.php:204
507
- msgid ""
508
- "<div class=\"tc-success\">Now your theme has passed the basic tests you need "
509
- "to check it properly using the test data before you upload to the WordPress "
510
- "Themes Directory.<br />"
511
- msgstr ""
512
-
513
- #: checkbase.php:205
514
- msgid ""
515
- "<br />Make sure to review the guidelines at <a href=\"http://codex.wordpress."
516
- "org/Theme_Review\">Theme Review</a> before uploading a Theme."
517
- msgstr ""
518
-
519
- #: checkbase.php:206
520
- msgid "<h3>Codex Links</h3>"
521
- msgstr ""
522
-
523
- #: checkbase.php:208
524
- msgid ""
525
- "<li><a href=\"http://codex.wordpress.org/Theme_Development\">Theme "
526
- "Development</a></li>"
527
- msgstr ""
528
-
529
- #: checkbase.php:209
530
- msgid ""
531
- "<li><a href=\"http://wordpress.org/support/forum/5\">Themes and Templates "
532
- "forum</a></li>"
533
- msgstr ""
534
-
535
- #: checkbase.php:210
536
- msgid ""
537
- "<li><a href=\"http://codex.wordpress.org/Theme_Unit_Test\">Theme Unit Tests</"
538
- "a></li>"
539
- msgstr ""
540
-
541
- #: checkbase.php:224
542
- msgid "Check it!"
543
- msgstr ""
544
-
545
- #: checkbase.php:225
546
- msgid "Output in Trac format."
547
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
main.php CHANGED
@@ -9,7 +9,7 @@ function check_main( $theme ) {
9
  // This is a child theme, so we need to pull files from the parent, which HAS to be installed.
10
  $parent = get_theme_root( $data[ 'Template' ] ) . '/' . $data['Template'];
11
  if ( ! tc_get_theme_data( $parent . '/style.css' ) ) { // This should never happen but we will check while were here!
12
- echo '<h2>' . sprintf(__('Parent theme <strong>%1$s</strong> not found! You have to have parent AND child-theme installed!', 'themecheck'), $data[ 'Template' ] ) . '</h2>';
13
  return;
14
  }
15
  $parent_data = tc_get_theme_data( $parent . '/style.css' );
@@ -19,10 +19,11 @@ function check_main( $theme ) {
19
 
20
  if ( $files ) {
21
  foreach( $files as $key => $filename ) {
22
- if ( substr( $filename, -4 ) == '.php' ) {
23
- $php[$filename] = php_strip_whitespace( $filename );
 
24
  }
25
- else if ( substr( $filename, -4 ) == '.css' ) {
26
  $css[$filename] = file_get_contents( $filename );
27
  }
28
  else {
@@ -31,59 +32,67 @@ function check_main( $theme ) {
31
  }
32
 
33
  // run the checks
34
- $failed = !run_themechecks($php, $css, $other);
35
 
36
  global $checkcount;
37
 
38
  // second loop, to display the errors
39
- echo '<h2>' . __( 'Theme Info', 'themecheck' ) . ': </h2>';
40
  echo '<div class="theme-info">';
41
  if (file_exists( trailingslashit( WP_CONTENT_DIR . '/themes' ) . trailingslashit( basename( $theme ) ) . 'screenshot.png' ) ) {
42
  $image = getimagesize( $theme . '/screenshot.png' );
43
- echo '<div style="float:right" class="theme-info"><img style="max-height:180px;" src="' . trailingslashit( WP_CONTENT_URL . '/themes' ) . trailingslashit( basename( $theme ) ) . 'screenshot.png" />';
44
-
45
- echo '<br /><div style="text-align:center">' . $image[0] . 'x' . $image[1] . ' ' . round( filesize( $theme . '/screenshot.png' )/1024 ) . 'k</div></div>';
46
-
47
-
48
-
49
  }
50
- echo ( !empty( $data[ 'Title' ] ) ) ? '<p><label>' . __( 'Title', 'themecheck' ) . '</label><span class="info">' . $data[ 'Title' ] . '</span></p>' : '';
51
- echo ( !empty( $data[ 'Version' ] ) ) ? '<p><label>' . __( 'Version', 'themecheck' ) . '</label><span class="info">' . $data[ 'Version' ] . '</span></p>' : '';
52
- echo ( !empty( $data[ 'AuthorName' ] ) ) ? '<p><label>' . __( 'Author', 'themecheck' ) . '</label><span class="info">' . $data[ 'AuthorName' ] . '</span></p>' : '';
53
- echo ( !empty( $data[ 'AuthorURI' ] ) ) ? '<p><label>' . __( 'Author URI', 'themecheck' ) . '</label><span class="info"><a href="' . $data[ 'AuthorURI' ] . '">' . $data[ 'AuthorURI' ] . '</a>' . '</span></p>' : '';
54
- echo ( !empty( $data[ 'URI' ] ) ) ? '<p><label>' . __( 'Theme URI', 'themecheck' ) . '</label><span class="info"><a href="' . $data[ 'URI' ] . '">' . $data[ 'URI' ] . '</a>' . '</span></p>' : '';
55
- echo ( !empty( $data[ 'License' ] ) ) ? '<p><label>' . __( 'License', 'themecheck' ) . '</label><span class="info">' . $data[ 'License' ] . '</span></p>' : '';
56
- echo ( !empty( $data[ 'License URI' ] ) ) ? '<p><label>' . __( 'LicenseURI', 'themecheck' ) . '</label><span class="info">' . $data[ 'License URI' ] . '</span></p>' : '';
57
- echo ( !empty( $data[ 'Tags' ] ) ) ? '<p><label>' . __( 'Tags', 'themecheck' ) . '</label><span class="info">' . implode( $data[ 'Tags' ], ', ') . '</span></p>' : '';
58
- echo ( !empty( $data[ 'Description' ] ) ) ? '<p><label>' . __( 'Description', 'themecheck' ) . '</label><span class="info">' . $data[ 'Description' ] . '</span></p>' : '';
 
59
 
60
  if ( $data[ 'Template' ] ) {
61
  if ( $data['Template Version'] > $parent_data['Version'] ) {
62
- echo '<p>' . sprintf(__('This child theme requires at least version <strong>%1$s</strong> of theme <strong>%2$s</strong> to be installed. You only have <strong>%3$s</strong> please update the parent theme.', 'themecheck'), $data['Template Version'], $parent_data['Title'], $parent_data['Version'] ) . '</p>';
 
 
 
 
 
63
  }
64
- echo '<p>' . sprintf(__( 'This is a child theme. The parent theme is: <strong>%1$s</strong>. These files have been included automatically!', 'themecheck'), $data[ 'Template' ] ) . '</p>';
 
 
 
65
  if ( empty( $data['Template Version'] ) ) {
66
- echo '<p>' . __('Child theme does not have the <strong>Template Version</strong> tag in style.css.', 'themecheck') . '</p>';
67
  } else {
68
- echo ( $data['Template Version'] < $parent_data['Version'] ) ? '<p>' . sprintf(__('Child theme is only tested up to version %1$s of %2$s breakage may occur! %3$s installed version is %4$s', 'themecheck'), $data['Template Version'], $parent_data['Title'], $parent_data['Title'], $parent_data['Version'] ) . '</p>' : '';
69
  }
70
  }
71
  echo '</div><!-- .theme-info-->';
72
-
73
  $plugins = get_plugins( '/theme-check' );
74
  $version = explode( '.', $plugins['theme-check.php']['Version'] );
75
- echo '<p>' . sprintf(__(' Running <strong>%1$s</strong> tests against <strong>%2$s</strong> using Guidelines Version: <strong>%3$s</strong> Plugin revision: <strong>%4$s</strong>', 'themecheck'), $checkcount, $data[ 'Title' ], $version[0], $version[1] ) . '</p>';
 
 
 
 
 
 
76
  $results = display_themechecks();
77
- $success = true;
78
- if (strpos( $results, 'WARNING') !== false) $success = false;
79
- if (strpos( $results, 'REQUIRED') !== false) $success = false;
80
- if ( $success === false ) {
81
- echo '<h2>' . sprintf(__('One or more errors were found for %1$s.', 'themecheck'), $data[ 'Title' ] ) . '</h2>';
82
  } else {
83
- echo '<h2>' . sprintf(__('%1$s passed the tests', 'themecheck'), $data[ 'Title' ] ) . '</h2>';
84
  tc_success();
85
  }
86
- if ( !defined( 'WP_DEBUG' ) || WP_DEBUG == false ) echo '<div class="updated"><span class="tc-fail">WARNING</span> ' . __( '<strong>WP_DEBUG is not enabled!</strong> Please test your theme with <a href="http://codex.wordpress.org/Editing_wp-config.php">debug enabled</a> before you upload!</div>', 'themecheck' );
87
  echo '<div class="tc-box">';
88
  echo '<ul class="tc-result">';
89
  echo $results;
@@ -91,36 +100,57 @@ function check_main( $theme ) {
91
  }
92
  }
93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
 
95
  function tc_intro() {
96
- _e( '<h2>About</h2>', 'themecheck' );
97
- _e( '<p>The theme check plugin is an easy way to test your theme and make sure it\'s up to spec with the latest theme review standards.<br />', 'themecheck' );
98
- _e( 'With it, you can run all the same automated testing tools on your theme that WordPress.org uses for theme submissions.</p>', 'themecheck' );
99
- _e( '<h2>Contact</h2>', 'themecheck' );
100
- _e( '<p>Theme-Check is maintained by <a href="http://profiles.wordpress.org/users/pross/">Pross</a> and <a href="http://profiles.wordpress.org/users/otto42/">Otto42</a><br />', 'themecheck' );
101
- _e( 'If you have found a bug or would like to make a suggestion or contribution why not join the <a href="http://wordpress.org/extend/themes/contact/">theme-reviewers mailing list</a><br />', 'themecheck' );
102
- _e( 'or leave a post on the <a href="http://wordpress.org/tags/theme-check?forum_id=10">WordPress forums</a>.<br /></p>', 'themecheck' );
103
- echo '<form action="https://www.paypal.com/cgi-bin/webscr" method="post"><input type="hidden" name="cmd" value="_s-xclick" /><input type="hidden" name="hosted_button_id" value="2V7F4QYMWMBL6" /><input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" name="submit" alt="PayPal - The safer, easier way to pay online!" /><img alt="" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" /></form>';
104
- _e( '<h2>Contributors</h2>', 'themecheck' );
105
- _e( '<h3>localization</h3>', 'themecheck' );
106
- echo '<ul>';
107
- echo '<li><a href="http://www.onedesigns.com/">Daniel Tara</a></li>';
108
- echo '<li><a href="http://themeid.com/">Emil Uzelac</a></li>';
109
- echo '</ul>';
110
- _e( '<h3>Testers</h3>', 'themecheck' );
111
- _e( '<p><a href="http://make.wordpress.org/themes/">The WordPress Theme Review Team</a></p>', 'themecheck' );
112
  }
113
 
114
  function tc_success() {
115
- _e( '<div class="tc-success"><p>Now your theme has passed the basic tests you need to check it properly using the test data before you upload to the WordPress Themes Directory.</p>', 'themecheck' );
116
- echo '<form action="https://www.paypal.com/cgi-bin/webscr" method="post"><input type="hidden" name="cmd" value="_s-xclick" /><input type="hidden" name="hosted_button_id" value="2V7F4QYMWMBL6" /><input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" name="submit" alt="PayPal - The safer, easier way to pay online!" /><img alt="" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" /></form>';
117
- _e( '<p>Make sure to review the guidelines at <a href="http://codex.wordpress.org/Theme_Review">Theme Review</a> before uploading a Theme.</p>', 'themecheck' );
118
- _e( '<h3>Codex Links</h3>', 'themecheck' );
119
- echo '<ul>';
120
- _e( '<li><a href="http://codex.wordpress.org/Theme_Development">Theme Development</a></li>', 'themecheck' );
121
- _e( '<li><a href="http://wordpress.org/support/forum/5">Themes and Templates forum</a></li>', 'themecheck' );
122
- _e( '<li><a href="http://codex.wordpress.org/Theme_Unit_Test">Theme Unit Tests</a></li>', 'themecheck' );
123
- echo '</ul></div>';
 
124
  }
125
 
126
  function tc_form() {
@@ -130,15 +160,15 @@ function tc_form() {
130
  foreach( $themes as $name => $location ) {
131
  echo '<option ';
132
  if ( isset( $_POST['themename'] ) ) {
133
- echo ( $location['Stylesheet'] === $_POST['themename'] ) ? 'selected="selected" ' : '';
134
  } else {
135
  echo ( basename( STYLESHEETPATH ) === $location['Stylesheet'] ) ? 'selected="selected" ' : '';
136
  }
137
  echo ( basename( STYLESHEETPATH ) === $location['Stylesheet'] ) ? 'value="' . $location['Stylesheet'] . '" style="font-weight:bold;">' . $name . '</option>' : 'value="' . $location['Stylesheet'] . '">' . $name . '</option>';
138
  }
139
  echo '</select>';
140
- echo '<input class="button" type="submit" value="' . __( 'Check it!', 'themecheck' ) . '" />';
141
- if ( defined( 'TC_PRE' ) || defined( 'TC_POST' ) ) echo ' <input name="trac" type="checkbox" /> ' . __( 'Output in Trac format.', 'themecheck' );
142
- echo ' <input name="s_info" type="checkbox" /> ' . __( 'Suppress INFO.', 'themecheck' );
143
  echo '</form>';
144
- }
9
  // This is a child theme, so we need to pull files from the parent, which HAS to be installed.
10
  $parent = get_theme_root( $data[ 'Template' ] ) . '/' . $data['Template'];
11
  if ( ! tc_get_theme_data( $parent . '/style.css' ) ) { // This should never happen but we will check while were here!
12
+ echo '<h2>' . sprintf(__('Parent theme %1$s not found! You have to have parent AND child-theme installed!', 'theme-check'), '<strong>' . $data[ 'Template' ] . '</strong>' ) . '</h2>';
13
  return;
14
  }
15
  $parent_data = tc_get_theme_data( $parent . '/style.css' );
19
 
20
  if ( $files ) {
21
  foreach( $files as $key => $filename ) {
22
+ if ( substr( $filename, -4 ) == '.php' && ! is_dir( $filename ) ) {
23
+ $php[$filename] = file_get_contents( $filename );
24
+ $php[$filename] = tc_strip_comments( $php[$filename] );
25
  }
26
+ else if ( substr( $filename, -4 ) == '.css' && ! is_dir( $filename ) ) {
27
  $css[$filename] = file_get_contents( $filename );
28
  }
29
  else {
32
  }
33
 
34
  // run the checks
35
+ $success = run_themechecks($php, $css, $other);
36
 
37
  global $checkcount;
38
 
39
  // second loop, to display the errors
40
+ echo '<h2>' . __( 'Theme Info', 'theme-check' ) . ': </h2>';
41
  echo '<div class="theme-info">';
42
  if (file_exists( trailingslashit( WP_CONTENT_DIR . '/themes' ) . trailingslashit( basename( $theme ) ) . 'screenshot.png' ) ) {
43
  $image = getimagesize( $theme . '/screenshot.png' );
44
+ echo '<div style="float:right" class="theme-info"><img style="max-height:180px;" src="' . trailingslashit( WP_CONTENT_URL . '/themes' ) . trailingslashit( basename( $theme ) ) . 'screenshot.png" />';
45
+ echo '<br /><div style="text-align:center">' . $image[0] . 'x' . $image[1] . ' ' . round( filesize( $theme . '/screenshot.png' )/1024 ) . 'k</div></div>';
 
 
 
 
46
  }
47
+
48
+ echo ( !empty( $data[ 'Title' ] ) ) ? '<p><label>' . __( 'Title', 'theme-check' ) . '</label><span class="info">' . $data[ 'Title' ] . '</span></p>' : '';
49
+ echo ( !empty( $data[ 'Version' ] ) ) ? '<p><label>' . __( 'Version', 'theme-check' ) . '</label><span class="info">' . $data[ 'Version' ] . '</span></p>' : '';
50
+ echo ( !empty( $data[ 'AuthorName' ] ) ) ? '<p><label>' . __( 'Author', 'theme-check' ) . '</label><span class="info">' . $data[ 'AuthorName' ] . '</span></p>' : '';
51
+ echo ( !empty( $data[ 'AuthorURI' ] ) ) ? '<p><label>' . __( 'Author URI', 'theme-check' ) . '</label><span class="info"><a href="' . $data[ 'AuthorURI' ] . '">' . $data[ 'AuthorURI' ] . '</a>' . '</span></p>' : '';
52
+ echo ( !empty( $data[ 'URI' ] ) ) ? '<p><label>' . __( 'Theme URI', 'theme-check' ) . '</label><span class="info"><a href="' . $data[ 'URI' ] . '">' . $data[ 'URI' ] . '</a>' . '</span></p>' : '';
53
+ echo ( !empty( $data[ 'License' ] ) ) ? '<p><label>' . __( 'License', 'theme-check' ) . '</label><span class="info">' . $data[ 'License' ] . '</span></p>' : '';
54
+ echo ( !empty( $data[ 'License URI' ] ) ) ? '<p><label>' . __( 'License URI', 'theme-check' ) . '</label><span class="info">' . $data[ 'License URI' ] . '</span></p>' : '';
55
+ echo ( !empty( $data[ 'Tags' ] ) ) ? '<p><label>' . __( 'Tags', 'theme-check' ) . '</label><span class="info">' . implode( $data[ 'Tags' ], ', ') . '</span></p>' : '';
56
+ echo ( !empty( $data[ 'Description' ] ) ) ? '<p><label>' . __( 'Description', 'theme-check' ) . '</label><span class="info">' . $data[ 'Description' ] . '</span></p>' : '';
57
 
58
  if ( $data[ 'Template' ] ) {
59
  if ( $data['Template Version'] > $parent_data['Version'] ) {
60
+ echo '<p>' . sprintf(
61
+ __('This child theme requires at least version %1$s of theme %2$s to be installed. You only have %3$s please update the parent theme.', 'theme-check'),
62
+ '<strong>' . $data['Template Version'] . '</strong>',
63
+ '<strong>' . $parent_data['Title'] . '</strong>',
64
+ '<strong>' . $parent_data['Version'] . '</strong>'
65
+ ) . '</p>';
66
  }
67
+ echo '<p>' . sprintf(
68
+ __( 'This is a child theme. The parent theme is: %s. These files have been included automatically!', 'theme-check'),
69
+ '<strong>' . $data[ 'Template' ] . '</strong>'
70
+ ) . '</p>';
71
  if ( empty( $data['Template Version'] ) ) {
72
+ echo '<p>' . __('Child theme does not have the <strong>Template Version</strong> tag in style.css.', 'theme-check') . '</p>';
73
  } else {
74
+ echo ( $data['Template Version'] < $parent_data['Version'] ) ? '<p>' . sprintf(__('Child theme is only tested up to version %1$s of %2$s breakage may occur! %3$s installed version is %4$s', 'theme-check'), $data['Template Version'], $parent_data['Title'], $parent_data['Title'], $parent_data['Version'] ) . '</p>' : '';
75
  }
76
  }
77
  echo '</div><!-- .theme-info-->';
78
+
79
  $plugins = get_plugins( '/theme-check' );
80
  $version = explode( '.', $plugins['theme-check.php']['Version'] );
81
+ echo '<p>' . sprintf(
82
+ __(' Running %1$s tests against %2$s using Guidelines Version: %3$s Plugin revision: %4$s', 'theme-check'),
83
+ '<strong>' . $checkcount . '</strong>',
84
+ '<strong>' . $data[ 'Title' ] . '</strong>',
85
+ '<strong>' . $version[0] . '</strong>',
86
+ '<strong>' . $version[1] . '</strong>'
87
+ ) . '</p>';
88
  $results = display_themechecks();
89
+ if ( !$success ) {
90
+ echo '<h2>' . sprintf(__('One or more errors were found for %1$s.', 'theme-check'), $data[ 'Title' ] ) . '</h2>';
 
 
 
91
  } else {
92
+ echo '<h2>' . sprintf(__('%1$s passed the tests', 'theme-check'), $data[ 'Title' ] ) . '</h2>';
93
  tc_success();
94
  }
95
+ if ( !defined( 'WP_DEBUG' ) || WP_DEBUG == false ) echo '<div class="updated"><span class="tc-fail">' . __('WARNING','theme-check') . '</span> ' . __( '<strong>WP_DEBUG is not enabled!</strong> Please test your theme with <a href="https://codex.wordpress.org/Editing_wp-config.php">debug enabled</a> before you upload!', 'theme-check' ) . '</div>';
96
  echo '<div class="tc-box">';
97
  echo '<ul class="tc-result">';
98
  echo $results;
100
  }
101
  }
102
 
103
+ // strip comments from a PHP file in a way that will not change the underlying structure of the file
104
+ function tc_strip_comments( $code ) {
105
+ $strip = array( T_COMMENT => true, T_DOC_COMMENT => true);
106
+ $newlines = array( "\n" => true, "\r" => true );
107
+ $tokens = token_get_all($code);
108
+ reset($tokens);
109
+ $return = '';
110
+ $token = current($tokens);
111
+ while( $token ) {
112
+ if( !is_array($token) ) {
113
+ $return.= $token;
114
+ } elseif( !isset( $strip[ $token[0] ] ) ) {
115
+ $return.= $token[1];
116
+ } else {
117
+ for( $i = 0, $token_length = strlen($token[1]); $i < $token_length; ++$i )
118
+ if( isset($newlines[ $token[1][$i] ]) )
119
+ $return.= $token[1][$i];
120
+ }
121
+ $token = next($tokens);
122
+ }
123
+ return $return;
124
+ }
125
+
126
 
127
  function tc_intro() {
128
+ ?>
129
+ <h2><?php _e( 'About', 'theme-check' ); ?></h2>
130
+ <p><?php _e( "The Theme Check plugin is an easy way to test your theme and make sure it's up to date with the latest theme review standards. With it, you can run all the same automated testing tools on your theme that WordPress.org uses for theme submissions.", 'theme-check' ); ?></p>
131
+ <h2><?php _e( 'Contact', 'theme-check' ); ?></h2>
132
+ <p><?php printf( __( 'Theme Check is maintained by %1$s and %2$s.', 'theme-check' ),
133
+ '<a href="https://profiles.wordpress.org/otto42/">Otto42</a>',
134
+ '<a href="https://profiles.wordpress.org/pross/">Pross</a>'
135
+ ); ?></p>
136
+ <p><?php printf( __( 'If you have found a bug or would like to make a suggestion or contribution, please leave a post on the <a href="%1$s">WordPress forums</a>, or talk about it with the theme review team on <a href="%2$s">Make WordPress Themes</a> site.', 'theme-check' ), 'https://wordpress.org/tags/theme-check?forum_id=10', 'https://make.wordpress.org/themes/') ; ?></p>
137
+ <p><?php printf( __( 'The code for Theme Check can be contributed to on <a href="%s">GitHub</a>.', 'theme-check' ), 'https://github.com/Otto42/theme-check'); ?></p>
138
+ <h3><?php _e( 'Testers', 'theme-check' ); ?></h3>
139
+ <p><a href="https://make.wordpress.org/themes/"><?php _e( 'The WordPress Theme Review Team', 'theme-check' ); ?></a></p>
140
+ <?php
 
 
 
141
  }
142
 
143
  function tc_success() {
144
+ ?>
145
+ <div class="tc-success"><p><?php _e( 'Now your theme has passed the basic tests you need to check it properly using the test data before you upload to the WordPress Themes Directory.', 'theme-check' ); ?></p>
146
+ <p><?php _e( 'Make sure to review the guidelines at <a href="https://codex.wordpress.org/Theme_Review">Theme Review</a> before uploading a Theme.', 'theme-check' ); ?></p>
147
+ <h3><?php _e( 'Codex Links', 'theme-check' ); ?></h3>
148
+ <ul>
149
+ <li><a href="https://codex.wordpress.org/Theme_Development"><?php _e('Theme Development', 'theme-check' ); ?></a></li>
150
+ <li><a href="https://wordpress.org/support/forum/5"><?php _e('Themes and Templates forum', 'theme-check' ); ?></a></li>
151
+ <li><a href="https://codex.wordpress.org/Theme_Unit_Test"><?php _e('Theme Unit Tests', 'theme-check' ); ?></a></li>
152
+ </ul></div>
153
+ <?php
154
  }
155
 
156
  function tc_form() {
160
  foreach( $themes as $name => $location ) {
161
  echo '<option ';
162
  if ( isset( $_POST['themename'] ) ) {
163
+ echo ( $location['Stylesheet'] === $_POST['themename'] ) ? 'selected="selected" ' : '';
164
  } else {
165
  echo ( basename( STYLESHEETPATH ) === $location['Stylesheet'] ) ? 'selected="selected" ' : '';
166
  }
167
  echo ( basename( STYLESHEETPATH ) === $location['Stylesheet'] ) ? 'value="' . $location['Stylesheet'] . '" style="font-weight:bold;">' . $name . '</option>' : 'value="' . $location['Stylesheet'] . '">' . $name . '</option>';
168
  }
169
  echo '</select>';
170
+ echo '<input class="button" type="submit" value="' . __( 'Check it!', 'theme-check' ) . '" />';
171
+ if ( defined( 'TC_PRE' ) || defined( 'TC_POST' ) ) echo ' <input name="trac" type="checkbox" /> ' . __( 'Output in Trac format.', 'theme-check' );
172
+ echo '<input name="s_info" type="checkbox" /> ' . __( 'Suppress INFO.', 'theme-check' );
173
  echo '</form>';
174
+ }
readme.txt CHANGED
@@ -1,18 +1,17 @@
1
- === Theme-Check ===
2
- Contributors: pross, Otto42
3
- Author URI: http://www.pross.org.uk
4
- Plugin URL: http://www.pross.org.uk/plugins
5
- Requires at Least: 3.0
6
- Tested Up To: 3.4
7
  Tags: template, theme, check, checker, tool, wordpress, wordpress.org, upload, uploader, test, guideline, review
8
- Stable tag: 20120823
9
-
10
 
11
  A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!
12
 
13
  == Description ==
14
 
15
- The theme check plugin is an easy way to test your theme and make sure it's up to spec with the latest [theme review](http://codex.wordpress.org/Theme_Review) standards. With it, you can run all the same automated testing tools on your theme that WordPress.org uses for theme submissions.
16
 
17
  The tests are run through a simple admin menu and all results are displayed at once. This is very handy for theme developers, or anybody looking to make sure that their theme supports the latest WordPress theme standards and practices.
18
 
@@ -20,17 +19,17 @@ The tests are run through a simple admin menu and all results are displayed at o
20
 
21
  = What's with the version numbers? =
22
 
23
- The version number is the date of the revision of the [guidelines](http://codex.wordpress.org/Theme_Review) used to create it.
24
 
25
  = Why does it flag something as bad? =
26
 
27
- It's not flagging "bad" things, as such. The theme check is designed to be a non-perfect way to test for compliance with the [Theme Review](http://codex.wordpress.org/Theme_Review) guidelines. Not all themes must adhere to these guidelines. The purpose of the checking tool is to ensure that themes uploaded to the central [WordPress.org theme repository](http://wordpress.org/extend/themes/) meet the latest standards of WordPress themes and will work on a wide variety of sites.
28
 
29
  Many sites use customized themes, and that's perfectly okay. But themes that are intended for use on many different kinds of sites by the public need to have a certain minimum level of capabilities, in order to ensure proper functioning in many different environments. The Theme Review guidelines are created with that goal in mind.
30
 
31
  This theme checker is not perfect, and never will be. It is only a tool to help theme authors, or anybody else who wants to make their theme more capable. All themes submitted to WordPress.org are hand-reviewed by a team of experts. The automated theme checker is meant to be a useful tool only, not an absolute system of measurement.
32
 
33
- This plugin does not decide the guidelines used. Any issues with particular theme review guidelines should be discussed on the [Theme Reviewers mailing list](http://lists.wordpress.org/mailman/listinfo/theme-reviewers).
34
 
35
  == Other Notes ==
36
 
@@ -55,6 +54,35 @@ comments, or feedback:[[br]]
55
  If **either** of these two vars are defined a new trac tickbox will appear next to the *Check it!* button.
56
 
57
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
  = 20110805.1 =
60
  * TimThumb checks removed.
1
+ === Theme Check ===
2
+ Contributors: Otto42, pross
3
+ Author URI: http://ottopress.com/
4
+ Plugin URL: http://ottopress.com/wordpress-plugins/theme-check/
5
+ Requires at Least: 3.7
6
+ Tested Up To: 4.9
7
  Tags: template, theme, check, checker, tool, wordpress, wordpress.org, upload, uploader, test, guideline, review
8
+ Stable tag: 20160523.1
 
9
 
10
  A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!
11
 
12
  == Description ==
13
 
14
+ The theme check plugin is an easy way to test your theme and make sure it's up to spec with the latest [theme review](https://make.wordpress.org/themes/handbook/review/) standards. With it, you can run all the same automated testing tools on your theme that WordPress.org uses for theme submissions.
15
 
16
  The tests are run through a simple admin menu and all results are displayed at once. This is very handy for theme developers, or anybody looking to make sure that their theme supports the latest WordPress theme standards and practices.
17
 
19
 
20
  = What's with the version numbers? =
21
 
22
+ The version number is the date of the revision of the [guidelines](https://make.wordpress.org/themes/handbook/review/) used to create it.
23
 
24
  = Why does it flag something as bad? =
25
 
26
+ It's not flagging "bad" things, as such. The theme check is designed to be a non-perfect way to test for compliance with the [Theme Review](https://make.wordpress.org/themes/handbook/review/) guidelines. Not all themes must adhere to these guidelines. The purpose of the checking tool is to ensure that themes uploaded to the central [WordPress.org theme repository](http://wordpress.org/themes/) meet the latest standards of WordPress themes and will work on a wide variety of sites.
27
 
28
  Many sites use customized themes, and that's perfectly okay. But themes that are intended for use on many different kinds of sites by the public need to have a certain minimum level of capabilities, in order to ensure proper functioning in many different environments. The Theme Review guidelines are created with that goal in mind.
29
 
30
  This theme checker is not perfect, and never will be. It is only a tool to help theme authors, or anybody else who wants to make their theme more capable. All themes submitted to WordPress.org are hand-reviewed by a team of experts. The automated theme checker is meant to be a useful tool only, not an absolute system of measurement.
31
 
32
+ This plugin does not decide the guidelines used. Any issues with particular theme review guidelines should be discussed on the [Make Themes site](https://make.wordpress.org/themes).
33
 
34
  == Other Notes ==
35
 
54
  If **either** of these two vars are defined a new trac tickbox will appear next to the *Check it!* button.
55
 
56
  == Changelog ==
57
+ = 20160523.1 =
58
+ * Fix for theme-names with dashes in them
59
+ * Comments stripping changes
60
+ * Many changes by the theme review team and others. See Github for full change list.
61
+
62
+ = 20151211.1 =
63
+ * Full sync with Github and all the changes that have happened there.
64
+ * Release for 4.4 deprecated functions.
65
+
66
+ = 20140929.1 =
67
+ * Added new checks and updates from Frank Klein at Automattic. Thanks Frank!
68
+ * Updated deprecated function listings
69
+ * Customizer check: All add_settings must use sanitization callbacks, for security
70
+ * Plugin territory checks: Themes must not register post types or taxonomies or add shortcodes for post content
71
+ * Widgets: Calls to register_sidebar must be called from the widgets_init action hook
72
+ * Title: <title> tags must exist and not have anything in them other than a call to wp_title()
73
+ * CDN: Checks for use of common CDNs (recommended only)
74
+ * Note: Changed plugin and author URIs due to old URIs being invalid. These may change again in the future, the URIs to my own site are temporarily only.
75
+
76
+ = 20131213.1 =
77
+ * Corrected errors not being displayed by the plugin and it incorrectly giving a "pass" result to everything.
78
+
79
+ = 20131212.1 =
80
+ * Updated for 3.8
81
+ * Most files have changed for better I18N support, so the language files were removed temporarily until translation can be redone.
82
+
83
+ = 20121211.1 =
84
+ * Updated for 3.5
85
+ * Remove Paypal button.
86
 
87
  = 20110805.1 =
88
  * TimThumb checks removed.
theme-check.php CHANGED
@@ -1,57 +1,72 @@
1
  <?php
2
  /*
3
- Plugin Name: Theme-Check
4
- Plugin URI: http://pross.org.uk/plugins
5
  Description: A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!
6
- Author: Pross
7
- Author URI: http://pross.org.uk
8
- Version: 20120823.1
 
 
 
9
  */
10
 
11
- add_action( 'admin_init', 'tc_i18n' );
12
-
13
- function tc_i18n() {
14
- load_plugin_textdomain( 'themecheck', false, 'theme-check/lang' );
15
- }
16
 
17
- function load_styles() {
18
- wp_enqueue_style('style', WP_PLUGIN_URL . '/theme-check/style.css', null, null, 'screen');
19
- }
20
 
21
- add_action( 'admin_menu', 'themecheck_add_page' );
22
- function themecheck_add_page() {
23
- $page = add_theme_page( 'Theme Check', 'Theme Check', 'manage_options', 'themecheck', 'themecheck_do_page' );
24
- add_action('admin_print_styles-' . $page, 'load_styles');
25
- }
26
 
27
- function tc_add_headers( $extra_headers ) {
28
- $extra_headers = array( 'License', 'License URI', 'Template Version' );
29
- return $extra_headers;
30
- }
31
 
32
- function themecheck_do_page() {
33
- if ( !current_user_can( 'manage_options' ) ) {
34
- wp_die( __( 'You do not have sufficient permissions to access this page.', 'themecheck' ) );
35
  }
36
 
37
- add_filter( 'extra_theme_headers', 'tc_add_headers' );
 
 
 
38
 
39
- include 'checkbase.php';
40
- include 'main.php';
41
 
42
- echo '<div id="theme-check" class="wrap">';
43
- echo '<div id="icon-themes" class="icon32"><br /></div><h2>Theme-Check</h2>';
44
- echo '<div class="theme-check">';
45
- tc_form();
46
- if ( !isset( $_POST[ 'themename' ] ) ) {
47
- tc_intro();
48
 
49
- }
 
 
 
 
 
 
 
 
 
50
 
51
- if ( isset( $_POST[ 'themename' ] ) ) {
52
- if ( isset( $_POST[ 'trac' ] ) ) define( 'TC_TRAC', true );
53
- check_main( $_POST[ 'themename' ] );
 
 
 
 
 
 
 
 
54
  }
55
- echo '</div> <!-- .theme-check-->';
56
- echo '</div>';
57
  }
 
1
  <?php
2
  /*
3
+ Plugin Name: Theme Check
4
+ Plugin URI: http://ottopress.com/wordpress-plugins/theme-check/
5
  Description: A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!
6
+ Author: Otto42, pross
7
+ Author URI: http://ottopress.com
8
+ Version: 20160523.1
9
+ Text Domain: theme-check
10
+ License: GPLv2
11
+ License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
  */
13
 
14
+ class ThemeCheckMain {
15
+ function __construct() {
16
+ add_action( 'admin_init', array( $this, 'tc_i18n' ) );
17
+ add_action( 'admin_menu', array( $this, 'themecheck_add_page' ) );
18
+ }
19
 
20
+ function tc_i18n() {
21
+ load_plugin_textdomain( 'theme-check', false, dirname( plugin_basename( __FILE__ ) ) . '/lang/' );
22
+ }
23
 
24
+ function load_styles() {
25
+ wp_enqueue_style('style', plugins_url( 'assets/style.css', __FILE__ ), null, null, 'screen');
26
+ }
 
 
27
 
28
+ function themecheck_add_page() {
29
+ $page = add_theme_page( 'Theme Check', 'Theme Check', 'manage_options', 'themecheck', array( $this, 'themecheck_do_page' ) );
30
+ add_action('admin_print_styles-' . $page, array( $this, 'load_styles' ) );
31
+ }
32
 
33
+ function tc_add_headers( $extra_headers ) {
34
+ $extra_headers = array( 'License', 'License URI', 'Template Version' );
35
+ return $extra_headers;
36
  }
37
 
38
+ function themecheck_do_page() {
39
+ if ( !current_user_can( 'manage_options' ) ) {
40
+ wp_die( __( 'You do not have sufficient permissions to access this page.', 'theme-check' ) );
41
+ }
42
 
43
+ add_filter( 'extra_theme_headers', array( $this, 'tc_add_headers' ) );
 
44
 
45
+ include 'checkbase.php';
46
+ include 'main.php';
 
 
 
 
47
 
48
+ ?>
49
+ <div id="theme-check" class="wrap">
50
+ <h1><?php _ex( 'Theme Check', 'title of the main page', 'theme-check' ); ?></h1>
51
+ <div class="theme-check">
52
+ <?php
53
+ tc_form();
54
+ if ( !isset( $_POST[ 'themename' ] ) ) {
55
+ tc_intro();
56
+
57
+ }
58
 
59
+ if ( isset( $_POST[ 'themename' ] ) ) {
60
+ if ( isset( $_POST[ 'trac' ] ) ) define( 'TC_TRAC', true );
61
+ if ( defined( 'WP_MAX_MEMORY_LIMIT' ) ) {
62
+ @ini_set( 'memory_limit', WP_MAX_MEMORY_LIMIT );
63
+ }
64
+ check_main( $_POST[ 'themename' ] );
65
+ }
66
+ ?>
67
+ </div> <!-- .theme-check-->
68
+ </div>
69
+ <?php
70
  }
 
 
71
  }
72
+ new ThemeCheckMain;