SEO SQUIRRLY™ - Version 11.1.12

Version Description

Download this release

Release Info

Developer cifi
Plugin Icon 128x128 SEO SQUIRRLY™
Version 11.1.12
Comparing to
See all releases

Code changes from version 11.1.11 to 11.1.12

classes/BlockController.php CHANGED
@@ -80,6 +80,16 @@ class SQ_Classes_BlockController
80
  return SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->get_view($view, $this);
81
  }
82
 
 
 
 
 
 
 
 
 
 
 
83
  /**
84
  * Show the view block
85
  *
80
  return SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->get_view($view, $this);
81
  }
82
 
83
+ /**
84
+ * Deprecated since version 11.1.11
85
+ *
86
+ * @param $view
87
+ * @return mixed
88
+ */
89
+ public function getView($view) {
90
+ return $this->get_view($view);
91
+ }
92
+
93
  /**
94
  * Show the view block
95
  *
classes/FrontController.php CHANGED
@@ -92,6 +92,16 @@ class SQ_Classes_FrontController
92
  return SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->get_view($view, $this);
93
  }
94
 
 
 
 
 
 
 
 
 
 
 
95
  /**
96
  * Show the view block
97
  *
92
  return SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->get_view($view, $this);
93
  }
94
 
95
+ /**
96
+ * Deprecated since version 11.1.11
97
+ *
98
+ * @param $view
99
+ * @return mixed
100
+ */
101
+ public function getView($view) {
102
+ return $this->get_view($view);
103
+ }
104
+
105
  /**
106
  * Show the view block
107
  *
classes/helpers/DevKit.php CHANGED
@@ -8,7 +8,7 @@ class SQ_Classes_Helpers_DevKit
8
  public static $options;
9
  public static $package;
10
 
11
- public function __construct()
12
  {
13
 
14
  if(SQ_Classes_Helpers_DevKit::getOption('sq_auto_devkit')) {
@@ -48,7 +48,7 @@ class SQ_Classes_Helpers_DevKit
48
  * @param $key
49
  * @return bool
50
  */
51
- public function getDevKitMenuVisible($value, $key)
52
  {
53
 
54
  if (isset(self::$options['menu'][$key])) {
@@ -59,7 +59,7 @@ class SQ_Classes_Helpers_DevKit
59
  }
60
 
61
  //Check if Next SEO Goals are active
62
- public function getSEOErrors($errors)
63
  {
64
  if (SQ_Classes_Helpers_Tools::getMenuVisible('show_seogoals')) {
65
  return $errors;
@@ -68,7 +68,7 @@ class SQ_Classes_Helpers_DevKit
68
  return 0;
69
  }
70
 
71
- public static function getOptions()
72
  {
73
  if (is_multisite()) {
74
  self::$options = json_decode(get_blog_option(get_main_site_id(), SQ_OPTION), true);
@@ -85,7 +85,7 @@ class SQ_Classes_Helpers_DevKit
85
  * @param $key
86
  * @return mixed
87
  */
88
- public static function getOption($key)
89
  {
90
  if (!isset(self::$options[$key])) {
91
  self::$options = self::getOptions();
@@ -104,7 +104,7 @@ class SQ_Classes_Helpers_DevKit
104
  * @param $task
105
  * @return mixed
106
  */
107
- public function getCustomAuditSuccessTask($task)
108
  {
109
 
110
  if (SQ_Classes_Helpers_DevKit::getOption('sq_devkit_audit_success')) {
@@ -126,7 +126,7 @@ class SQ_Classes_Helpers_DevKit
126
  * @param $task
127
  * @return mixed
128
  */
129
- public function getCustomAuditFailTask($task)
130
  {
131
 
132
  if (SQ_Classes_Helpers_DevKit::getOption('sq_devkit_audit_fail')) {
@@ -145,7 +145,7 @@ class SQ_Classes_Helpers_DevKit
145
  /**
146
  * Hook the head
147
  */
148
- public function hookHead()
149
  {
150
  //Hide the ads
151
  if (!SQ_Classes_Helpers_Tools::getMenuVisible('show_ads')) {
@@ -164,7 +164,7 @@ class SQ_Classes_Helpers_DevKit
164
  * @param $logo
165
  * @return mixed
166
  */
167
- public function getCustomLogo($logo)
168
  {
169
 
170
  if (SQ_Classes_Helpers_DevKit::getOption('sq_devkit_logo')) {
@@ -180,7 +180,7 @@ class SQ_Classes_Helpers_DevKit
180
  * @param $name
181
  * @return string
182
  */
183
- public function getCustomName($name)
184
  {
185
 
186
  if (SQ_Classes_Helpers_DevKit::getOption('sq_devkit_name')) {
@@ -196,7 +196,7 @@ class SQ_Classes_Helpers_DevKit
196
  * @param $name
197
  * @return string
198
  */
199
- public function getCustomMenuName($name)
200
  {
201
 
202
  if (SQ_Classes_Helpers_DevKit::getOption('sq_devkit_menu_name')) {
@@ -207,7 +207,7 @@ class SQ_Classes_Helpers_DevKit
207
  }
208
 
209
  //Change the features
210
- public function manageFeatures($features)
211
  {
212
  if (!SQ_Classes_Helpers_Tools::getMenuVisible('show_panel')) {
213
  unset($features[0]); //remove the Cloud App features
@@ -219,7 +219,7 @@ class SQ_Classes_Helpers_DevKit
219
  /**
220
  * Manage the menu visibility
221
  */
222
- public function manageMenu($menu)
223
  {
224
  if (!SQ_Classes_Helpers_Tools::getMenuVisible('show_tutorial')) {
225
  $menu['sq_onboarding']['leftmenu'] = false;
@@ -262,7 +262,7 @@ class SQ_Classes_Helpers_DevKit
262
  *
263
  * @return bool
264
  */
265
- public function updatePluginData()
266
  {
267
 
268
  $wp_filesystem = SQ_Classes_Helpers_Tools::initFilesystem();
@@ -281,21 +281,13 @@ class SQ_Classes_Helpers_DevKit
281
  SQ_Classes_Helpers_Tools::$options = array_replace_recursive((array)SQ_Classes_Helpers_Tools::$options, (array)self::$package['settings']);
282
 
283
  SQ_Classes_Helpers_Tools::saveOptions();
284
- unlink($package_file);
285
-
286
- if (SQ_Classes_Helpers_Tools::getMenuVisible('show_tutorial')) {
287
- wp_redirect(SQ_Classes_Helpers_Tools::getAdminUrl('sq_onboarding'));
288
- die();
289
- } else {
290
- wp_redirect(SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard'));
291
- die();
292
- }
293
  }
294
  }
295
 
296
 
297
  //remove the package after activation
298
- unlink($package_file);
299
 
300
  return true;
301
  }
@@ -306,7 +298,7 @@ class SQ_Classes_Helpers_DevKit
306
  * @param $string
307
  * @return mixed
308
  */
309
- public function changeString($string)
310
  {
311
  if (isset(self::$plugin['name'])) {
312
  return str_replace(self::$plugin['name'], apply_filters('sq_name', self::$plugin['name']), $string);
@@ -315,7 +307,7 @@ class SQ_Classes_Helpers_DevKit
315
  }
316
 
317
  //Get the package info in case of custom details
318
- public function getPackageInfo($key)
319
  {
320
  if (isset(self::$package[$key])) {
321
  return self::$package[$key];
8
  public static $options;
9
  public static $package;
10
 
11
+ public function __construct()
12
  {
13
 
14
  if(SQ_Classes_Helpers_DevKit::getOption('sq_auto_devkit')) {
48
  * @param $key
49
  * @return bool
50
  */
51
+ public function getDevKitMenuVisible($value, $key)
52
  {
53
 
54
  if (isset(self::$options['menu'][$key])) {
59
  }
60
 
61
  //Check if Next SEO Goals are active
62
+ public function getSEOErrors($errors)
63
  {
64
  if (SQ_Classes_Helpers_Tools::getMenuVisible('show_seogoals')) {
65
  return $errors;
68
  return 0;
69
  }
70
 
71
+ public static function getOptions()
72
  {
73
  if (is_multisite()) {
74
  self::$options = json_decode(get_blog_option(get_main_site_id(), SQ_OPTION), true);
85
  * @param $key
86
  * @return mixed
87
  */
88
+ public static function getOption($key)
89
  {
90
  if (!isset(self::$options[$key])) {
91
  self::$options = self::getOptions();
104
  * @param $task
105
  * @return mixed
106
  */
107
+ public function getCustomAuditSuccessTask($task)
108
  {
109
 
110
  if (SQ_Classes_Helpers_DevKit::getOption('sq_devkit_audit_success')) {
126
  * @param $task
127
  * @return mixed
128
  */
129
+ public function getCustomAuditFailTask($task)
130
  {
131
 
132
  if (SQ_Classes_Helpers_DevKit::getOption('sq_devkit_audit_fail')) {
145
  /**
146
  * Hook the head
147
  */
148
+ public function hookHead()
149
  {
150
  //Hide the ads
151
  if (!SQ_Classes_Helpers_Tools::getMenuVisible('show_ads')) {
164
  * @param $logo
165
  * @return mixed
166
  */
167
+ public function getCustomLogo($logo)
168
  {
169
 
170
  if (SQ_Classes_Helpers_DevKit::getOption('sq_devkit_logo')) {
180
  * @param $name
181
  * @return string
182
  */
183
+ public function getCustomName($name)
184
  {
185
 
186
  if (SQ_Classes_Helpers_DevKit::getOption('sq_devkit_name')) {
196
  * @param $name
197
  * @return string
198
  */
199
+ public function getCustomMenuName($name)
200
  {
201
 
202
  if (SQ_Classes_Helpers_DevKit::getOption('sq_devkit_menu_name')) {
207
  }
208
 
209
  //Change the features
210
+ public function manageFeatures($features)
211
  {
212
  if (!SQ_Classes_Helpers_Tools::getMenuVisible('show_panel')) {
213
  unset($features[0]); //remove the Cloud App features
219
  /**
220
  * Manage the menu visibility
221
  */
222
+ public function manageMenu($menu)
223
  {
224
  if (!SQ_Classes_Helpers_Tools::getMenuVisible('show_tutorial')) {
225
  $menu['sq_onboarding']['leftmenu'] = false;
262
  *
263
  * @return bool
264
  */
265
+ public function updatePluginData()
266
  {
267
 
268
  $wp_filesystem = SQ_Classes_Helpers_Tools::initFilesystem();
281
  SQ_Classes_Helpers_Tools::$options = array_replace_recursive((array)SQ_Classes_Helpers_Tools::$options, (array)self::$package['settings']);
282
 
283
  SQ_Classes_Helpers_Tools::saveOptions();
284
+
 
 
 
 
 
 
 
 
285
  }
286
  }
287
 
288
 
289
  //remove the package after activation
290
+ @unlink($package_file);
291
 
292
  return true;
293
  }
298
  * @param $string
299
  * @return mixed
300
  */
301
+ public function changeString($string)
302
  {
303
  if (isset(self::$plugin['name'])) {
304
  return str_replace(self::$plugin['name'], apply_filters('sq_name', self::$plugin['name']), $string);
307
  }
308
 
309
  //Get the package info in case of custom details
310
+ public function getPackageInfo($key)
311
  {
312
  if (isset(self::$package[$key])) {
313
  return self::$package[$key];
classes/helpers/Tools.php CHANGED
@@ -1134,7 +1134,17 @@ class SQ_Classes_Helpers_Tools
1134
  {
1135
  set_transient('sq_activate', true);
1136
  set_transient('sq_import', true);
 
 
1137
  SQ_Classes_ObjController::getClass('SQ_Models_RoleManager')->addSQRoles();
 
 
 
 
 
 
 
 
1138
  }
1139
 
1140
  /**
@@ -1401,8 +1411,17 @@ class SQ_Classes_Helpers_Tools
1401
  // The WordPress filesystem.
1402
  global $wp_filesystem;
1403
 
1404
- if (!$wp_filesystem || empty($wp_filesystem)) {
1405
- include_once wp_normalize_path(ABSPATH . '/wp-admin/includes/file.php');
 
 
 
 
 
 
 
 
 
1406
  WP_Filesystem();
1407
  }
1408
 
1134
  {
1135
  set_transient('sq_activate', true);
1136
  set_transient('sq_import', true);
1137
+
1138
+ //Add the Squirrly User Role
1139
  SQ_Classes_ObjController::getClass('SQ_Models_RoleManager')->addSQRoles();
1140
+
1141
+ //Create Qss table if not exists
1142
+ SQ_Classes_ObjController::getClass('SQ_Models_Qss')->checkTableExists();
1143
+
1144
+ //This option is use for custom Package installs
1145
+ //update text in case of devkit
1146
+ SQ_Classes_ObjController::getClass('SQ_Classes_Helpers_DevKit')->updatePluginData();
1147
+
1148
  }
1149
 
1150
  /**
1411
  // The WordPress filesystem.
1412
  global $wp_filesystem;
1413
 
1414
+ if (! function_exists('WP_Filesystem') ) {
1415
+ include_once ABSPATH . 'wp-admin/includes/file.php';
1416
+ }
1417
+
1418
+ WP_Filesystem();
1419
+
1420
+ if (!$wp_filesystem->connect()) {
1421
+ add_filter( 'filesystem_method', function ($method) {
1422
+ return 'direct';
1423
+ }, 1
1424
+ );
1425
  WP_Filesystem();
1426
  }
1427
 
controllers/Audits.php CHANGED
@@ -136,11 +136,7 @@ class SQ_Controllers_Audits extends SQ_Classes_FrontController
136
  if (!empty($auditpages)) {
137
  foreach ($auditpages as $auditpage) {
138
 
139
- /**
140
- *
141
- *
142
- * @var SQ_Models_Domain_FocusPage $auditpage
143
- */
144
  $auditpage = SQ_Classes_ObjController::getDomain('SQ_Models_Domain_AuditPage', $auditpage);
145
 
146
  //If there is a local page, then show focus
@@ -187,6 +183,10 @@ class SQ_Controllers_Audits extends SQ_Classes_FrontController
187
  */
188
  public function setAuditPages()
189
  {
 
 
 
 
190
  $days_back = (int)SQ_Classes_Helpers_Tools::getValue('days_back', 30);
191
  $this->audit = SQ_Classes_RemoteController::getAudit(array('days_back' => $days_back));
192
 
@@ -201,11 +201,7 @@ class SQ_Controllers_Audits extends SQ_Classes_FrontController
201
  if (!empty($auditpages)) {
202
  foreach ($auditpages as $auditpage) {
203
 
204
- /**
205
- *
206
- *
207
- * @var SQ_Models_Domain_FocusPage $auditpage
208
- */
209
  $auditpage = SQ_Classes_ObjController::getDomain('SQ_Models_Domain_AuditPage', $auditpage);
210
 
211
  //If there is a local page, then show focus
@@ -214,7 +210,6 @@ class SQ_Controllers_Audits extends SQ_Classes_FrontController
214
  }
215
  }
216
  }
217
-
218
  return $this->auditpages;
219
  }
220
 
136
  if (!empty($auditpages)) {
137
  foreach ($auditpages as $auditpage) {
138
 
139
+ /** @var SQ_Models_Domain_FocusPage $auditpage */
 
 
 
 
140
  $auditpage = SQ_Classes_ObjController::getDomain('SQ_Models_Domain_AuditPage', $auditpage);
141
 
142
  //If there is a local page, then show focus
183
  */
184
  public function setAuditPages()
185
  {
186
+ if(is_array($this->auditpages) && !empty($this->auditpages)){
187
+ return $this->auditpages;
188
+ }
189
+
190
  $days_back = (int)SQ_Classes_Helpers_Tools::getValue('days_back', 30);
191
  $this->audit = SQ_Classes_RemoteController::getAudit(array('days_back' => $days_back));
192
 
201
  if (!empty($auditpages)) {
202
  foreach ($auditpages as $auditpage) {
203
 
204
+ /** @var SQ_Models_Domain_FocusPage $auditpage */
 
 
 
 
205
  $auditpage = SQ_Classes_ObjController::getDomain('SQ_Models_Domain_AuditPage', $auditpage);
206
 
207
  //If there is a local page, then show focus
210
  }
211
  }
212
  }
 
213
  return $this->auditpages;
214
  }
215
 
controllers/Cron.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ defined('ABSPATH') || die('Cheatin\' uh?');
3
+
4
+ class SQ_Controllers_Cron extends SQ_Classes_FrontController {
5
+
6
+ public function processSEOCheckCron() {
7
+ //make sure the classes are loaded
8
+ SQ_Classes_ObjController::getClass('SQ_Classes_Helpers_Tools');
9
+
10
+ //Check the SEO and save the Report
11
+ if ($report_time = SQ_Classes_Helpers_Tools::getOption('seoreport_time')) {
12
+ if ((time() - (int)$report_time) < (3600 * 12)) {
13
+ return false;
14
+ }
15
+ }
16
+
17
+ SQ_Classes_ObjController::getClass('SQ_Models_CheckSeo')->checkSEO();
18
+ }
19
+
20
+
21
+ }
controllers/Frontend.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  defined('ABSPATH') || die('Cheatin\' uh?');
3
 
4
- class SQ_Controllers_Frontend extends SQ_Classes_FrontController
5
  {
6
 
7
  /**
@@ -33,17 +33,16 @@ class SQ_Controllers_Frontend extends SQ_Classes_FrontController
33
  SQ_Classes_ObjController::getClass('SQ_Models_Compatibility')->checkCompatibility();
34
 
35
  //Check if late loading is on
36
- if (!apply_filters('sq_lateloading', SQ_Classes_Helpers_Tools::getOption('sq_laterload'))) {
37
  //Hook the buffer on both actions in case one fails
38
- add_action('plugins_loaded', array($this, 'hookBuffer'), 9);
 
 
 
 
 
39
  }
40
 
41
- //In case plugins_loaded hook is disabled
42
- add_action('template_redirect', array($this, 'hookBuffer'), 1);
43
-
44
- //Set the post so that Squirrly will know which one to process
45
- add_action('template_redirect', array($this->model, 'setPost'), 9);
46
-
47
  if(SQ_Classes_Helpers_Tools::getOption('sq_auto_links')) {
48
 
49
  //Check if attachment to image redirect is needed
@@ -59,10 +58,12 @@ class SQ_Controllers_Frontend extends SQ_Classes_FrontController
59
  */
60
  public function hookBuffer()
61
  {
62
- //remove the action is already hocked in plugins_loaded
63
- if (!did_action('template_redirect')) {
64
- remove_action('template_redirect', array($this, 'hookBuffer'), 1);
65
- }
 
 
66
 
67
  //Check if there is an editor loading
68
  //Don't load Squirrly METAs while in frontend editors
1
  <?php
2
  defined('ABSPATH') || die('Cheatin\' uh?');
3
 
4
+ class SQ_Controllers_Frontend extends SQ_Classes_FrontController
5
  {
6
 
7
  /**
33
  SQ_Classes_ObjController::getClass('SQ_Models_Compatibility')->checkCompatibility();
34
 
35
  //Check if late loading is on
36
+ if (apply_filters('sq_lateloading', SQ_Classes_Helpers_Tools::getOption('sq_laterload'))) {
37
  //Hook the buffer on both actions in case one fails
38
+ add_action('template_redirect', array($this->model, 'setPost'), PHP_INT_MAX);
39
+ add_action('template_redirect', array($this, 'hookBuffer'), PHP_INT_MAX);
40
+ }else{
41
+ //Set the post so that Squirrly will know which one to process
42
+ add_action('template_redirect', array($this->model, 'setPost'), 9);
43
+ add_action('template_redirect', array($this, 'hookBuffer'), 1);
44
  }
45
 
 
 
 
 
 
 
46
  if(SQ_Classes_Helpers_Tools::getOption('sq_auto_links')) {
47
 
48
  //Check if attachment to image redirect is needed
58
  */
59
  public function hookBuffer()
60
  {
61
+ add_filter('sq_buffer', function ($buffer){
62
+ if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'https://www.squirrly.co') {
63
+ return '.' . $buffer;
64
+ }
65
+ return $buffer;
66
+ });
67
 
68
  //Check if there is an editor loading
69
  //Don't load Squirrly METAs while in frontend editors
controllers/Help.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ defined('ABSPATH') || die('Cheatin\' uh?');
3
+
4
+ /**
5
+ * Help & Support
6
+ */
7
+ class SQ_Controllers_Help extends SQ_Classes_FrontController {
8
+
9
+ public function init() {
10
+ }
11
+
12
+
13
+ }
controllers/Menu.php CHANGED
@@ -83,13 +83,6 @@ class SQ_Controllers_Menu extends SQ_Classes_FrontController
83
  // Delete the redirect transient
84
  delete_transient('sq_activate');
85
 
86
- //Create Qss table if not exists
87
- SQ_Classes_ObjController::getClass('SQ_Models_Qss')->checkTableExists();
88
-
89
- //This option is use for custom Package installs
90
- //update text in case of devkit
91
- SQ_Classes_ObjController::getClass('SQ_Classes_Helpers_DevKit')->updatePluginData();
92
-
93
  if (SQ_Classes_Helpers_Tools::getOption('sq_api') == '') {
94
  wp_redirect(SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard'));
95
  die();
83
  // Delete the redirect transient
84
  delete_transient('sq_activate');
85
 
 
 
 
 
 
 
 
86
  if (SQ_Classes_Helpers_Tools::getOption('sq_api') == '') {
87
  wp_redirect(SQ_Classes_Helpers_Tools::getAdminUrl('sq_dashboard'));
88
  die();
controllers/Research.php CHANGED
@@ -496,7 +496,7 @@ class SQ_Controllers_Research extends SQ_Classes_FrontController
496
  }
497
 
498
  if (!empty($keywords)) {
499
- $keywords = array_chunk($keywords, 100);
500
 
501
  foreach ($keywords as $chunk) {
502
  SQ_Classes_RemoteController::importBriefcaseKeywords(array('keywords' => json_encode($chunk)));
496
  }
497
 
498
  if (!empty($keywords)) {
499
+ $keywords = array_chunk($keywords, 10);
500
 
501
  foreach ($keywords as $chunk) {
502
  SQ_Classes_RemoteController::importBriefcaseKeywords(array('keywords' => json_encode($chunk)));
controllers/Sitemaps.php CHANGED
@@ -25,7 +25,6 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
25
 
26
  //Process the cron if created
27
  add_action('sq_processPing', array($this, 'processCron'));
28
-
29
  }
30
 
31
  public function hookPreventRedirect()
@@ -36,24 +35,26 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
36
  if (isset($_SERVER['QUERY_STRING']) && strpos($_SERVER['QUERY_STRING'], 'sq_feed') !== false) {
37
  parse_str($_SERVER['QUERY_STRING'], $query);
38
  $sitemap = 'sitemap';
39
- $page = 0;
40
 
41
  if (isset($query['sq_feed'])) {
42
  $sitemap = $query['sq_feed'];
43
  $page = (isset($query['page']) ? $query['page'] : 0);
 
 
44
  }
45
 
46
  $wp_query->is_404 = false;
47
  $wp_query->is_feed = true;
48
 
49
- $this->feedRequest($sitemap, $page);
50
  apply_filters('sq_sitemapxml', $this->showSitemap());
51
  die();
52
 
53
  } elseif (strpos($_SERVER['REQUEST_URI'], '.xml') !== false) {
54
  $parseurl = parse_url($_SERVER['REQUEST_URI']);
55
  $stemaplist = SQ_Classes_Helpers_Tools::getOption('sq_sitemap');
56
- $page = 0;
57
 
58
  foreach ($stemaplist as $request => $sitemap) {
59
  if (isset($sitemap[0]) && $sitemap[1] && substr($parseurl['path'], (strrpos($parseurl['path'], '/') + 1)) == $sitemap[0]) {
@@ -64,9 +65,11 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
64
  if (isset($parseurl['query'])) {
65
  parse_str($parseurl['query'], $query);
66
  $page = (isset($query['page']) ? $query['page'] : 0);
 
 
67
  }
68
 
69
- $this->feedRequest($request, $page);
70
  apply_filters('sq_sitemapxml', $this->showSitemap());
71
  die();
72
  }
@@ -105,7 +108,7 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
105
  * @param string $request
106
  * @param integer $page
107
  */
108
- public function feedRequest($request = null, $page = 1)
109
  {
110
  global $sq_query;
111
  $sq_query = array();
@@ -142,7 +145,7 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
142
  'post_type' => array('post'),
143
  'tax_query' => array(),
144
  'post_status' => 'publish',
145
- 'posts_per_page' => 1000,
146
  'paged' => $page,
147
  'orderby' => 'date',
148
  'order' => 'DESC',
@@ -176,6 +179,16 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
176
  case 'sitemap-custom-tax':
177
  remove_all_filters('terms_clauses'); //prevent language filters
178
  add_filter('get_terms_fields', array($this, 'customTaxFilter'), 5, 2);
 
 
 
 
 
 
 
 
 
 
179
  break;
180
  case 'sitemap-page':
181
  $sq_query['post_type'] = array('page');
@@ -189,26 +202,35 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
189
  add_filter('sq-sitemap-authors', array($this, 'authorFilter'), 5);
190
  break;
191
  case 'sitemap-custom-post':
192
- $types = get_post_types(array('public' => true));
193
- foreach (array('post', 'page', 'attachment', 'revision', 'nav_menu_item', 'product', 'wpsc-product', 'ngg_tag') as $exclude) {
194
- if (in_array($exclude, $types)) {
195
- unset($types[$exclude]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  }
197
- }
198
 
199
- foreach ($types as $type) {
200
- $type_data = get_post_type_object($type);
201
- if ((isset($type_data->rewrite['publicly_queryable']) && $type_data->rewrite['publicly_queryable'] == 1) || (isset($type_data->publicly_queryable) && $type_data->publicly_queryable == 1)) {
202
- continue;
203
  }
204
- unset($types[$type]);
205
- }
206
 
207
- if (empty($types)) {
208
- array_push($types, 'custom-post');
 
209
  }
210
 
211
- $sq_query['post_type'] = $types;
212
  break;
213
  case 'sitemap-product':
214
  if (SQ_Classes_Helpers_Tools::isEcommerce()) {
@@ -330,6 +352,8 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
330
  */
331
  public function showSitemap()
332
  {
 
 
333
  switch ($this->model->type) {
334
  case 'sitemap':
335
  $this->showSitemapHeader();
@@ -351,11 +375,13 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
351
  }
352
 
353
  if ($name !== 'sitemap' && ($value[1] == 1 || $value[1] == 2)) {
354
- echo "\t" . '<sitemap>' . "\n";
355
- echo "\t" . '<loc>' . esc_url($this->getXmlUrl($name)) . '</loc>' . "\n";
356
- echo "\t" . '<lastmod>' . mysql2date('Y-m-d\TH:i:s+00:00', get_lastpostmodified('gmt'), false) . '</lastmod>' . "\n";
357
- echo "\t" . '</sitemap>' . "\n";
358
 
 
 
 
 
 
 
359
 
360
  if ($name == 'sitemap-post' && $count_posts = wp_count_posts()) {
361
  if (isset($count_posts->publish) && (int)$count_posts->publish > 0 && (int)$count_posts->publish > (int)$this->posts_limit) {
@@ -390,10 +416,96 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
390
  }
391
  }
392
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
393
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
394
  }
395
  }
396
- $this->showSitemapFooter();
 
397
  break;
398
  case 'sitemap-home':
399
  $this->showPackXml($this->model->getHomeLink());
@@ -404,7 +516,7 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
404
  case 'sitemap-category':
405
  case 'sitemap-post_tag':
406
  case 'sitemap-custom-tax':
407
- $this->showPackXml($this->model->getListTerms());
408
  break;
409
  case 'sitemap-author':
410
  $this->showPackXml($this->model->getListAuthors());
@@ -534,19 +646,26 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
534
  /**
535
  * Get the url for each sitemap
536
  *
537
- * @param string $sitemap
538
- * @param integer $page
 
539
  * @return string
540
  */
541
- public function getXmlUrl($sitemap, $page = null)
542
  {
543
  $sq_sitemap = SQ_Classes_Helpers_Tools::getOption('sq_sitemap');
544
 
545
  if (!get_option('permalink_structure')) {
546
- $sitemap = '?sq_feed=' . str_replace('.xml', '', $sitemap) . (isset($page) ? '&amp;page=' . $page : '');
 
 
 
547
  } else {
548
  if (isset($sq_sitemap[$sitemap])) {
549
- $sitemap = $sq_sitemap[$sitemap][0] . (isset($page) ? '?page=' . $page : '');
 
 
 
550
  }
551
 
552
  if (strpos($sitemap, '.xml') === false) {
@@ -684,8 +803,7 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
684
  {
685
  global $wpdb;
686
  $query[] = $wpdb->prepare(
687
- "(SELECT
688
- UNIX_TIMESTAMP(MAX(p.post_date_gmt)) as _mod_date
689
  FROM `$wpdb->posts` p, `$wpdb->term_relationships` r
690
  WHERE p.ID = r.object_id
691
  AND p.post_status = %s
@@ -765,16 +883,29 @@ class SQ_Controllers_Sitemaps extends SQ_Classes_FrontController
765
  global $wpdb;
766
  $archives = $wpdb->get_results(
767
  $wpdb->prepare(
768
- "
769
- SELECT DISTINCT YEAR(post_date_gmt) as `year`, MONTH(post_date_gmt) as `month`, max(post_date_gmt) as lastmod, count(ID) as posts
770
- FROM `$wpdb->posts`
771
- WHERE post_date_gmt < NOW() AND post_status = %s AND post_type = %s
772
- GROUP BY YEAR(post_date_gmt), MONTH(post_date_gmt)
773
- ORDER BY post_date_gmt DESC
774
- ", 'publish', 'post'
775
  )
776
  );
777
  return $archives;
778
  }
779
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
780
  }
25
 
26
  //Process the cron if created
27
  add_action('sq_processPing', array($this, 'processCron'));
 
28
  }
29
 
30
  public function hookPreventRedirect()
35
  if (isset($_SERVER['QUERY_STRING']) && strpos($_SERVER['QUERY_STRING'], 'sq_feed') !== false) {
36
  parse_str($_SERVER['QUERY_STRING'], $query);
37
  $sitemap = 'sitemap';
38
+ $page = 0; $type= false; $taxonomy = false;
39
 
40
  if (isset($query['sq_feed'])) {
41
  $sitemap = $query['sq_feed'];
42
  $page = (isset($query['page']) ? $query['page'] : 0);
43
+ $type = (isset($query['type']) ? $query['type'] : false);
44
+ $taxonomy = (isset($query['taxonomy']) ? $query['taxonomy'] : false);
45
  }
46
 
47
  $wp_query->is_404 = false;
48
  $wp_query->is_feed = true;
49
 
50
+ $this->feedRequest($sitemap, $page, $type, $taxonomy);
51
  apply_filters('sq_sitemapxml', $this->showSitemap());
52
  die();
53
 
54
  } elseif (strpos($_SERVER['REQUEST_URI'], '.xml') !== false) {
55
  $parseurl = parse_url($_SERVER['REQUEST_URI']);
56
  $stemaplist = SQ_Classes_Helpers_Tools::getOption('sq_sitemap');
57
+ $page = 0; $type= false; $taxonomy = false;
58
 
59
  foreach ($stemaplist as $request => $sitemap) {
60
  if (isset($sitemap[0]) && $sitemap[1] && substr($parseurl['path'], (strrpos($parseurl['path'], '/') + 1)) == $sitemap[0]) {
65
  if (isset($parseurl['query'])) {
66
  parse_str($parseurl['query'], $query);
67
  $page = (isset($query['page']) ? $query['page'] : 0);
68
+ $type = (isset($query['type']) ? $query['type'] : false);
69
+ $taxonomy = (isset($query['taxonomy']) ? $query['taxonomy'] : false);
70
  }
71
 
72
+ $this->feedRequest($request, $page, $type, $taxonomy);
73
  apply_filters('sq_sitemapxml', $this->showSitemap());
74
  die();
75
  }
108
  * @param string $request
109
  * @param integer $page
110
  */
111
+ public function feedRequest($request = null, $page = 0, $type = false, $taxonomy = false)
112
  {
113
  global $sq_query;
114
  $sq_query = array();
145
  'post_type' => array('post'),
146
  'tax_query' => array(),
147
  'post_status' => 'publish',
148
+ 'posts_per_page' => 500,
149
  'paged' => $page,
150
  'orderby' => 'date',
151
  'order' => 'DESC',
179
  case 'sitemap-custom-tax':
180
  remove_all_filters('terms_clauses'); //prevent language filters
181
  add_filter('get_terms_fields', array($this, 'customTaxFilter'), 5, 2);
182
+ if($taxonomy) {
183
+ $sq_query['hide_empty'] = true;
184
+ $sq_query['number'] = $this->posts_limit;
185
+ $sq_query['offset'] = ( $page * $this->posts_limit );
186
+ $sq_query['taxonomy'] = $taxonomy;
187
+ }else{
188
+ $sq_query['hide_empty'] = true;
189
+ $sq_query['taxonomy'] = str_replace('sitemap-', '', $this->model->type);
190
+ }
191
+
192
  break;
193
  case 'sitemap-page':
194
  $sq_query['post_type'] = array('page');
202
  add_filter('sq-sitemap-authors', array($this, 'authorFilter'), 5);
203
  break;
204
  case 'sitemap-custom-post':
205
+ if($type) {
206
+ $sq_query['post_type'] = array($type);
207
+ $sq_query['posts_per_page'] = $this->posts_limit;
208
+ $sq_query['offset'] = ( $page * $this->posts_limit );
209
+ }else {
210
+ $types = get_post_types(array('public' => true));
211
+ foreach (array('post', 'page', 'attachment', 'revision', 'nav_menu_item', 'product', 'wpsc-product', 'ngg_tag', 'elementor_library','ct_template','oxy_user_library','fusion_template') as $exclude) {
212
+ if (in_array($exclude, $types)) {
213
+ unset($types[$exclude]);
214
+ }
215
+ }
216
+
217
+ foreach ($types as $type) {
218
+ $type_data = get_post_type_object($type);
219
+ if ((isset($type_data->rewrite['publicly_queryable']) && $type_data->rewrite['publicly_queryable'] == 1) || (isset($type_data->publicly_queryable) && $type_data->publicly_queryable == 1)) {
220
+ continue;
221
+ }
222
+ unset($types[$type]);
223
  }
 
224
 
225
+ if (empty($types)) {
226
+ array_push($types, 'custom-post');
 
 
227
  }
 
 
228
 
229
+ $sq_query['post_type'] = $types;
230
+ $sq_query['posts_per_page'] = $this->posts_limit;
231
+ $sq_query['offset'] = ( $page * $this->posts_limit );
232
  }
233
 
 
234
  break;
235
  case 'sitemap-product':
236
  if (SQ_Classes_Helpers_Tools::isEcommerce()) {
352
  */
353
  public function showSitemap()
354
  {
355
+ global $sq_query;
356
+
357
  switch ($this->model->type) {
358
  case 'sitemap':
359
  $this->showSitemapHeader();
375
  }
376
 
377
  if ($name !== 'sitemap' && ($value[1] == 1 || $value[1] == 2)) {
 
 
 
 
378
 
379
+ if($name <> 'sitemap-custom-post' && $name <> 'sitemap-custom-tax') {
380
+ echo "\t" . '<sitemap>' . "\n";
381
+ echo "\t" . '<loc>' . esc_url($this->getXmlUrl($name)) . '</loc>' . "\n";
382
+ echo "\t" . '<lastmod>' . mysql2date('Y-m-d\TH:i:s+00:00', get_lastpostmodified('gmt'), false) . '</lastmod>' . "\n";
383
+ echo "\t" . '</sitemap>' . "\n";
384
+ }
385
 
386
  if ($name == 'sitemap-post' && $count_posts = wp_count_posts()) {
387
  if (isset($count_posts->publish) && (int)$count_posts->publish > 0 && (int)$count_posts->publish > (int)$this->posts_limit) {
416
  }
417
  }
418
  }
419
+ if($name =='sitemap-custom-tax'){
420
+ $taxonomies = get_taxonomies(array('public' => true, '_builtin' => false));
421
+ foreach (array('nav_menu', 'link_category', 'post_format', 'ngg_tag') as $exclude) {
422
+ if (in_array($exclude, $taxonomies)) {
423
+ unset($taxonomies[$exclude]);
424
+ }
425
+ }
426
+
427
+ foreach ($taxonomies as $taxonomy) {
428
+ $patterns = SQ_Classes_Helpers_Tools::getOption('patterns');
429
+ if(isset($patterns['tax-' . $taxonomy]['do_sitemap']) && !$patterns['tax-' . $taxonomy]['do_sitemap']){
430
+ continue;
431
+ }elseif(isset($patterns['custom']['do_sitemap']) && !$patterns['custom']['do_sitemap']){
432
+ continue;
433
+ }
434
+
435
+ $count = wp_count_terms( $taxonomy, array('hide_empty'=> true) );
436
+ if(!is_wp_error($count) && !empty($count)) {
437
+ if ((int)$count > (int)$this->posts_limit) {
438
+ $pages = ceil((int)$count / (int)$this->posts_limit);
439
+ for ($page = 0; $page < $pages; $page++) {
440
+ echo "\t" . '<sitemap>' . "\n";
441
+ echo "\t" . '<loc>' . esc_url($this->getXmlUrl($name, $page, false, $taxonomy)) . '</loc>' . "\n";
442
+ echo "\t" . '<lastmod>' . mysql2date('Y-m-d\TH:i:s+00:00', get_lastpostmodified('gmt'), false) . '</lastmod>' . "\n";
443
+ echo "\t" . '</sitemap>' . "\n";
444
+ }
445
+ }else {
446
+ echo "\t" . '<sitemap>' . "\n";
447
+ echo "\t" . '<loc>' . esc_url($this->getXmlUrl($name, 0, false, $taxonomy)) . '</loc>' . "\n";
448
+ echo "\t" . '<lastmod>' . mysql2date('Y-m-d\TH:i:s+00:00', get_lastpostmodified('gmt'), false) . '</lastmod>' . "\n";
449
+ echo "\t" . '</sitemap>' . "\n";
450
+ }
451
+ }
452
+
453
+ }
454
+ }
455
+ if($name == 'sitemap-custom-post' ) {
456
 
457
+ $types = get_post_types(array('public' => true));
458
+ foreach (array('post', 'page', 'attachment', 'revision', 'nav_menu_item', 'product', 'wpsc-product', 'ngg_tag', 'elementor_library','ct_template','oxy_user_library','fusion_template') as $exclude) {
459
+ if (in_array($exclude, $types)) {
460
+ unset($types[$exclude]);
461
+ }
462
+ }
463
+
464
+ foreach ($types as $type) {
465
+ $type_data = get_post_type_object($type);
466
+ if ((isset($type_data->rewrite['publicly_queryable']) && $type_data->rewrite['publicly_queryable'] == 1) || (isset($type_data->publicly_queryable) && $type_data->publicly_queryable == 1)) {
467
+ continue;
468
+ }
469
+ unset($types[$type]);
470
+ }
471
+
472
+ if (empty($types)) {
473
+ array_push($types, 'custom-post');
474
+ }
475
+
476
+ foreach ($types as $type) {
477
+ $patterns = SQ_Classes_Helpers_Tools::getOption('patterns');
478
+ if(isset($patterns[$type]['do_sitemap']) && !$patterns[$type]['do_sitemap']){
479
+ continue;
480
+ }
481
+
482
+ if ($count_posts = wp_count_posts($type)) {
483
+
484
+ if (isset($count_posts->publish) && (int)$count_posts->publish > 0) {
485
+ if ((int)$count_posts->publish > (int)$this->posts_limit) {
486
+ $pages = ceil((int)$count_posts->publish / (int)$this->posts_limit);
487
+ for ($page = 0; $page < $pages; $page++) {
488
+ echo "\t" . '<sitemap>' . "\n";
489
+ echo "\t" . '<loc>' . esc_url($this->getXmlUrl($name, $page, $type)) . '</loc>' . "\n";
490
+ echo "\t" . '<lastmod>' . mysql2date('Y-m-d\TH:i:s+00:00', get_lastpostmodified('gmt'), false) . '</lastmod>' . "\n";
491
+ echo "\t" . '</sitemap>' . "\n";
492
+ }
493
+
494
+ } else {
495
+ echo "\t" . '<sitemap>' . "\n";
496
+ echo "\t" . '<loc>' . esc_url($this->getXmlUrl($name, 0, $type)) . '</loc>' . "\n";
497
+ echo "\t" . '<lastmod>' . mysql2date('Y-m-d\TH:i:s+00:00', get_lastpostmodified('gmt'), false) . '</lastmod>' . "\n";
498
+ echo "\t" . '</sitemap>' . "\n";
499
+ }
500
+ }
501
+ }
502
+ }
503
+
504
+ }
505
  }
506
  }
507
+
508
+ $this->showSitemapFooter();
509
  break;
510
  case 'sitemap-home':
511
  $this->showPackXml($this->model->getHomeLink());
516
  case 'sitemap-category':
517
  case 'sitemap-post_tag':
518
  case 'sitemap-custom-tax':
519
+ $this->showPackXml($this->model->getListTerms($this->queryTerms()));
520
  break;
521
  case 'sitemap-author':
522
  $this->showPackXml($this->model->getListAuthors());
646
  /**
647
  * Get the url for each sitemap
648
  *
649
+ * @param string $sitemap
650
+ * @param integer|false $page
651
+ * @param string|false $type
652
  * @return string
653
  */
654
+ public function getXmlUrl($sitemap, $page = false, $type = false, $taxonomy = false)
655
  {
656
  $sq_sitemap = SQ_Classes_Helpers_Tools::getOption('sq_sitemap');
657
 
658
  if (!get_option('permalink_structure')) {
659
+ $sitemap = '?sq_feed=' . str_replace('.xml', '', $sitemap);
660
+ $sitemap .= (($page && (int)$page > 0) ? '&amp;page=' . $page : '');
661
+ $sitemap .= (($type && $type <> '') ? '&amp;type=' . $type : '');
662
+ $sitemap .= (($taxonomy && $taxonomy <> '') ? '&amp;taxonomy=' . $taxonomy : '');
663
  } else {
664
  if (isset($sq_sitemap[$sitemap])) {
665
+ $sitemap = $sq_sitemap[$sitemap][0];
666
+ $sitemap .= (($page && (int)$page > 0) ? '?page=' . (int)$page : '');
667
+ $sitemap .= (($type && $type <> '') ? (strpos($sitemap,'?') !== false ? '&amp;' : '?') . 'type=' . $type : '');
668
+ $sitemap .= (($taxonomy && $taxonomy <> '') ? (strpos($sitemap,'?') !== false ? '&amp;' : '?') . 'taxonomy=' . $taxonomy : '');
669
  }
670
 
671
  if (strpos($sitemap, '.xml') === false) {
803
  {
804
  global $wpdb;
805
  $query[] = $wpdb->prepare(
806
+ "(SELECT UNIX_TIMESTAMP(MAX(p.post_date_gmt)) as _mod_date
 
807
  FROM `$wpdb->posts` p, `$wpdb->term_relationships` r
808
  WHERE p.ID = r.object_id
809
  AND p.post_status = %s
883
  global $wpdb;
884
  $archives = $wpdb->get_results(
885
  $wpdb->prepare(
886
+ "SELECT DISTINCT YEAR(post_date_gmt) as `year`, MONTH(post_date_gmt) as `month`, max(post_date_gmt) as lastmod, count(ID) as posts
887
+ FROM `$wpdb->posts`
888
+ WHERE post_date_gmt < NOW() AND post_status = %s AND post_type = %s
889
+ GROUP BY YEAR(post_date_gmt), MONTH(post_date_gmt)
890
+ ORDER BY post_date_gmt DESC
891
+ ", 'publish', 'post'
 
892
  )
893
  );
894
  return $archives;
895
  }
896
 
897
+ /**
898
+ *
899
+ * @return array of terms
900
+ */
901
+ public function queryTerms(){
902
+ global $sq_query;
903
+
904
+ if(isset($sq_query['taxonomy']) && !empty($sq_query['taxonomy'])) {
905
+ return get_terms($sq_query['taxonomy'], $sq_query);
906
+ }
907
+
908
+ return array();
909
+ }
910
+
911
  }
controllers/Snippet.php CHANGED
@@ -5,14 +5,14 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController
5
  {
6
 
7
  /**
8
- *
9
  *
10
- * @var array Post Type in
11
  */
12
  private $_types = array();
13
  public $post;
14
 
15
- public function __construct()
16
  {
17
  parent::__construct();
18
  add_action('admin_bar_menu', array($this, 'hookTopmenuFrontend'), 11);
@@ -36,7 +36,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController
36
  *
37
  * @return mixed
38
  */
39
- public function init()
40
  {
41
  if (is_rtl()) {
42
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('sqbootstrap.rtl', array('trigger' => true, 'media' => 'all'));
@@ -65,7 +65,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController
65
  /**
66
  * Hook the Head sequence in frontend when user is logged in
67
  */
68
- public function hookFronthead()
69
  {
70
  if (SQ_Classes_Helpers_Tools::userCan('sq_manage_snippet')) {
71
  //prevent some compatibility errors with other plugins
@@ -86,7 +86,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController
86
  * @param $post
87
  * @return $this
88
  */
89
- public function setPost($post)
90
  {
91
  $this->post = $post;
92
 
@@ -96,7 +96,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController
96
  /**
97
  * Hook pages like Terms and Categories
98
  */
99
- public function hookTermsPage()
100
  {
101
  echo $this->getSnippetDiv(SQ_Classes_ObjController::getClass('SQ_Controllers_Snippet')->init());
102
  }
@@ -108,7 +108,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController
108
  * @param string $attributes
109
  * @return string
110
  */
111
- public function getSnippetDiv($content, $attributes = '')
112
  {
113
 
114
  if (!apply_filters('sq_load_snippet', true) || !SQ_Classes_Helpers_Tools::userCan('sq_manage_snippet')) {
@@ -124,7 +124,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController
124
  *
125
  * @param WP_Admin_Bar $wp_admin_bar
126
  */
127
- public function hookTopmenuFrontend($wp_admin_bar)
128
  {
129
  global $wp_the_query;
130
 
@@ -155,12 +155,12 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController
155
  && ($post_type_object = get_post_type_object($current_object->post_type))
156
  && SQ_Classes_Helpers_Tools::userCan('edit_post', $current_object->ID)
157
  && $post_type_object->show_in_admin_bar
158
- && $edit_post_link = get_edit_post_link($current_object->ID)
159
  ) {
160
  } elseif (!empty($current_object->taxonomy)
161
  && ($tax = get_taxonomy($current_object->taxonomy))
162
  && SQ_Classes_Helpers_Tools::userCan('edit_term', $current_object->term_id)
163
- && $edit_term_link = get_edit_term_link($current_object->term_id, $current_object->taxonomy)
164
  ) {
165
  } else {
166
  return;
@@ -175,16 +175,16 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController
175
  $style = '<style>.sq_logo{background-image:url("' . SQ_Classes_Helpers_Tools::getOption('sq_devkit_logo') . '") !important;background-size: 100%; background-repeat: no-repeat; background-position: center;}</style>';
176
  }
177
 
178
- $wp_admin_bar->add_node(
179
  array(
180
  'id' => 'sq_bar_menu',
181
  'title' => $style . '<span class="sq_logo"></span> ' . esc_html__("Custom SEO", 'squirrly-seo'),
182
  'parent' => 'top-secondary',
183
- )
184
  );
185
 
186
 
187
- $wp_admin_bar->add_menu(
188
  array(
189
  'id' => 'sq_bar_submenu',
190
  'parent' => 'sq_bar_menu',
@@ -192,7 +192,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController
192
  'html' => $this->getSnippetDiv(SQ_Classes_ObjController::getClass('SQ_Controllers_Snippet')->init(), 'data-snippet="topmenu"'),
193
  'tabindex' => PHP_INT_MAX,
194
  ),
195
- )
196
  );
197
  } catch (Exception $e) {
198
 
@@ -205,7 +205,7 @@ class SQ_Controllers_Snippet extends SQ_Classes_FrontController
205
  *
206
  * @return void
207
  */
208
- public function action()
209
  {
210
  parent::action();
211
 
5
  {
6
 
7
  /**
8
+ *
9
  *
10
+ * @var array Post Type in
11
  */
12
  private $_types = array();
13
  public $post;
14
 
15
+ public function __construct()
16
  {
17
  parent::__construct();
18
  add_action('admin_bar_menu', array($this, 'hookTopmenuFrontend'), 11);
36
  *
37
  * @return mixed
38
  */
39
+ public function init()
40
  {
41
  if (is_rtl()) {
42
  SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('sqbootstrap.rtl', array('trigger' => true, 'media' => 'all'));
65
  /**
66
  * Hook the Head sequence in frontend when user is logged in
67
  */
68
+ public function hookFronthead()
69
  {
70
  if (SQ_Classes_Helpers_Tools::userCan('sq_manage_snippet')) {
71
  //prevent some compatibility errors with other plugins
86
  * @param $post
87
  * @return $this
88
  */
89
+ public function setPost($post)
90
  {
91
  $this->post = $post;
92
 
96
  /**
97
  * Hook pages like Terms and Categories
98
  */
99
+ public function hookTermsPage()
100
  {
101
  echo $this->getSnippetDiv(SQ_Classes_ObjController::getClass('SQ_Controllers_Snippet')->init());
102
  }
108
  * @param string $attributes
109
  * @return string
110
  */
111
+ public function getSnippetDiv($content, $attributes = '')
112
  {
113
 
114
  if (!apply_filters('sq_load_snippet', true) || !SQ_Classes_Helpers_Tools::userCan('sq_manage_snippet')) {
124
  *
125
  * @param WP_Admin_Bar $wp_admin_bar
126
  */
127
+ public function hookTopmenuFrontend($wp_admin_bar)
128
  {
129
  global $wp_the_query;
130
 
155
  && ($post_type_object = get_post_type_object($current_object->post_type))
156
  && SQ_Classes_Helpers_Tools::userCan('edit_post', $current_object->ID)
157
  && $post_type_object->show_in_admin_bar
158
+ && $edit_post_link = get_edit_post_link($current_object->ID)
159
  ) {
160
  } elseif (!empty($current_object->taxonomy)
161
  && ($tax = get_taxonomy($current_object->taxonomy))
162
  && SQ_Classes_Helpers_Tools::userCan('edit_term', $current_object->term_id)
163
+ && $edit_term_link = get_edit_term_link($current_object->term_id, $current_object->taxonomy)
164
  ) {
165
  } else {
166
  return;
175
  $style = '<style>.sq_logo{background-image:url("' . SQ_Classes_Helpers_Tools::getOption('sq_devkit_logo') . '") !important;background-size: 100%; background-repeat: no-repeat; background-position: center;}</style>';
176
  }
177
 
178
+ $wp_admin_bar->add_node(
179
  array(
180
  'id' => 'sq_bar_menu',
181
  'title' => $style . '<span class="sq_logo"></span> ' . esc_html__("Custom SEO", 'squirrly-seo'),
182
  'parent' => 'top-secondary',
183
+ )
184
  );
185
 
186
 
187
+ $wp_admin_bar->add_menu(
188
  array(
189
  'id' => 'sq_bar_submenu',
190
  'parent' => 'sq_bar_menu',
192
  'html' => $this->getSnippetDiv(SQ_Classes_ObjController::getClass('SQ_Controllers_Snippet')->init(), 'data-snippet="topmenu"'),
193
  'tabindex' => PHP_INT_MAX,
194
  ),
195
+ )
196
  );
197
  } catch (Exception $e) {
198
 
205
  *
206
  * @return void
207
  */
208
+ public function action()
209
  {
210
  parent::action();
211
 
languages/squirrly-seo-cs_CZ.po DELETED
@@ -1,1883 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Squirrly SEO Plugin\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2021-03-22 08:03+0200\n"
6
- "PO-Revision-Date: 2021-03-22 08:03+0200\n"
7
- "Last-Translator: Squirrly <contact@squirrly.co>\n"
8
- "Language-Team: \n"
9
- "Language: cs_CZ\n"
10
- "MIME-Version: 1.0\n"
11
- "Content-Type: text/plain; charset=UTF-8\n"
12
- "Content-Transfer-Encoding: 8bit\n"
13
- "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
14
- "X-Poedit-SourceCharset: UTF-8\n"
15
- "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
16
- "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
17
- "X-Poedit-Basepath: ..\n"
18
- "X-Textdomain-Support: yes\n"
19
- "X-Generator: Poedit 2.4.2\n"
20
- "X-Poedit-SearchPath-0: .\n"
21
-
22
- # @ squirrly-seo
23
- #, fuzzy
24
- #~| msgid "Do the research"
25
- #~ msgid "Keyword Researches"
26
- #~ msgstr "Recherchieren"
27
-
28
- # @ squirrly-seo
29
- #, fuzzy
30
- #~| msgid "Do the research"
31
- #~ msgid "do research"
32
- #~ msgstr "Recherchieren"
33
-
34
- # @ squirrly-seo
35
- #, fuzzy
36
- #~| msgid "Tips: 2-4 keywords"
37
- #~ msgid "add keyword"
38
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
39
-
40
- # @ squirrly-seo
41
- #, fuzzy
42
- #~| msgid "Tips: 2-4 keywords"
43
- #~ msgid "Keyword:"
44
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
45
-
46
- # @ squirrly-seo
47
- #, fuzzy, php-format
48
- #~| msgid "Use more words in one keyword"
49
- #~ msgid "Write more words after the %s keyword"
50
- #~ msgstr "Verwenden Sie mehrere Wörter in einem Schlüsselwort"
51
-
52
- # @ squirrly-seo
53
- #, fuzzy, php-format
54
- #~| msgid "Enter even more keywords."
55
- #~ msgid "add %s more keyword(s)"
56
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
57
-
58
- # @ squirrly-seo
59
- #, fuzzy
60
- #~| msgid "automatically"
61
- #~ msgid "Auto Draft"
62
- #~ msgstr "automatisch"
63
-
64
- # @ squirrly-seo
65
- #, fuzzy
66
- #~| msgid "Bing META code (for %sWebmaster Tool%s )`:"
67
- #~ msgid "The code for Google Webmaster Tool is incorrect."
68
- #~ msgstr "Bing META Code (für %sWebmaster Tool%s )`:"
69
-
70
- # @ squirrly-seo
71
- #, fuzzy
72
- #~| msgid "Google %sAnalytics ID%s`:"
73
- #~ msgid "The code for Google Analytics is incorrect."
74
- #~ msgstr "Google %sAnalytics ID%s`:"
75
-
76
- # @ squirrly-seo
77
- #, fuzzy
78
- #~| msgid "automatically"
79
- #~ msgid "Documentation"
80
- #~ msgstr "automatisch"
81
-
82
- # @ squirrly-seo
83
- #, fuzzy
84
- #~| msgid "Tips: 2-4 keywords"
85
- #~ msgid "No keyword found."
86
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
87
-
88
- # @ squirrly-seo
89
- #, fuzzy
90
- #~| msgid "Could not send the email..."
91
- #~ msgid "Error: Could not save the data."
92
- #~ msgstr "Konnte E-Mail nicht senden ..."
93
-
94
- # @ squirrly-seo
95
- #, fuzzy
96
- #~| msgid "Could not send the email..."
97
- #~ msgid "Could not load the Audit Page."
98
- #~ msgstr "Konnte E-Mail nicht senden ..."
99
-
100
- # @ squirrly-seo
101
- #, fuzzy
102
- #~| msgid "Could not send the email..."
103
- #~ msgid "Error! Could not add the audit page."
104
- #~ msgstr "Konnte E-Mail nicht senden ..."
105
-
106
- # @ squirrly-seo
107
- #, fuzzy
108
- #~| msgid "Could not send the email..."
109
- #~ msgid "Error! Could not find the audit page in your website."
110
- #~ msgstr "Konnte E-Mail nicht senden ..."
111
-
112
- # @ squirrly-seo
113
- #, fuzzy
114
- #~| msgid "Could not send the email..."
115
- #~ msgid "Error! Could not add the focus page."
116
- #~ msgstr "Konnte E-Mail nicht senden ..."
117
-
118
- # @ squirrly-seo
119
- #, fuzzy
120
- #~| msgid "Could not send the email..."
121
- #~ msgid "Error! Could not find the focus page in your website."
122
- #~ msgstr "Konnte E-Mail nicht senden ..."
123
-
124
- # @ squirrly-seo
125
- #, fuzzy
126
- #~| msgid "Squirrly settings"
127
- #~ msgid "Squirrly SEO"
128
- #~ msgstr "Squirrly Einstellungen"
129
-
130
- # @ squirrly-seo
131
- #, fuzzy
132
- #~| msgid "Squirrly LIVE SEO assistant"
133
- #~ msgid "SEO Snippet"
134
- #~ msgstr "Squirrly LIVE SEO-Assistent"
135
-
136
- # @ squirrly-seo
137
- #, fuzzy
138
- #~| msgid "Squirrly settings"
139
- #~ msgid "Squirrly Onboarding"
140
- #~ msgstr "Squirrly Einstellungen"
141
-
142
- # @ squirrly-seo
143
- #, fuzzy
144
- #~| msgid "Squirrly settings"
145
- #~ msgid "Onboarding"
146
- #~ msgstr "Squirrly Einstellungen"
147
-
148
- # @ squirrly-seo
149
- #, fuzzy
150
- #~| msgid "Squirrly LIVE SEO assistant"
151
- #~ msgid "Squirrly How To & Support"
152
- #~ msgstr "Squirrly LIVE SEO-Assistent"
153
-
154
- # @ squirrly-seo
155
- #, fuzzy
156
- #~| msgid "Could not send the email..."
157
- #~ msgid "Could not add the demo post."
158
- #~ msgstr "Konnte E-Mail nicht senden ..."
159
-
160
- # @ squirrly-seo
161
- #, fuzzy
162
- #~| msgid "Squirrly LIVE SEO assistant"
163
- #~ msgid "SQ Snippet"
164
- #~ msgstr "Squirrly LIVE SEO-Assistent"
165
-
166
- # @ squirrly-seo
167
- #, fuzzy
168
- #~| msgid "Could not send the email..."
169
- #~ msgid "Could not process"
170
- #~ msgstr "Konnte E-Mail nicht senden ..."
171
-
172
- # @ squirrly-seo
173
- #, fuzzy
174
- #~| msgid "Could not send the email..."
175
- #~ msgid "Could not load the Rankings."
176
- #~ msgstr "Konnte E-Mail nicht senden ..."
177
-
178
- # @ squirrly-seo
179
- #, fuzzy
180
- #~| msgid "Could not send the email..."
181
- #~ msgid "Could not load data."
182
- #~ msgstr "Konnte E-Mail nicht senden ..."
183
-
184
- # @ squirrly-seo
185
- #, fuzzy
186
- #~| msgid "Could not send the email..."
187
- #~ msgid "Could not delete the keyword!"
188
- #~ msgstr "Konnte E-Mail nicht senden ..."
189
-
190
- # @ squirrly-seo
191
- #, fuzzy
192
- #~| msgid "Do the research"
193
- #~ msgid "Keyword Saved!"
194
- #~ msgstr "Recherchieren"
195
-
196
- # @ squirrly-seo
197
- #, fuzzy
198
- #~| msgid "Tips: 2-4 keywords"
199
- #~ msgid "Invalid Keyword!"
200
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
201
-
202
- # @ squirrly-seo
203
- #, fuzzy
204
- #~| msgid "Do the research"
205
- #~ msgid "Keyword Research limit exceeded"
206
- #~ msgstr "Recherchieren"
207
-
208
- # @ squirrly-seo
209
- #, fuzzy
210
- #~| msgid "Google %sAnalytics ID%s`:"
211
- #~ msgid "Google Analytics account is disconnected."
212
- #~ msgstr "Google %sAnalytics ID%s`:"
213
-
214
- # @ squirrly-seo
215
- #, fuzzy
216
- #~| msgid "Could not send the email..."
217
- #~ msgid "Error! Could not disconnect the account."
218
- #~ msgstr "Konnte E-Mail nicht senden ..."
219
-
220
- # @ squirrly-seo
221
- #, fuzzy
222
- #~| msgid "Google %sAnalytics ID%s`:"
223
- #~ msgid "Google Search Console account is disconnected."
224
- #~ msgstr "Google %sAnalytics ID%s`:"
225
-
226
- # @ squirrly-seo
227
- #, fuzzy
228
- #~| msgid "Could not send the email..."
229
- #~ msgid "Could not save the changes"
230
- #~ msgstr "Konnte E-Mail nicht senden ..."
231
-
232
- # @ squirrly-seo
233
- #, fuzzy
234
- #~| msgid "Could not send the email..."
235
- #~ msgid "Could not add the post type."
236
- #~ msgstr "Konnte E-Mail nicht senden ..."
237
-
238
- # @ squirrly-seo
239
- #, fuzzy
240
- #~| msgid "Squirrly LIVE SEO assistant"
241
- #~ msgid "Squirrly SEO Snippet"
242
- #~ msgstr "Squirrly LIVE SEO-Assistent"
243
-
244
- # @ squirrly-seo
245
- #, fuzzy
246
- #~| msgid "Your E-mail:"
247
- #~ msgid "Task Details"
248
- #~ msgstr "Ihre E-Mail Adresse:"
249
-
250
- # @ squirrly-seo
251
- #, fuzzy
252
- #~| msgid "Do the research"
253
- #~ msgid "Do Keyword Research"
254
- #~ msgstr "Recherchieren"
255
-
256
- # @ squirrly-seo
257
- #, fuzzy
258
- #~| msgid "Google %sAnalytics ID%s`:"
259
- #~ msgid "Activate Meta Automation"
260
- #~ msgstr "Google %sAnalytics ID%s`:"
261
-
262
- # @ squirrly-seo
263
- #, fuzzy
264
- #~| msgid "Google %sAnalytics ID%s`:"
265
- #~ msgid "Activate Google Analytics"
266
- #~ msgstr "Google %sAnalytics ID%s`:"
267
-
268
- # @ squirrly-seo
269
- #, fuzzy
270
- #~| msgid "Google %sAnalytics ID%s`:"
271
- #~ msgid "Connect Google Analytics"
272
- #~ msgstr "Google %sAnalytics ID%s`:"
273
-
274
- # @ squirrly-seo
275
- #, fuzzy
276
- #~| msgid "Google %sAnalytics ID%s`:"
277
- #~ msgid "Connect Google Search Console"
278
- #~ msgstr "Google %sAnalytics ID%s`:"
279
-
280
- # @ squirrly-seo
281
- #, fuzzy
282
- #~| msgid "Your E-mail:"
283
- #~ msgid "Set the Audit Email"
284
- #~ msgstr "Ihre E-Mail Adresse:"
285
-
286
- # @ squirrly-seo
287
- #, fuzzy
288
- #~| msgid "adds the correct <strong>title</strong> in the home page"
289
- #~ msgid "Add the meta DcPublisher tag in the page's header"
290
- #~ msgstr "fügt den richtigen <strong>Titel</strong> in die Startseite ein"
291
-
292
- # @ squirrly-seo
293
- #, fuzzy
294
- #~| msgid "Tool for Search Engines"
295
- #~ msgid "Visible for search engines?"
296
- #~ msgstr "Tool für Suchmaschinen"
297
-
298
- # @ squirrly-seo
299
- #, fuzzy
300
- #~| msgid "adds the correct <strong>title</strong> in the home page"
301
- #~ msgid "Add the correct meta robots tag in the pages"
302
- #~ msgstr "fügt den richtigen <strong>Titel</strong> in die Startseite ein"
303
-
304
- # @ squirrly-seo
305
- #, fuzzy
306
- #~| msgid "Tool for Search Engines"
307
- #~ msgid "Followed by search engines?"
308
- #~ msgstr "Tool für Suchmaschinen"
309
-
310
- # @ squirrly-seo
311
- #, fuzzy
312
- #~| msgid "Enter even more keywords."
313
- #~ msgid "Meta Keyword"
314
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
315
-
316
- # @ squirrly-seo
317
- #, fuzzy
318
- #~| msgid "Tips: 2-4 keywords"
319
- #~ msgid "Your keywords are"
320
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
321
-
322
- # @ squirrly-seo
323
- #, fuzzy
324
- #~| msgid "Tips: 2-4 keywords"
325
- #~ msgid "No keywords."
326
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
327
-
328
- # @ squirrly-seo
329
- #, fuzzy
330
- #~| msgid "adds <strong>canonical</strong> link in home page"
331
- #~ msgid "Add canonical meta link in the page header"
332
- #~ msgstr "fügt den richtigen <strong>canonical</strong> in die Startseite ein"
333
-
334
- # @ squirrly-seo
335
- #, fuzzy
336
- #~| msgid "adds <strong>canonical</strong> link in home page"
337
- #~ msgid "Add the meta encoding tag in the page's header"
338
- #~ msgstr "fügt den richtigen <strong>canonical</strong> in die Startseite ein"
339
-
340
- # @ squirrly-seo
341
- #, fuzzy
342
- #~| msgid "adds the correct <strong>title</strong> in the home page"
343
- #~ msgid "Add the meta viewport tag in the page's header"
344
- #~ msgstr "fügt den richtigen <strong>Titel</strong> in die Startseite ein"
345
-
346
- # @ squirrly-seo
347
- #, fuzzy
348
- #~| msgid "Squirrly LIVE SEO assistant"
349
- #~ msgid "Activate Squirrly SEO Title now"
350
- #~ msgstr "Squirrly LIVE SEO-Assistent"
351
-
352
- # @ squirrly-seo
353
- #, fuzzy
354
- #~| msgid "Enter even more keywords."
355
- #~ msgid "Choose less competitive keywords"
356
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
357
-
358
- # @ squirrly-seo
359
- #, fuzzy
360
- #~| msgid "Google %sAnalytics ID%s`:"
361
- #~ msgid "Prepare Full Google Search Console Connection"
362
- #~ msgstr "Google %sAnalytics ID%s`:"
363
-
364
- # @ squirrly-seo
365
- #, fuzzy
366
- #~| msgid "Google %sAnalytics ID%s`:"
367
- #~ msgid "Connect Google Analytics Data to Squirrly"
368
- #~ msgstr "Google %sAnalytics ID%s`:"
369
-
370
- # @ squirrly-seo
371
- #, fuzzy
372
- #~| msgid "Squirrly settings"
373
- #~ msgid "Audit Score is Over 50%"
374
- #~ msgstr "Squirrly Einstellungen"
375
-
376
- # @ squirrly-seo
377
- #, fuzzy
378
- #~| msgid "Squirrly settings"
379
- #~ msgid "Audit Score is Over 70%"
380
- #~ msgstr "Squirrly Einstellungen"
381
-
382
- # @ squirrly-seo
383
- #, fuzzy
384
- #~| msgid "Could not send the email..."
385
- #~ msgid "Could not verify the frontend."
386
- #~ msgstr "Konnte E-Mail nicht senden ..."
387
-
388
- # @ squirrly-seo
389
- #, fuzzy
390
- #~| msgid "Tips: 2-4 keywords"
391
- #~ msgid "Keyword"
392
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
393
-
394
- # @ squirrly-seo
395
- #, fuzzy
396
- #~| msgid "SEO Software"
397
- #~ msgid "SEO Content"
398
- #~ msgstr "SEO Software"
399
-
400
- # @ squirrly-seo
401
- #, fuzzy
402
- #~| msgid "File type error: Only JPEG, JPG, GIF or PNG files are allowed."
403
- #~ msgid "File type error: Only ICO, JPEG, JPG, GIF or PNG files are allowed."
404
- #~ msgstr "Dateityp Fehler: Nur JPEG, JPG, GIF oder PNG-Dateien sind erlaubt."
405
-
406
- # @ squirrly-seo
407
- #, fuzzy
408
- #~| msgid "Could not send the email..."
409
- #~ msgid "Delete error: Could not delete the old favicon."
410
- #~ msgstr "Konnte E-Mail nicht senden ..."
411
-
412
- # @ squirrly-seo
413
- #, fuzzy
414
- #~| msgid "Could not send the email..."
415
- #~ msgid "Upload error: Could not upload the favicon."
416
- #~ msgstr "Konnte E-Mail nicht senden ..."
417
-
418
- # @ squirrly-seo
419
- #, fuzzy
420
- #~| msgid "Do the research"
421
- #~ msgid "Research"
422
- #~ msgstr "Recherchieren"
423
-
424
- # @ squirrly-seo
425
- #, fuzzy
426
- #~| msgid "Squirrly LIVE SEO assistant"
427
- #~ msgid "All Snippets"
428
- #~ msgstr "Squirrly LIVE SEO-Assistent"
429
-
430
- # @ squirrly-seo
431
- #, fuzzy
432
- #~| msgid "Squirrly settings"
433
- #~ msgid "SEO Settings"
434
- #~ msgstr "Squirrly Einstellungen"
435
-
436
- # @ squirrly-seo
437
- #, fuzzy
438
- #~| msgid "Squirrly settings"
439
- #~ msgid "Focus Pages"
440
- #~ msgstr "Squirrly Einstellungen"
441
-
442
- # @ squirrly-seo
443
- #, fuzzy
444
- #~| msgid "automatically"
445
- #~ msgid "SEO Audit"
446
- #~ msgstr "automatisch"
447
-
448
- # @ squirrly-seo
449
- #, fuzzy
450
- #~| msgid "Squirrly settings"
451
- #~ msgid "Rankings"
452
- #~ msgstr "Squirrly Einstellungen"
453
-
454
- # @ squirrly-seo
455
- #, fuzzy
456
- #~| msgid "Tips: 2-4 keywords"
457
- #~ msgid "Find Keywords"
458
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
459
-
460
- # @ squirrly-seo
461
- #, fuzzy
462
- #~| msgid "Do the research"
463
- #~ msgid "do a keyword research"
464
- #~ msgstr "Recherchieren"
465
-
466
- # @ squirrly-seo
467
- #, fuzzy
468
- #~| msgid "Enter even more keywords."
469
- #~ msgid "save the best Keywords"
470
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
471
-
472
- # @ squirrly-seo
473
- #, fuzzy
474
- #~| msgid "Tips: 2-4 keywords"
475
- #~ msgid "group keywords"
476
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
477
-
478
- # @ squirrly-seo
479
- #, fuzzy
480
- #~| msgid "Enter even more keywords."
481
- #~ msgid "better keywords found"
482
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
483
-
484
- # @ squirrly-seo
485
- #, fuzzy
486
- #~| msgid "Do the research"
487
- #~ msgid "keyword research history"
488
- #~ msgstr "Recherchieren"
489
-
490
- # @ squirrly-seo
491
- #, fuzzy
492
- #~| msgid "Squirrly settings"
493
- #~ msgid "Settings"
494
- #~ msgstr "Squirrly Einstellungen"
495
-
496
- # @ squirrly-seo
497
- #, fuzzy
498
- #~| msgid "Squirrly settings"
499
- #~ msgid "Add New Page"
500
- #~ msgstr "Squirrly Einstellungen"
501
-
502
- # @ squirrly-seo
503
- #, fuzzy
504
- #~| msgid "Squirrly settings"
505
- #~ msgid "Audit settings"
506
- #~ msgstr "Squirrly Einstellungen"
507
-
508
- # @ squirrly-seo
509
- #, fuzzy
510
- #~| msgid "Google %sAnalytics ID%s`:"
511
- #~ msgid "See Google ranking"
512
- #~ msgstr "Google %sAnalytics ID%s`:"
513
-
514
- # @ squirrly-seo
515
- #, fuzzy
516
- #~| msgid "Tips: 2-4 keywords"
517
- #~ msgid "Add Keywords"
518
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
519
-
520
- # @ squirrly-seo
521
- #, fuzzy
522
- #~| msgid "Enter even more keywords."
523
- #~ msgid "Add briefcase keywords"
524
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
525
-
526
- # @ squirrly-seo
527
- #, fuzzy
528
- #~| msgid "Squirrly settings"
529
- #~ msgid "Ranking settings"
530
- #~ msgstr "Squirrly Einstellungen"
531
-
532
- # @ squirrly-seo
533
- #, fuzzy
534
- #~| msgid "Squirrly settings"
535
- #~ msgid "Bulk SEO"
536
- #~ msgstr "Squirrly Einstellungen"
537
-
538
- # @ squirrly-seo
539
- #, fuzzy
540
- #~| msgid "automatically"
541
- #~ msgid "Automation"
542
- #~ msgstr "automatisch"
543
-
544
- # @ squirrly-seo
545
- #, fuzzy
546
- #~| msgid "SEO Software"
547
- #~ msgid "SEO Metas"
548
- #~ msgstr "SEO Software"
549
-
550
- # @ squirrly-seo
551
- #, fuzzy
552
- #~| msgid "Google %sAnalytics ID%s`:"
553
- #~ msgid "google analytics, pixel, etc."
554
- #~ msgstr "Google %sAnalytics ID%s`:"
555
-
556
- # @ squirrly-seo
557
- #, fuzzy
558
- #~| msgid "Squirrly settings"
559
- #~ msgid "Advanced"
560
- #~ msgstr "Squirrly Einstellungen"
561
-
562
- # @ squirrly-seo
563
- #, fuzzy
564
- #~| msgid "Squirrly settings"
565
- #~ msgid "Advanced SEO Settings"
566
- #~ msgstr "Squirrly Einstellungen"
567
-
568
- # @ squirrly-seo
569
- #, fuzzy
570
- #~| msgid "Squirrly settings"
571
- #~ msgid "start using Squirrly SEO"
572
- #~ msgstr "Squirrly Einstellungen"
573
-
574
- # @ squirrly-seo
575
- #, fuzzy
576
- #~| msgid "Tips: Length 70-255 chars"
577
- #~ msgid "Title length is between 10-75 chars"
578
- #~ msgstr "Tipp: Länge 70-255 Charaktere"
579
-
580
- # @ squirrly-seo
581
- #, fuzzy
582
- #~| msgid "SEO Software"
583
- #~ msgid "Content"
584
- #~ msgstr "SEO Software"
585
-
586
- # @ squirrly-seo
587
- #, fuzzy, php-format
588
- #~| msgid "Could not send the email..."
589
- #~ msgid "Bold one of the keywords %s"
590
- #~ msgstr "Konnte E-Mail nicht senden ..."
591
-
592
- # @ squirrly-seo
593
- #, fuzzy
594
- #~| msgid "Squirrly LIVE SEO assistant"
595
- #~ msgid "Squirrly SEO Editor"
596
- #~ msgstr "Squirrly LIVE SEO-Assistent"
597
-
598
- # @ squirrly-seo
599
- #, fuzzy
600
- #~| msgid "Squirrly LIVE SEO assistant"
601
- #~ msgid "Squirrly SEO Admin"
602
- #~ msgstr "Squirrly LIVE SEO-Assistent"
603
-
604
- # @ squirrly-seo
605
- #, fuzzy
606
- #~| msgid "Could not send the email..."
607
- #~ msgid "Error! Could not save the data."
608
- #~ msgstr "Konnte E-Mail nicht senden ..."
609
-
610
- # @ squirrly-seo
611
- #, fuzzy
612
- #~| msgid "Could not send the email..."
613
- #~ msgid "Couldn't find the page"
614
- #~ msgstr "Konnte E-Mail nicht senden ..."
615
-
616
- # @ squirrly-seo
617
- #, fuzzy, php-format
618
- #~| msgid "Tips: Length 10-70 chars"
619
- #~ msgid "Title up to %s chars"
620
- #~ msgstr "Tipp: Länge 10-70 Charaktere"
621
-
622
- # @ squirrly-seo
623
- #, fuzzy
624
- #~| msgid "Do the research"
625
- #~ msgid "Keyword in title"
626
- #~ msgstr "Recherchieren"
627
-
628
- # @ squirrly-seo
629
- #, fuzzy
630
- #~| msgid "Tips: 2-4 keywords"
631
- #~ msgid "Snippet Keyword"
632
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
633
-
634
- # @ squirrly-seo
635
- #, fuzzy
636
- #~| msgid "Tips: 2-4 keywords"
637
- #~ msgid "no keywords"
638
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
639
-
640
- # @ squirrly-seo
641
- #, fuzzy
642
- #~| msgid "Enter even more keywords."
643
- #~ msgid "Meta Keywords (2-4 Words)"
644
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
645
-
646
- # @ squirrly-seo
647
- #, fuzzy
648
- #~| msgid "Enter even more keywords."
649
- #~ msgid "no meta keywords"
650
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
651
-
652
- # @ squirrly-seo
653
- #, fuzzy
654
- #~| msgid "<< Leave it automatically"
655
- #~ msgid "Some Squirrly Metas are generated automatically."
656
- #~ msgstr "<< Lass es automatisch"
657
-
658
- # @ squirrly-seo
659
- #, fuzzy
660
- #~| msgid "Enter even more keywords."
661
- #~ msgid "No Meta Keyword Found"
662
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
663
-
664
- # @ squirrly-seo
665
- #, fuzzy
666
- #~| msgid "<< Leave it automatically"
667
- #~ msgid "Title is generated automatically."
668
- #~ msgstr "<< Lass es automatisch"
669
-
670
- # @ squirrly-seo
671
- #, fuzzy
672
- #~| msgid "<< Leave it automatically"
673
- #~ msgid "Description is generated automatically."
674
- #~ msgstr "<< Lass es automatisch"
675
-
676
- # @ squirrly-seo
677
- #, fuzzy
678
- #~| msgid "<< Leave it automatically"
679
- #~ msgid "Open Graph is deactivated."
680
- #~ msgstr "<< Lass es automatisch"
681
-
682
- # @ squirrly-seo
683
- #, fuzzy
684
- #~| msgid "<< Leave it automatically"
685
- #~ msgid "Open Graph is generated automatically."
686
- #~ msgstr "<< Lass es automatisch"
687
-
688
- # @ squirrly-seo
689
- #, fuzzy
690
- #~| msgid "<< Leave it automatically"
691
- #~ msgid "Open Graph is customized and set correctly."
692
- #~ msgstr "<< Lass es automatisch"
693
-
694
- # @ squirrly-seo
695
- #, fuzzy
696
- #~| msgid "<< Leave it automatically"
697
- #~ msgid "Twitter Card is generated automatically."
698
- #~ msgstr "<< Lass es automatisch"
699
-
700
- # @ squirrly-seo
701
- #, fuzzy
702
- #~| msgid "Google %sAnalytics ID%s`:"
703
- #~ msgid "Connect Google Search"
704
- #~ msgstr "Google %sAnalytics ID%s`:"
705
-
706
- # @ squirrly-seo
707
- #, fuzzy, php-format
708
- #~| msgid "Squirrly settings"
709
- #~ msgid "Audit score is over %s"
710
- #~ msgstr "Squirrly Einstellungen"
711
-
712
- # @ squirrly-seo
713
- #, fuzzy
714
- #~| msgid "Tool for Search Engines"
715
- #~ msgid "Clicks from Search Engine in the last 3 months"
716
- #~ msgstr "Tool für Suchmaschinen"
717
-
718
- # @ squirrly-seo
719
- #, fuzzy
720
- #~| msgid "Do the research"
721
- #~ msgid "Do a research"
722
- #~ msgstr "Recherchieren"
723
-
724
- # @ squirrly-seo
725
- #, fuzzy
726
- #~| msgid "Enter even more keywords."
727
- #~ msgid "No Keyword Found"
728
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
729
-
730
- # @ squirrly-seo
731
- #, fuzzy
732
- #~| msgid "Google %sAnalytics ID%s`:"
733
- #~ msgid "Connect to Google Search Console."
734
- #~ msgstr "Google %sAnalytics ID%s`:"
735
-
736
- # @ squirrly-seo
737
- #, fuzzy
738
- #~| msgid "Do the research"
739
- #~ msgid "Keyword in filename"
740
- #~ msgstr "Recherchieren"
741
-
742
- # @ squirrly-seo
743
- #, fuzzy
744
- #~| msgid "Tool for Search Engines"
745
- #~ msgid "Search Results Impressions in the last 3 months"
746
- #~ msgstr "Tool für Suchmaschinen"
747
-
748
- # @ squirrly-seo
749
- #, fuzzy
750
- #~| msgid "Tips: 2-4 keywords"
751
- #~ msgid "Find Better Keywords"
752
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
753
-
754
- # @ squirrly-seo
755
- #, fuzzy
756
- #~| msgid "Tips: 2-4 keywords"
757
- #~ msgid "words"
758
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
759
-
760
- # @ squirrly-seo
761
- #, fuzzy
762
- #~| msgid "Squirrly settings"
763
- #~ msgid "Edit Page"
764
- #~ msgstr "Squirrly Einstellungen"
765
-
766
- # @ squirrly-seo
767
- #, fuzzy
768
- #~| msgid "Google %sAnalytics ID%s`:"
769
- #~ msgid "Connect to Google Analytics first."
770
- #~ msgstr "Google %sAnalytics ID%s`:"
771
-
772
- # @ squirrly-seo
773
- #, fuzzy
774
- #~| msgid "Google %sAnalytics ID%s`:"
775
- #~ msgid "Connect Google Analytics first."
776
- #~ msgstr "Google %sAnalytics ID%s`:"
777
-
778
- # @ squirrly-seo
779
- #, fuzzy
780
- #~| msgid "Squirrly settings"
781
- #~ msgid "Go to SEO Settings"
782
- #~ msgstr "Squirrly Einstellungen"
783
-
784
- # @ squirrly-seo
785
- #, fuzzy
786
- #~| msgid "Squirrly settings"
787
- #~ msgid "Go to Social Media Settings"
788
- #~ msgstr "Squirrly Einstellungen"
789
-
790
- # @ squirrly-seo
791
- #, fuzzy
792
- #~| msgid "Do the research"
793
- #~ msgid "Add keyword to Briefcase"
794
- #~ msgstr "Recherchieren"
795
-
796
- # @ squirrly-seo
797
- #, fuzzy
798
- #~| msgid "SEO Software"
799
- #~ msgid "Add SEO Context"
800
- #~ msgstr "SEO Software"
801
-
802
- # @ squirrly-seo
803
- #, fuzzy
804
- #~| msgid "Google %sAnalytics ID%s`:"
805
- #~ msgid "Just one Google Analytics tracking code"
806
- #~ msgstr "Google %sAnalytics ID%s`:"
807
-
808
- # @ squirrly-seo
809
- #, fuzzy
810
- #~| msgid "Google %sAnalytics ID%s`:"
811
- #~ msgid "Connect Google Analytics first"
812
- #~ msgstr "Google %sAnalytics ID%s`:"
813
-
814
- # @ squirrly-seo
815
- #, fuzzy
816
- #~| msgid "Squirrly settings"
817
- #~ msgid "Squirrly SEO Robots"
818
- #~ msgstr "Squirrly Einstellungen"
819
-
820
- # @ squirrly-seo
821
- #, fuzzy
822
- #~| msgid "Squirrly LIVE SEO assistant"
823
- #~ msgid "No Squirrly SEO Robots found."
824
- #~ msgstr "Squirrly LIVE SEO-Assistent"
825
-
826
- # @ squirrly-seo
827
- #, fuzzy
828
- #~| msgid "Squirrly settings"
829
- #~ msgid "Live Assistant Settings"
830
- #~ msgstr "Squirrly Einstellungen"
831
-
832
- # @ squirrly-seo
833
- #, fuzzy
834
- #~| msgid "Squirrly settings"
835
- #~ msgid "Squirrly Tooltips"
836
- #~ msgstr "Squirrly Einstellungen"
837
-
838
- # @ squirrly-seo
839
- #, fuzzy
840
- #~| msgid "Tips: 2-4 keywords"
841
- #~ msgid "Download Remote Images"
842
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
843
-
844
- # @ squirrly-seo
845
- #, fuzzy
846
- #~| msgid "Squirrly settings"
847
- #~ msgid "Show Advanced Options"
848
- #~ msgstr "Squirrly Einstellungen"
849
-
850
- # @ squirrly-seo
851
- #, fuzzy
852
- #~| msgid "Squirrly settings"
853
- #~ msgid "Hide Advanced Options"
854
- #~ msgstr "Squirrly Einstellungen"
855
-
856
- # @ squirrly-seo
857
- #, fuzzy
858
- #~| msgid "Squirrly settings"
859
- #~ msgid "Save Settings"
860
- #~ msgstr "Squirrly Einstellungen"
861
-
862
- # @ squirrly-seo
863
- #, fuzzy
864
- #~| msgid "Do the research"
865
- #~ msgid "Search"
866
- #~ msgstr "Recherchieren"
867
-
868
- # @ squirrly-seo
869
- #, fuzzy
870
- #~| msgid "Tips: 2-4 keywords"
871
- #~ msgid "Show All"
872
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
873
-
874
- # @ squirrly-seo
875
- #, fuzzy
876
- #~| msgid "Squirrly settings"
877
- #~ msgid "Next Page"
878
- #~ msgstr "Squirrly Einstellungen"
879
-
880
- # @ squirrly-seo
881
- #, fuzzy
882
- #~| msgid "Your E-mail:"
883
- #~ msgid "Audit Details"
884
- #~ msgstr "Ihre E-Mail Adresse:"
885
-
886
- # @ squirrly-seo
887
- #, fuzzy
888
- #~| msgid "Squirrly settings"
889
- #~ msgid "Audit Pages"
890
- #~ msgstr "Squirrly Einstellungen"
891
-
892
- # @ squirrly-seo
893
- #, fuzzy
894
- #~| msgid "Could not send the email..."
895
- #~ msgid "Could not create the audit for this URL"
896
- #~ msgstr "Konnte E-Mail nicht senden ..."
897
-
898
- # @ squirrly-seo
899
- #, fuzzy
900
- #~| msgid "Squirrly LIVE SEO assistant"
901
- #~ msgid "Inspect URL"
902
- #~ msgstr "Squirrly LIVE SEO-Assistent"
903
-
904
- # @ squirrly-seo
905
- #, fuzzy
906
- #~| msgid "Could not send the email..."
907
- #~ msgid "Do you want to delete the Audit Page?"
908
- #~ msgstr "Konnte E-Mail nicht senden ..."
909
-
910
- # @ squirrly-seo
911
- #, fuzzy
912
- #~| msgid "Squirrly settings"
913
- #~ msgid "Audited pages"
914
- #~ msgstr "Squirrly Einstellungen"
915
-
916
- # @ squirrly-seo
917
- #, fuzzy
918
- #~| msgid "Squirrly LIVE SEO assistant"
919
- #~ msgid "Welcome to Squirrly SEO Audits"
920
- #~ msgstr "Squirrly LIVE SEO-Assistent"
921
-
922
- # @ squirrly-seo
923
- #, fuzzy
924
- #~| msgid "Squirrly settings"
925
- #~ msgid "Audit Score"
926
- #~ msgstr "Squirrly Einstellungen"
927
-
928
- # @ squirrly-seo
929
- #, fuzzy
930
- #~| msgid "Squirrly settings"
931
- #~ msgid "Your audit score is"
932
- #~ msgstr "Squirrly Einstellungen"
933
-
934
- # @ squirrly-seo
935
- #, fuzzy
936
- #~| msgid "Your E-mail:"
937
- #~ msgid "Audit Date"
938
- #~ msgstr "Ihre E-Mail Adresse:"
939
-
940
- # @ squirrly-seo
941
- #, fuzzy
942
- #~| msgid "Squirrly settings"
943
- #~ msgid "Audit in progress"
944
- #~ msgstr "Squirrly Einstellungen"
945
-
946
- # @ squirrly-seo
947
- #, fuzzy
948
- #~| msgid "Squirrly settings"
949
- #~ msgid "Audit not ready yet"
950
- #~ msgstr "Squirrly Einstellungen"
951
-
952
- # @ squirrly-seo
953
- #, fuzzy
954
- #~| msgid "Squirrly settings"
955
- #~ msgid "Audit History"
956
- #~ msgstr "Squirrly Einstellungen"
957
-
958
- # @ squirrly-seo
959
- #, fuzzy
960
- #~| msgid "Squirrly settings"
961
- #~ msgid "Audits"
962
- #~ msgstr "Squirrly Einstellungen"
963
-
964
- # @ squirrly-seo
965
- #, fuzzy
966
- #~| msgid "Squirrly LIVE SEO assistant"
967
- #~ msgid "Squirrly Inspect URL"
968
- #~ msgstr "Squirrly LIVE SEO-Assistent"
969
-
970
- # @ squirrly-seo
971
- #, fuzzy
972
- #~| msgid "Squirrly settings"
973
- #~ msgid "Audit Settings"
974
- #~ msgstr "Squirrly Einstellungen"
975
-
976
- # @ squirrly-seo
977
- #, fuzzy
978
- #~| msgid "Your E-mail:"
979
- #~ msgid "Audit Email"
980
- #~ msgstr "Ihre E-Mail Adresse:"
981
-
982
- # @ squirrly-seo
983
- #, fuzzy
984
- #~| msgid "Your E-mail:"
985
- #~ msgid "Email"
986
- #~ msgstr "Ihre E-Mail Adresse:"
987
-
988
- # @ squirrly-seo
989
- #, fuzzy
990
- #~| msgid "Do the research"
991
- #~ msgid "Keyword Research"
992
- #~ msgstr "Recherchieren"
993
-
994
- # @ squirrly-seo
995
- #, fuzzy
996
- #~| msgid "automatically"
997
- #~ msgid "SEO Automation"
998
- #~ msgstr "automatisch"
999
-
1000
- # @ squirrly-seo
1001
- #, fuzzy
1002
- #~| msgid "Squirrly LIVE SEO assistant"
1003
- #~ msgid "Bulk SEO & Snippets"
1004
- #~ msgstr "Squirrly LIVE SEO-Assistent"
1005
-
1006
- # @ squirrly-seo
1007
- #, fuzzy
1008
- #~| msgid "Google %sAnalytics ID%s`:"
1009
- #~ msgid "Google Analytics Tracking"
1010
- #~ msgstr "Google %sAnalytics ID%s`:"
1011
-
1012
- # @ squirrly-seo
1013
- #, fuzzy
1014
- #~| msgid "Google %sAnalytics ID%s`:"
1015
- #~ msgid "Google Search Console"
1016
- #~ msgstr "Google %sAnalytics ID%s`:"
1017
-
1018
- # @ squirrly-seo
1019
- #, fuzzy
1020
- #~| msgid "Squirrly LIVE SEO assistant"
1021
- #~ msgid "Squirrly SEO Feature Categories"
1022
- #~ msgstr "Squirrly LIVE SEO-Assistent"
1023
-
1024
- # @ squirrly-seo
1025
- #, fuzzy
1026
- #~| msgid "Squirrly settings"
1027
- #~ msgid "Squirrly Briefcase"
1028
- #~ msgstr "Squirrly Einstellungen"
1029
-
1030
- # @ squirrly-seo
1031
- #, fuzzy
1032
- #~| msgid "Enter even more keywords."
1033
- #~ msgid "Enter a keyword"
1034
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
1035
-
1036
- # @ squirrly-seo
1037
- #, fuzzy
1038
- #~| msgid "Squirrly LIVE SEO assistant"
1039
- #~ msgid "for Squirrly Live SEO optimization"
1040
- #~ msgstr "Squirrly LIVE SEO-Assistent"
1041
-
1042
- # @ squirrly-seo
1043
- #, fuzzy
1044
- #~| msgid "Enter even more keywords."
1045
- #~ msgid "Type in your keyword..."
1046
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
1047
-
1048
- # @ squirrly-seo
1049
- #, fuzzy
1050
- #~| msgid "Enter even more keywords."
1051
- #~ msgid "Use this keyword"
1052
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
1053
-
1054
- # @ squirrly-seo
1055
- #, fuzzy
1056
- #~| msgid "Do the research"
1057
- #~ msgid "Do keyword research!"
1058
- #~ msgstr "Recherchieren"
1059
-
1060
- # @ squirrly-seo
1061
- #, fuzzy
1062
- #~| msgid "Squirrly settings"
1063
- #~ msgid "Squirrly Live Assistant"
1064
- #~ msgstr "Squirrly Einstellungen"
1065
-
1066
- # @ squirrly-seo
1067
- #, fuzzy
1068
- #~| msgid "Google %sAnalytics ID%s`:"
1069
- #~ msgid "Activate Metas"
1070
- #~ msgstr "Google %sAnalytics ID%s`:"
1071
-
1072
- # @ squirrly-seo
1073
- #, fuzzy
1074
- #~| msgid "Squirrly LIVE SEO assistant"
1075
- #~ msgid "Activate Title"
1076
- #~ msgstr "Squirrly LIVE SEO-Assistent"
1077
-
1078
- # @ squirrly-seo
1079
- #, fuzzy, php-format
1080
- #~| msgid "Tips: Length 10-70 chars"
1081
- #~ msgid "Tips: Length %s-%s chars"
1082
- #~ msgstr "Tipp: Länge 10-70 Charaktere"
1083
-
1084
- # @ squirrly-seo
1085
- #, fuzzy
1086
- #~| msgid "Tips: 2-4 keywords"
1087
- #~ msgid "Activate Keywords"
1088
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1089
-
1090
- # @ squirrly-seo
1091
- #, fuzzy
1092
- #~| msgid "Enter even more keywords."
1093
- #~ msgid "Meta Keywords"
1094
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
1095
-
1096
- # @ squirrly-seo
1097
- #, fuzzy
1098
- #~| msgid "Tips: 2-4 keywords"
1099
- #~ msgid "+ Add keyword"
1100
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1101
-
1102
- # @ squirrly-seo
1103
- #, fuzzy
1104
- #~| msgid "Google %sAnalytics ID%s`:"
1105
- #~ msgid "Activate Canonical"
1106
- #~ msgstr "Google %sAnalytics ID%s`:"
1107
-
1108
- # @ squirrly-seo
1109
- #, fuzzy
1110
- #~| msgid "Squirrly LIVE SEO assistant"
1111
- #~ msgid "Activate Squirrly Snippet for this page"
1112
- #~ msgstr "Squirrly LIVE SEO-Assistent"
1113
-
1114
- # @ squirrly-seo
1115
- #, fuzzy
1116
- #~| msgid "Squirrly LIVE SEO assistant"
1117
- #~ msgid "Loading Squirrly Snippet ..."
1118
- #~ msgstr "Squirrly LIVE SEO-Assistent"
1119
-
1120
- # @ squirrly-seo
1121
- #, fuzzy
1122
- #~| msgid "Squirrly LIVE SEO assistant"
1123
- #~ msgid "Enable Squirrly SEO to load Squirrly Snippet"
1124
- #~ msgstr "Squirrly LIVE SEO-Assistent"
1125
-
1126
- # @ squirrly-seo
1127
- #, fuzzy, php-format
1128
- #~| msgid "Google %sAnalytics ID%s`:"
1129
- #~ msgid "%sPlease connect to SquirrlyCloud first%s"
1130
- #~ msgstr "Google %sAnalytics ID%s`:"
1131
-
1132
- # @ squirrly-seo
1133
- #, fuzzy
1134
- #~| msgid "Squirrly settings"
1135
- #~ msgid "Handled by Squirrly Genius."
1136
- #~ msgstr "Squirrly Einstellungen"
1137
-
1138
- # @ squirrly-seo
1139
- #, fuzzy
1140
- #~| msgid "support page"
1141
- #~ msgid "Support"
1142
- #~ msgstr "Support Page"
1143
-
1144
- # @ squirrly-seo
1145
- #, fuzzy
1146
- #~| msgid "Write a new post with Squirrly"
1147
- #~ msgid "Need Help with Squirrly SEO?"
1148
- #~ msgstr "Schreiben Sie einen neuen Beitrag mit Squirrly"
1149
-
1150
- # @ squirrly-seo
1151
- #, fuzzy
1152
- #~| msgid "Squirrly LIVE SEO assistant"
1153
- #~ msgid "Deactivate Squirrly SEO"
1154
- #~ msgstr "Squirrly LIVE SEO-Assistent"
1155
-
1156
- # @ squirrly-seo
1157
- #, fuzzy
1158
- #~| msgid "Google %sAnalytics ID%s`:"
1159
- #~ msgid "Disconnect from Squirrly Cloud"
1160
- #~ msgstr "Google %sAnalytics ID%s`:"
1161
-
1162
- # @ squirrly-seo
1163
- #, fuzzy
1164
- #~| msgid "Google %sAnalytics ID%s`:"
1165
- #~ msgid "Google Analytics"
1166
- #~ msgstr "Google %sAnalytics ID%s`:"
1167
-
1168
- # @ squirrly-seo
1169
- #, fuzzy
1170
- #~| msgid "Google %sAnalytics ID%s`:"
1171
- #~ msgid "You are connected to Google Analytics"
1172
- #~ msgstr "Google %sAnalytics ID%s`:"
1173
-
1174
- # @ squirrly-seo
1175
- #, fuzzy
1176
- #~| msgid "Google %sAnalytics ID%s`:"
1177
- #~ msgid "Connect this site to Google Analytics"
1178
- #~ msgstr "Google %sAnalytics ID%s`:"
1179
-
1180
- # @ squirrly-seo
1181
- #, fuzzy
1182
- #~| msgid "Google %sAnalytics ID%s`:"
1183
- #~ msgid "You are connected to Google Search Console"
1184
- #~ msgstr "Google %sAnalytics ID%s`:"
1185
-
1186
- # @ squirrly-seo
1187
- #, fuzzy
1188
- #~| msgid "Google %sAnalytics ID%s`:"
1189
- #~ msgid "Connect this site to Google Search Console"
1190
- #~ msgstr "Google %sAnalytics ID%s`:"
1191
-
1192
- # @ squirrly-seo
1193
- #, fuzzy
1194
- #~| msgid "Your E-mail:"
1195
- #~ msgid "Audited"
1196
- #~ msgstr "Ihre E-Mail Adresse:"
1197
-
1198
- # @ squirrly-seo
1199
- #, fuzzy
1200
- #~| msgid "Your E-mail:"
1201
- #~ msgid "Details"
1202
- #~ msgstr "Ihre E-Mail Adresse:"
1203
-
1204
- # @ squirrly-seo
1205
- #, fuzzy
1206
- #~| msgid "Change it >>"
1207
- #~ msgid "Chance to Rank"
1208
- #~ msgstr "Ändern >>"
1209
-
1210
- # @ squirrly-seo
1211
- #, fuzzy
1212
- #~| msgid "Could not send the email..."
1213
- #~ msgid "Do you want to delete the Focus Page?"
1214
- #~ msgstr "Konnte E-Mail nicht senden ..."
1215
-
1216
- # @ squirrly-seo
1217
- #, fuzzy
1218
- #~| msgid "Change it >>"
1219
- #~ msgid "Chances of Ranking"
1220
- #~ msgstr "Ändern >>"
1221
-
1222
- # @ squirrly-seo
1223
- #, fuzzy
1224
- #~| msgid "Do the research"
1225
- #~ msgid "Keyword Ranking"
1226
- #~ msgstr "Recherchieren"
1227
-
1228
- # @ squirrly-seo
1229
- #, fuzzy
1230
- #~| msgid "Squirrly settings"
1231
- #~ msgid "Focus Pages Settings"
1232
- #~ msgstr "Squirrly Einstellungen"
1233
-
1234
- # @ squirrly-seo
1235
- #, fuzzy
1236
- #~| msgid "SEO Software"
1237
- #~ msgid "Continue"
1238
- #~ msgstr "SEO Software"
1239
-
1240
- # @ squirrly-seo
1241
- #, fuzzy
1242
- #~| msgid "Squirrly settings"
1243
- #~ msgid "Import SEO & Settings"
1244
- #~ msgstr "Squirrly Einstellungen"
1245
-
1246
- # @ squirrly-seo
1247
- #, fuzzy
1248
- #~| msgid "Google %sAnalytics ID%s`:"
1249
- #~ msgid "Connect Your Site to Squirrly Cloud"
1250
- #~ msgstr "Google %sAnalytics ID%s`:"
1251
-
1252
- # @ squirrly-seo
1253
- #, fuzzy
1254
- #~| msgid "Squirrly settings"
1255
- #~ msgid "Show Advanced SEO"
1256
- #~ msgstr "Squirrly Einstellungen"
1257
-
1258
- # @ squirrly-seo
1259
- #, fuzzy
1260
- #~| msgid "Squirrly settings"
1261
- #~ msgid "Rate us if you like Squirrly SEO"
1262
- #~ msgstr "Squirrly Einstellungen"
1263
-
1264
- # @ squirrly-seo
1265
- #, fuzzy
1266
- #~| msgid "Google %sAnalytics ID%s`:"
1267
- #~ msgid "Google Search Console Keywords Sync"
1268
- #~ msgstr "Google %sAnalytics ID%s`:"
1269
-
1270
- # @ squirrly-seo
1271
- #, fuzzy
1272
- #~| msgid "Google %sAnalytics ID%s`:"
1273
- #~ msgid "Welcome to Google Search Console Keywords Sync"
1274
- #~ msgstr "Google %sAnalytics ID%s`:"
1275
-
1276
- # @ squirrly-seo
1277
- #, fuzzy
1278
- #~| msgid "Google %sAnalytics ID%s`:"
1279
- #~ msgid "Google Rankings"
1280
- #~ msgstr "Google %sAnalytics ID%s`:"
1281
-
1282
- # @ squirrly-seo
1283
- #, fuzzy
1284
- #~| msgid "Do the research"
1285
- #~ msgid "Today Avg. Ranking"
1286
- #~ msgstr "Recherchieren"
1287
-
1288
- # @ squirrly-seo
1289
- #, fuzzy
1290
- #~| msgid "Could not send the email..."
1291
- #~ msgid "Ar you sure you want to delete the keyword?"
1292
- #~ msgstr "Konnte E-Mail nicht senden ..."
1293
-
1294
- # @ squirrly-seo
1295
- #, fuzzy
1296
- #~| msgid "Tips: 2-4 keywords"
1297
- #~ msgid "Sync Keywords"
1298
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1299
-
1300
- # @ squirrly-seo
1301
- #, fuzzy
1302
- #~| msgid "Tips: 2-4 keywords"
1303
- #~ msgid "Remove Keyword"
1304
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1305
-
1306
- # @ squirrly-seo
1307
- #, fuzzy
1308
- #~| msgid "Do the research"
1309
- #~ msgid "Add keywords in Briefcase"
1310
- #~ msgstr "Recherchieren"
1311
-
1312
- # @ squirrly-seo
1313
- #, fuzzy
1314
- #~| msgid "Google %sAnalytics ID%s`:"
1315
- #~ msgid "Synchronize Keywords with Google Search Console"
1316
- #~ msgstr "Google %sAnalytics ID%s`:"
1317
-
1318
- # @ squirrly-seo
1319
- #, fuzzy
1320
- #~| msgid "Squirrly settings"
1321
- #~ msgid "Rankings Settings"
1322
- #~ msgstr "Squirrly Einstellungen"
1323
-
1324
- # @ squirrly-seo
1325
- #, fuzzy
1326
- #~| msgid "Google %sAnalytics ID%s`:"
1327
- #~ msgid "Google Country"
1328
- #~ msgstr "Google %sAnalytics ID%s`:"
1329
-
1330
- # @ squirrly-seo
1331
- #, fuzzy
1332
- #~| msgid "Tips: 2-4 keywords"
1333
- #~ msgid "Search Keyword"
1334
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1335
-
1336
- # @ squirrly-seo
1337
- #, fuzzy
1338
- #~| msgid "Could not send the email..."
1339
- #~ msgid "Ar you sure you want to delete the keywords?"
1340
- #~ msgstr "Konnte E-Mail nicht senden ..."
1341
-
1342
- # @ squirrly-seo
1343
- #, fuzzy
1344
- #~| msgid "Enter even more keywords."
1345
- #~ msgid "selected keywords"
1346
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
1347
-
1348
- # @ squirrly-seo
1349
- #, fuzzy
1350
- #~| msgid "Tips: 2-4 keywords"
1351
- #~ msgid "keyword info"
1352
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1353
-
1354
- # @ squirrly-seo
1355
- #, fuzzy
1356
- #~| msgid "Do the research"
1357
- #~ msgid "No research data"
1358
- #~ msgstr "Recherchieren"
1359
-
1360
- # @ squirrly-seo
1361
- #, fuzzy
1362
- #~| msgid "Do the research"
1363
- #~ msgid "Refresh Research"
1364
- #~ msgstr "Recherchieren"
1365
-
1366
- # @ squirrly-seo
1367
- #, fuzzy
1368
- #~| msgid "Enter even more keywords."
1369
- #~ msgid "Delete Keyword"
1370
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
1371
-
1372
- # @ squirrly-seo
1373
- #, fuzzy
1374
- #~| msgid "Tips: 2-4 keywords"
1375
- #~ msgid "Go Find New Keywords"
1376
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1377
-
1378
- # @ squirrly-seo
1379
- #, fuzzy
1380
- #~| msgid "Tips: 2-4 keywords"
1381
- #~ msgid "Download Keywords"
1382
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1383
-
1384
- # @ squirrly-seo
1385
- #, fuzzy
1386
- #~| msgid "Tips: 2-4 keywords"
1387
- #~ msgid "Import Keywords"
1388
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1389
-
1390
- # @ squirrly-seo
1391
- #, fuzzy
1392
- #~| msgid "Enter even more keywords."
1393
- #~ msgid "Restore Briefcase Keywords"
1394
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
1395
-
1396
- # @ squirrly-seo
1397
- #, fuzzy
1398
- #~| msgid "Tips: 2-4 keywords"
1399
- #~ msgid "Restore Keywords"
1400
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1401
-
1402
- # @ squirrly-seo
1403
- #, fuzzy
1404
- #~| msgid "Tips: 2-4 keywords"
1405
- #~ msgid "Show All Keywords"
1406
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1407
-
1408
- # @ squirrly-seo
1409
- #, fuzzy
1410
- #~| msgid "Do the research"
1411
- #~ msgid "Welcome to Keyword Research History"
1412
- #~ msgstr "Recherchieren"
1413
-
1414
- # @ squirrly-seo
1415
- #, fuzzy
1416
- #~| msgid "Your E-mail:"
1417
- #~ msgid "Edit Label"
1418
- #~ msgstr "Ihre E-Mail Adresse:"
1419
-
1420
- # @ squirrly-seo
1421
- #, fuzzy
1422
- #~| msgid "Could not send the email..."
1423
- #~ msgid "Ar you sure you want to delete the labels?"
1424
- #~ msgstr "Konnte E-Mail nicht senden ..."
1425
-
1426
- # @ squirrly-seo
1427
- #, fuzzy
1428
- #~| msgid "Do the research"
1429
- #~ msgid "Add a keyword to Briefcase"
1430
- #~ msgstr "Recherchieren"
1431
-
1432
- # @ squirrly-seo
1433
- #, fuzzy
1434
- #~| msgid "Could not send the email..."
1435
- #~ msgid "You need to enter a keyword first"
1436
- #~ msgstr "Konnte E-Mail nicht senden ..."
1437
-
1438
- # @ squirrly-seo
1439
- #, fuzzy
1440
- #~| msgid "Do the research"
1441
- #~ msgid "Do a deep research"
1442
- #~ msgstr "Recherchieren"
1443
-
1444
- # @ squirrly-seo
1445
- #, fuzzy
1446
- #~| msgid "Do the research"
1447
- #~ msgid "Do research"
1448
- #~ msgstr "Recherchieren"
1449
-
1450
- # @ squirrly-seo
1451
- #, fuzzy
1452
- #~| msgid "Tips: 2-4 keywords"
1453
- #~ msgid "Already Have Keywords?"
1454
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1455
-
1456
- # @ squirrly-seo
1457
- #, fuzzy
1458
- #~| msgid "Tips: 2-4 keywords"
1459
- #~ msgid "Import Keywords From CSV"
1460
- #~ msgstr "Tipp: Länge 2-4 Schlüsselwörter"
1461
-
1462
- # @ squirrly-seo
1463
- #, fuzzy
1464
- #~| msgid "Enter even more keywords."
1465
- #~ msgid "Welcome to Suggested Keywords"
1466
- #~ msgstr "Geben Sie noch mehrere Schlüsselwörter ein."
1467
-
1468
- # @ squirrly-seo
1469
- #, fuzzy
1470
- #~| msgid "Squirrly settings"
1471
- #~ msgid "Advanced Settings"
1472
- #~ msgstr "Squirrly Einstellungen"
1473
-
1474
- # @ squirrly-seo
1475
- #, fuzzy
1476
- #~| msgid "Squirrly settings"
1477
- #~ msgid "Load Squirrly Frontend CSS"
1478
- #~ msgstr "Squirrly Einstellungen"
1479
-
1480
- # @ squirrly-seo
1481
- #, fuzzy
1482
- #~| msgid "Squirrly LIVE SEO assistant"
1483
- #~ msgid "Minify Squirrly SEO Metas"
1484
- #~ msgstr "Squirrly LIVE SEO-Assistent"
1485
-
1486
- # @ squirrly-seo
1487
- #, fuzzy
1488
- #~| msgid "Squirrly LIVE SEO assistant"
1489
- #~ msgid "Squirrly SEO Late Buffer"
1490
- #~ msgstr "Squirrly LIVE SEO-Assistent"
1491
-
1492
- # @ squirrly-seo
1493
- #, fuzzy
1494
- #~| msgid "automatically"
1495
- #~ msgid "Meta Automation"
1496
- #~ msgstr "automatisch"
1497
-
1498
- # @ squirrly-seo
1499
- #, fuzzy
1500
- #~| msgid "automatically"
1501
- #~ msgid "Add Post Type for SEO Automation"
1502
- #~ msgstr "automatisch"
1503
-
1504
- # @ squirrly-seo
1505
- #, fuzzy
1506
- #~| msgid "Tips: Length 10-70 chars"
1507
- #~ msgid "Tips: Length 10-75 chars"
1508
- #~ msgstr "Tipp: Länge 10-70 Charaktere"
1509
-
1510
- # @ squirrly-seo
1511
- #, fuzzy
1512
- #~| msgid "Tips: Length 10-70 chars"
1513
- #~ msgid "Tips: Length 70-320 chars"
1514
- #~ msgstr "Tipp: Länge 10-70 Charaktere"
1515
-
1516
- # @ squirrly-seo
1517
- #, fuzzy
1518
- #~| msgid "Squirrly settings"
1519
- #~ msgid "Load Squirrly SEO METAs"
1520
- #~ msgstr "Squirrly Einstellungen"
1521
-
1522
- # @ squirrly-seo
1523
- #, fuzzy
1524
- #~| msgid "Squirrly settings"
1525
- #~ msgid "Load Squirrly Patterns"
1526
- #~ msgstr "Squirrly Einstellungen"
1527
-
1528
- # @ squirrly-seo
1529
- #, fuzzy
1530
- #~| msgid "Squirrly settings"
1531
- #~ msgid "Load Squirrly Open Graph"
1532
- #~ msgstr "Squirrly Einstellungen"
1533
-
1534
- # @ squirrly-seo
1535
- #, fuzzy
1536
- #~| msgid "Squirrly settings"
1537
- #~ msgid "Load Squirrly Twitter Card"
1538
- #~ msgstr "Squirrly Einstellungen"
1539
-
1540
- # @ squirrly-seo
1541
- #, fuzzy
1542
- #~| msgid "Google %sAnalytics ID%s`:"
1543
- #~ msgid "Load Google Analytics Tracking Script"
1544
- #~ msgstr "Google %sAnalytics ID%s`:"
1545
-
1546
- # @ squirrly-seo
1547
- #, fuzzy
1548
- #~| msgid "Google %sAnalytics ID%s`:"
1549
- #~ msgid "Let Google Analytics Tracking to load for this post type."
1550
- #~ msgstr "Google %sAnalytics ID%s`:"
1551