Version Description
- 07/15/2022 = Update - SLA compatibility with Divi Builder Update - SLA compatibility with Thrive Architect Update - Focus Page SEO Image to detect keywords with special chars Fix - Warning: Undefined array key "media" in DisplayController.php on line 74 Fix - Translation error on frech language on Focus Pages Fix - Importing emoticons from other SEO plugins on utf8 tabel encoding Fix - SEO Audit for detecting the twitter card and OG with more accuracy for non WordPress websites
Download this release
Release Info
Developer | cifi |
Plugin | SEO SQUIRRLY™ |
Version | 12.1.09 |
Comparing to | |
See all releases |
Code changes from version 12.1.07 to 12.1.09
- classes/helpers/Sanitize.php +15 -0
- controllers/SeoSettings.php +9 -6
- core/BlockFeatures.php +30 -1
- models/Compatibility.php +20 -23
- models/Frontend.php +13 -1
- models/LiveAssistant.php +4 -8
- models/Menu.php +4 -4
- models/Settings.php +1 -1
- models/domain/Patterns.php +56 -56
- models/services/CustomMetas.php +46 -0
- models/services/Title.php +3 -3
- readme.txt +10 -1
- squirrly.php +3 -3
- view/Assistant/Settings.php +2 -1
- view/Onboarding/Step6.php +1 -1
- view/Ranking/Settings.php +2 -1
- view/SeoSettings/Jsonld.php +49 -49
- view/SeoSettings/Tweaks.php +17 -17
classes/helpers/Sanitize.php
CHANGED
@@ -24,6 +24,13 @@ class SQ_Classes_Helpers_Sanitize
|
|
24 |
public static function clearTitle($title)
|
25 |
{
|
26 |
if ($title <> '') {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
if (function_exists('preg_replace')) {
|
28 |
$search = array(
|
29 |
"/[\n\r]/si",
|
@@ -38,6 +45,7 @@ class SQ_Classes_Helpers_Sanitize
|
|
38 |
$title = SQ_Classes_Helpers_Sanitize::i18n(trim(esc_html(ent2ncr(strip_tags($title)))));
|
39 |
|
40 |
}
|
|
|
41 |
return $title;
|
42 |
}
|
43 |
|
@@ -50,6 +58,13 @@ class SQ_Classes_Helpers_Sanitize
|
|
50 |
public static function clearDescription($description)
|
51 |
{
|
52 |
if ($description <> '') {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
if (function_exists('preg_replace')) {
|
54 |
$search = array(
|
55 |
"'<!--(.*?)-->'is",
|
24 |
public static function clearTitle($title)
|
25 |
{
|
26 |
if ($title <> '') {
|
27 |
+
|
28 |
+
$seps = json_decode(SQ_ALL_SEP, true);
|
29 |
+
$title = str_replace(
|
30 |
+
array_values($seps),
|
31 |
+
array_map(function($value){return html_entity_decode($value);},$seps),
|
32 |
+
$title);
|
33 |
+
|
34 |
if (function_exists('preg_replace')) {
|
35 |
$search = array(
|
36 |
"/[\n\r]/si",
|
45 |
$title = SQ_Classes_Helpers_Sanitize::i18n(trim(esc_html(ent2ncr(strip_tags($title)))));
|
46 |
|
47 |
}
|
48 |
+
|
49 |
return $title;
|
50 |
}
|
51 |
|
58 |
public static function clearDescription($description)
|
59 |
{
|
60 |
if ($description <> '') {
|
61 |
+
|
62 |
+
$seps = json_decode(SQ_ALL_SEP, true);
|
63 |
+
$description = str_replace(
|
64 |
+
array_values($seps),
|
65 |
+
array_map(function($value){return html_entity_decode($value);},$seps),
|
66 |
+
$description);
|
67 |
+
|
68 |
if (function_exists('preg_replace')) {
|
69 |
$search = array(
|
70 |
"'<!--(.*?)-->'is",
|
controllers/SeoSettings.php
CHANGED
@@ -190,12 +190,15 @@ class SQ_Controllers_SeoSettings extends SQ_Classes_FrontController
|
|
190 |
}
|
191 |
$options = json_decode($options, true);
|
192 |
if (is_array($options) && isset($options['sq_api'])) {
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
|
|
|
|
|
|
199 |
SQ_Classes_Helpers_Tools::$options = $options;
|
200 |
SQ_Classes_Helpers_Tools::saveOptions();
|
201 |
|
190 |
}
|
191 |
$options = json_decode($options, true);
|
192 |
if (is_array($options) && isset($options['sq_api'])) {
|
193 |
+
$options['sq_api'] = SQ_Classes_Helpers_Tools::getOption('sq_api');
|
194 |
+
$options['sq_seojourney'] = SQ_Classes_Helpers_Tools::getOption('sq_seojourney');
|
195 |
+
$options['menu'] = SQ_Classes_Helpers_Tools::getOption('menu');
|
196 |
+
$options['sq_auto_devkit'] = SQ_Classes_Helpers_Tools::getOption('sq_auto_devkit');
|
197 |
+
$options['sq_devkit_logo'] = SQ_Classes_Helpers_Tools::getOption('sq_devkit_logo');
|
198 |
+
$options['sq_devkit_name'] = SQ_Classes_Helpers_Tools::getOption('sq_devkit_name');
|
199 |
+
$options['sq_devkit_menu_name'] = SQ_Classes_Helpers_Tools::getOption('sq_devkit_menu_name');
|
200 |
+
$options['sq_devkit_audit_success'] = SQ_Classes_Helpers_Tools::getOption('sq_devkit_audit_success');
|
201 |
+
$options['sq_devkit_audit_fail'] = SQ_Classes_Helpers_Tools::getOption('sq_devkit_audit_fail');
|
202 |
SQ_Classes_Helpers_Tools::$options = $options;
|
203 |
SQ_Classes_Helpers_Tools::saveOptions();
|
204 |
|
core/BlockFeatures.php
CHANGED
@@ -301,7 +301,7 @@ class SQ_Core_BlockFeatures extends SQ_Classes_BlockController
|
|
301 |
'show' => (SQ_Classes_Helpers_Tools::isPluginInstalled('oxygen/functions.php') && SQ_Classes_Helpers_Tools::getMenuVisible('show_assistant')),
|
302 |
),//Live Assistant Oxygen
|
303 |
array(
|
304 |
-
'title' => "Divi Builder
|
305 |
'description' => "The SEO Live Assistant <strong>works on the front-end of Divi</strong>, just as you're creating or editing your Divi page.",
|
306 |
'category' => "Assistants",
|
307 |
'mainfeature' => false,
|
@@ -314,6 +314,20 @@ class SQ_Core_BlockFeatures extends SQ_Classes_BlockController
|
|
314 |
'details' => 'https://howto12.squirrly.co/kb/squirrly-live-assistant/#divi',
|
315 |
'show' => (SQ_Classes_Helpers_Tools::isPluginInstalled('divi-builder/divi-builder.php') || SQ_Classes_Helpers_Tools::isThemeActive('Divi')),
|
316 |
),//Live Assistant Divi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
317 |
array(
|
318 |
'title' => "Blogging Assistant",
|
319 |
'description' => "Add relevant <strong>Copyright-Free images, Tweets, Wikis, Blog Excerpts</strong> in your posts.",
|
@@ -695,6 +709,21 @@ class SQ_Core_BlockFeatures extends SQ_Classes_BlockController
|
|
695 |
'keywords' => 'rich,snippets,jsonld,video',
|
696 |
'show' => true,
|
697 |
), //JSON-LD Optimizaition
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
698 |
array(
|
699 |
'title' => "Robots.txt File",
|
700 |
'description' => "Tell search engine crawlers which pages or files the crawler can or can't request from your site.",
|
301 |
'show' => (SQ_Classes_Helpers_Tools::isPluginInstalled('oxygen/functions.php') && SQ_Classes_Helpers_Tools::getMenuVisible('show_assistant')),
|
302 |
),//Live Assistant Oxygen
|
303 |
array(
|
304 |
+
'title' => "Divi Builder",
|
305 |
'description' => "The SEO Live Assistant <strong>works on the front-end of Divi</strong>, just as you're creating or editing your Divi page.",
|
306 |
'category' => "Assistants",
|
307 |
'mainfeature' => false,
|
314 |
'details' => 'https://howto12.squirrly.co/kb/squirrly-live-assistant/#divi',
|
315 |
'show' => (SQ_Classes_Helpers_Tools::isPluginInstalled('divi-builder/divi-builder.php') || SQ_Classes_Helpers_Tools::isThemeActive('Divi')),
|
316 |
),//Live Assistant Divi
|
317 |
+
array(
|
318 |
+
'title' => "Thrive Architect (BETA)",
|
319 |
+
'description' => "The SEO Live Assistant <strong>works on the front-end of Thrive Architect</strong>, just as you're creating or editing your Thrive Architect page.",
|
320 |
+
'category' => "Assistants",
|
321 |
+
'mainfeature' => false,
|
322 |
+
'option' => 'sq_sla_frontend',
|
323 |
+
'active' => SQ_Classes_Helpers_Tools::getOption('sq_sla_frontend'),
|
324 |
+
'optional' => true,
|
325 |
+
'connection' => false,
|
326 |
+
'logo' => 'fa-solid fa-message',
|
327 |
+
'link' => SQ_Classes_Helpers_Tools::getAdminUrl('sq_assistant', 'settings'),
|
328 |
+
'details' => 'https://howto12.squirrly.co/kb/squirrly-live-assistant/#thrive',
|
329 |
+
'show' => SQ_Classes_Helpers_Tools::isPluginInstalled('thrive-visual-editor/thrive-visual-editor.php'),
|
330 |
+
),//Live Assistant Thrive Architect
|
331 |
array(
|
332 |
'title' => "Blogging Assistant",
|
333 |
'description' => "Add relevant <strong>Copyright-Free images, Tweets, Wikis, Blog Excerpts</strong> in your posts.",
|
709 |
'keywords' => 'rich,snippets,jsonld,video',
|
710 |
'show' => true,
|
711 |
), //JSON-LD Optimizaition
|
712 |
+
array(
|
713 |
+
'title' => "Personal Brand Rich Snippets",
|
714 |
+
'description' => "Edit your website's personal brand Schema with Squirrly's powerful <strong>semantic SEO Markup Solution</strong>. If your website is a personal website, you need to add the author data to build a valid JSON-LD.",
|
715 |
+
'category' => "Miscellaneous Features",
|
716 |
+
'mainfeature' => false,
|
717 |
+
'option' => 'sq_jsonld_personal',
|
718 |
+
'active' => SQ_Classes_Helpers_Tools::getOption('sq_jsonld_personal'),
|
719 |
+
'optional' => true,
|
720 |
+
'connection' => false,
|
721 |
+
'logo' => 'fa-solid fa-barcode-read',
|
722 |
+
'link' => SQ_Classes_Helpers_Tools::getAdminUrl('sq_seosettings', 'jsonld#tab=personal'),
|
723 |
+
'details' => 'https://howto12.squirrly.co/kb/json-ld-structured-data/#Add-JSON-LD-Profile',
|
724 |
+
'keywords' => 'rich,snippets,jsonld,personal,video',
|
725 |
+
'show' => true,
|
726 |
+
), //JSON-LD Optimizaition
|
727 |
array(
|
728 |
'title' => "Robots.txt File",
|
729 |
'description' => "Tell search engine crawlers which pages or files the crawler can or can't request from your site.",
|
models/Compatibility.php
CHANGED
@@ -167,20 +167,16 @@ class SQ_Models_Compatibility
|
|
167 |
// }
|
168 |
|
169 |
//Load SLA in Thrive Backend
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
//
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
// //activate SLA for Thrive on frontend
|
181 |
-
// add_action('tcb_editor_iframe_after', array(SQ_Classes_ObjController::getClass('SQ_Models_LiveAssistant'), 'loadFrontent'), 99);
|
182 |
-
// }
|
183 |
-
// }
|
184 |
|
185 |
//Load SLA in Zion Backend
|
186 |
// if (SQ_Classes_Helpers_Tools::isPluginInstalled('zionbuilder/zionbuilder.php')) {
|
@@ -259,15 +255,16 @@ class SQ_Models_Compatibility
|
|
259 |
// }
|
260 |
|
261 |
//Load the SLA for Elementor Editor
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
|
|
271 |
|
272 |
|
273 |
|
167 |
// }
|
168 |
|
169 |
//Load SLA in Thrive Backend
|
170 |
+
if (SQ_Classes_Helpers_Tools::isPluginInstalled('thrive-visual-editor/thrive-visual-editor.php')) {
|
171 |
+
if (SQ_Classes_Helpers_Tools::getValue('action') == 'architect') {
|
172 |
+
//activate frontend SLA
|
173 |
+
add_filter('sq_load_frontend_sla', '__return_true');
|
174 |
+
|
175 |
+
//activate SLA for Thrive on frontend
|
176 |
+
add_action('tcb_editor_iframe_after', array(SQ_Classes_ObjController::getClass('SQ_Models_LiveAssistant'), 'loadFrontent'), 99);
|
177 |
+
|
178 |
+
}
|
179 |
+
}
|
|
|
|
|
|
|
|
|
180 |
|
181 |
//Load SLA in Zion Backend
|
182 |
// if (SQ_Classes_Helpers_Tools::isPluginInstalled('zionbuilder/zionbuilder.php')) {
|
255 |
// }
|
256 |
|
257 |
//Load the SLA for Elementor Editor
|
258 |
+
if (SQ_Classes_Helpers_Tools::isPluginInstalled('thrive-visual-editor/thrive-visual-editor.php')) {
|
259 |
+
|
260 |
+
if (SQ_Classes_Helpers_Tools::getValue('tve')) {
|
261 |
+
|
262 |
+
//Load the style for builders
|
263 |
+
add_action('wp_enqueue_scripts', function () {
|
264 |
+
SQ_Classes_ObjController::getClass('SQ_Classes_DisplayController')->loadMedia('builders');
|
265 |
+
});
|
266 |
+
}
|
267 |
+
}
|
268 |
|
269 |
|
270 |
|
models/Frontend.php
CHANGED
@@ -137,7 +137,12 @@ class SQ_Models_Frontend
|
|
137 |
$header_str = preg_replace('/<!--(.*)-->/Uis', '', $header_str);
|
138 |
}
|
139 |
|
140 |
-
|
|
|
|
|
|
|
|
|
|
|
141 |
|
142 |
if (SQ_Classes_Helpers_Tools::getOption('sq_auto_links')) {
|
143 |
if (SQ_Classes_Helpers_Tools::getOption('sq_external_nofollow') || SQ_Classes_Helpers_Tools::getOption('sq_external_blank')) {
|
@@ -164,6 +169,9 @@ class SQ_Models_Frontend
|
|
164 |
{
|
165 |
//Build the Header
|
166 |
$header = array();
|
|
|
|
|
|
|
167 |
$header['sq_title'] = apply_filters('sq_title', false);
|
168 |
|
169 |
//Get all header in array
|
@@ -195,6 +203,8 @@ class SQ_Models_Frontend
|
|
195 |
$header['sq_json_ld'] = apply_filters('sq_json_ld', false);
|
196 |
$header['sq_end'] = $this->setEnd();
|
197 |
|
|
|
|
|
198 |
//flush the header
|
199 |
if (count($header)) {
|
200 |
$header = array_filter($header);
|
@@ -252,6 +262,8 @@ class SQ_Models_Frontend
|
|
252 |
|
253 |
//load all services
|
254 |
if (SQ_Classes_Helpers_Tools::getOption('sq_auto_metas')) {
|
|
|
|
|
255 |
if (SQ_Classes_Helpers_Tools::getOption('sq_auto_title')) {
|
256 |
SQ_Classes_ObjController::getClass('SQ_Models_Services_Title');
|
257 |
}
|
137 |
$header_str = preg_replace('/<!--(.*)-->/Uis', '', $header_str);
|
138 |
}
|
139 |
|
140 |
+
//load squirrly metas last or first
|
141 |
+
if(SQ_Classes_Helpers_Tools::getOption('sq_laterload')){
|
142 |
+
$buffer = preg_replace('/(<\/head>)/si', $header_str . "\n" . "$1", $buffer, 1);
|
143 |
+
}else{
|
144 |
+
$buffer = preg_replace('/(<head(\s[^>]*|)>)/si', "$1" . "\n" . $header_str . "\n", $buffer, 1);
|
145 |
+
}
|
146 |
|
147 |
if (SQ_Classes_Helpers_Tools::getOption('sq_auto_links')) {
|
148 |
if (SQ_Classes_Helpers_Tools::getOption('sq_external_nofollow') || SQ_Classes_Helpers_Tools::getOption('sq_external_blank')) {
|
169 |
{
|
170 |
//Build the Header
|
171 |
$header = array();
|
172 |
+
|
173 |
+
$header['sq_beforemeta'] = apply_filters('sq_beforemeta', false); //
|
174 |
+
|
175 |
$header['sq_title'] = apply_filters('sq_title', false);
|
176 |
|
177 |
//Get all header in array
|
203 |
$header['sq_json_ld'] = apply_filters('sq_json_ld', false);
|
204 |
$header['sq_end'] = $this->setEnd();
|
205 |
|
206 |
+
$header['sq_aftermeta'] = apply_filters('sq_aftermeta', false);
|
207 |
+
|
208 |
//flush the header
|
209 |
if (count($header)) {
|
210 |
$header = array_filter($header);
|
262 |
|
263 |
//load all services
|
264 |
if (SQ_Classes_Helpers_Tools::getOption('sq_auto_metas')) {
|
265 |
+
SQ_Classes_ObjController::getClass('SQ_Models_Services_CustomMetas');
|
266 |
+
|
267 |
if (SQ_Classes_Helpers_Tools::getOption('sq_auto_title')) {
|
268 |
SQ_Classes_ObjController::getClass('SQ_Models_Services_Title');
|
269 |
}
|
models/LiveAssistant.php
CHANGED
@@ -137,14 +137,10 @@ class SQ_Models_LiveAssistant
|
|
137 |
|
138 |
if (in_array($post->post_type, (array)$types)) {
|
139 |
//Load the assistant for frontend
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
if (!wp_script_is('jquery-ui-core') || !wp_script_is('jquery-ui-draggable')) {
|
145 |
-
wp_enqueue_script("jquery-ui-core");
|
146 |
-
wp_enqueue_script("jquery-ui-draggable");
|
147 |
-
}
|
148 |
|
149 |
//Load media in frontend
|
150 |
$args = array('trigger'=>true);
|
137 |
|
138 |
if (in_array($post->post_type, (array)$types)) {
|
139 |
//Load the assistant for frontend
|
140 |
+
wp_enqueue_script('jquery');
|
141 |
+
wp_enqueue_script('jquery-ui-core');
|
142 |
+
wp_enqueue_script('jquery-ui-draggable');
|
143 |
+
wp_print_scripts(array('jquery', 'jquery-ui-core', 'jquery-ui-draggable'));
|
|
|
|
|
|
|
|
|
144 |
|
145 |
//Load media in frontend
|
146 |
$args = array('trigger'=>true);
|
models/Menu.php
CHANGED
@@ -654,15 +654,15 @@ class SQ_Models_Menu
|
|
654 |
'icon' => 'fa-solid fa-barcode-read',
|
655 |
'show' => SQ_Classes_Helpers_Tools::getOption('sq_auto_jsonld'),
|
656 |
'tabs' => array(
|
|
|
|
|
|
|
|
|
657 |
array(
|
658 |
'title' => esc_html__("Personal Brand / Author", 'hide-my-wp') ,
|
659 |
'tab' =>'personal',
|
660 |
'show' => SQ_Classes_Helpers_Tools::getOption('sq_jsonld_personal'),
|
661 |
),
|
662 |
-
array(
|
663 |
-
'title' => esc_html__("Company", 'hide-my-wp') ,
|
664 |
-
'tab' =>'company',
|
665 |
-
),
|
666 |
array(
|
667 |
'title' => esc_html__("WooCommerce", 'hide-my-wp') ,
|
668 |
'tab' =>'woocommerce',
|
654 |
'icon' => 'fa-solid fa-barcode-read',
|
655 |
'show' => SQ_Classes_Helpers_Tools::getOption('sq_auto_jsonld'),
|
656 |
'tabs' => array(
|
657 |
+
array(
|
658 |
+
'title' => esc_html__("Company", 'hide-my-wp') ,
|
659 |
+
'tab' =>'company',
|
660 |
+
),
|
661 |
array(
|
662 |
'title' => esc_html__("Personal Brand / Author", 'hide-my-wp') ,
|
663 |
'tab' =>'personal',
|
664 |
'show' => SQ_Classes_Helpers_Tools::getOption('sq_jsonld_personal'),
|
665 |
),
|
|
|
|
|
|
|
|
|
666 |
array(
|
667 |
'title' => esc_html__("WooCommerce", 'hide-my-wp') ,
|
668 |
'tab' =>'woocommerce',
|
models/Settings.php
CHANGED
@@ -43,7 +43,7 @@ class SQ_Models_Settings
|
|
43 |
$robots = str_replace("\r", "", $robots);
|
44 |
|
45 |
if (!empty($robots)) {
|
46 |
-
SQ_Classes_Helpers_Tools::$options['sq_robots_permission'] =
|
47 |
}
|
48 |
}
|
49 |
|
43 |
$robots = str_replace("\r", "", $robots);
|
44 |
|
45 |
if (!empty($robots)) {
|
46 |
+
SQ_Classes_Helpers_Tools::$options['sq_robots_permission'] = $robots;
|
47 |
}
|
48 |
}
|
49 |
|
models/domain/Patterns.php
CHANGED
@@ -9,7 +9,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
9 |
protected $_post_type;
|
10 |
protected $_guid; //Replaced with the post/page slug
|
11 |
|
12 |
-
public function setId($id)
|
13 |
{
|
14 |
$this->_id = $id;
|
15 |
}
|
@@ -17,28 +17,28 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
17 |
/*********************************************************************************/
|
18 |
protected $_date; //Replaced with the date of the post/page
|
19 |
|
20 |
-
public function setPost_date($value)
|
21 |
{
|
22 |
$this->_date = $value;
|
23 |
}
|
24 |
|
25 |
protected $_post_day; //Replaced with the date of the post/page
|
26 |
|
27 |
-
public function getPost_day()
|
28 |
{
|
29 |
return date('y', strtotime($this->_date));
|
30 |
}
|
31 |
|
32 |
protected $_post_month; //Replaced with the date of the post/page
|
33 |
|
34 |
-
public function getPost_month()
|
35 |
{
|
36 |
return date('m', strtotime($this->_date));
|
37 |
}
|
38 |
|
39 |
protected $_post_year; //Replaced with the date of the post/page
|
40 |
|
41 |
-
public function getPost_year()
|
42 |
{
|
43 |
return date('Y', strtotime($this->_date));
|
44 |
}
|
@@ -46,14 +46,14 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
46 |
//
|
47 |
protected $_title; //Replaced with the title of the post/page
|
48 |
|
49 |
-
public function setPost_title($value)
|
50 |
{
|
51 |
if ($value <> '') {
|
52 |
$this->_title = $value;
|
53 |
}
|
54 |
}
|
55 |
|
56 |
-
public function getTitle()
|
57 |
{
|
58 |
if (!isset($this->_title) || $this->_title == '') {
|
59 |
if ((int)$this->_term_id > 0) {
|
@@ -69,14 +69,14 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
69 |
}
|
70 |
|
71 |
$this->_title = SQ_Classes_Helpers_Sanitize::clearTitle($this->_title);
|
72 |
-
return $this->truncate($this->_title, 10, $this->
|
73 |
}
|
74 |
|
75 |
//
|
76 |
protected $_post_parent;
|
77 |
protected $_parent_title; //Replaced with the title of the parent page of the current page
|
78 |
|
79 |
-
public function getParent_title()
|
80 |
{
|
81 |
if (isset($this->_post_parent) && (int)$this->_post_parent > 0) {
|
82 |
if ($post = $this->_getPost($this->_post_parent)) {
|
@@ -89,7 +89,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
89 |
|
90 |
protected $_sitename; //The site's name
|
91 |
|
92 |
-
public function getSitename()
|
93 |
{
|
94 |
return get_bloginfo('name');
|
95 |
}
|
@@ -97,7 +97,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
97 |
//
|
98 |
protected $_sitedesc; //The site's tag line / description
|
99 |
|
100 |
-
public function getSitedesc()
|
101 |
{
|
102 |
$description = SQ_Classes_Helpers_Sanitize::clearDescription(get_bloginfo('description'));
|
103 |
return $this->truncate($description, 10, $this->getDescription_maxlength());
|
@@ -106,7 +106,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
106 |
//
|
107 |
protected $_excerpt; //Replaced with the post/page excerpt (or auto-generated if it does not exist)
|
108 |
|
109 |
-
public function setPost_excerpt($value)
|
110 |
{
|
111 |
if ($value <> '') {
|
112 |
$this->_excerpt = trim($value);
|
@@ -115,7 +115,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
115 |
|
116 |
protected $_excludedText = array('This is a Page excerpt. It will be displayed for search results', 'Auto Draft');
|
117 |
|
118 |
-
public function getExcerpt()
|
119 |
{
|
120 |
if (!isset($this->_excerpt) || $this->_excerpt == '') {
|
121 |
if ((int)$this->_term_id > 0) {
|
@@ -142,7 +142,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
142 |
|
143 |
protected $_post_description; //Replaced with the post/page content description (or auto-generated if it does not exist)
|
144 |
|
145 |
-
public function getPost_description()
|
146 |
{
|
147 |
if ($post = $this->currentpost) {
|
148 |
|
@@ -157,7 +157,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
157 |
|
158 |
protected $_excerpt_only; //Replaced with the post/page excerpt (without auto-generation)
|
159 |
|
160 |
-
public function getExcerpt_only()
|
161 |
{
|
162 |
if ($post = $this->currentpost) {
|
163 |
|
@@ -177,7 +177,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
177 |
//
|
178 |
protected $_category; //Replaced with the post categories (comma separated)
|
179 |
|
180 |
-
public function getCategory()
|
181 |
{
|
182 |
if (!isset($this->_category) || $this->_category == '') {
|
183 |
if ($this->_post_type == 'category') {
|
@@ -195,7 +195,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
195 |
protected $_primary_category; //Replaced with the primary category of the post/page
|
196 |
protected $_primary_category_id;
|
197 |
|
198 |
-
public function getPrimary_category()
|
199 |
{
|
200 |
if (!isset($this->_primary_category) || $this->_primary_category == '') {
|
201 |
if ($this->_id > 0) {
|
@@ -212,7 +212,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
212 |
//
|
213 |
protected $_category_description; //Replaced with the category description
|
214 |
|
215 |
-
public function getCategory_description()
|
216 |
{
|
217 |
if (!isset($this->_category_description) || $this->_category_description == '') {
|
218 |
if ($this->_post_type == 'category') {
|
@@ -248,7 +248,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
248 |
|
249 |
protected $_tag; //Replaced with the current tag/tags
|
250 |
|
251 |
-
public function getTag()
|
252 |
{
|
253 |
if (!isset($this->_tag) || $this->_tag == '') {
|
254 |
if ($this->_post_type == 'tag') {
|
@@ -281,7 +281,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
281 |
|
282 |
protected $_tag_description; //Replaced with the tag description
|
283 |
|
284 |
-
public function getTag_description()
|
285 |
{
|
286 |
if (!isset($this->_tag_description) || $this->_tag_description == '') {
|
287 |
if ($this->_post_type == 'tag') {
|
@@ -314,7 +314,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
314 |
|
315 |
protected $_term_title; //Replaced with the term name
|
316 |
|
317 |
-
public function getTerm_title()
|
318 |
{
|
319 |
if (!isset($this->_term_title) || $this->_term_title == '') {
|
320 |
if ((int)$this->_term_id > 0) {
|
@@ -328,7 +328,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
328 |
|
329 |
protected $_term_description; //Replaced with the term description
|
330 |
|
331 |
-
public function getTerm_description()
|
332 |
{
|
333 |
if (!isset($this->_term_description) || $this->_term_description == '') {
|
334 |
if ((int)$this->_term_id > 0) {
|
@@ -343,7 +343,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
343 |
//
|
344 |
protected $_searchphrase; //Replaced with the current search phrase
|
345 |
|
346 |
-
public function getSearchphrase()
|
347 |
{
|
348 |
if (!isset($this->_searchphrase)) {
|
349 |
$search = get_query_var('s');
|
@@ -361,14 +361,14 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
361 |
//
|
362 |
protected $_sep; //The separator defined in your theme's wp_title tag
|
363 |
|
364 |
-
public function setSep($sep = null)
|
365 |
{
|
366 |
if (isset($sep) && $sep <> '') {
|
367 |
$this->_sep = $sep;
|
368 |
}
|
369 |
}
|
370 |
|
371 |
-
public function getSep()
|
372 |
{
|
373 |
if (!isset($this->_sep)) {
|
374 |
$this->_sep = '-';
|
@@ -387,7 +387,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
387 |
//
|
388 |
protected $_page; //Replaced with the current page number with context (i.e. page 2 of 4)
|
389 |
|
390 |
-
public function getPage()
|
391 |
{
|
392 |
if (is_paged()) {
|
393 |
return $this->sep . ' ' . esc_html__("Page", 'squirrly-seo') . ' ' . (int)get_query_var('paged') . ' ' .
|
@@ -399,7 +399,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
399 |
//
|
400 |
protected $_pagetotal; //Replaced with the current page total
|
401 |
|
402 |
-
public function getPagetotal()
|
403 |
{
|
404 |
global $wp_query;
|
405 |
if (isset($wp_query->max_num_pages))
|
@@ -411,7 +411,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
411 |
protected $_pagenumber; //Replaced with the current page number
|
412 |
|
413 |
//
|
414 |
-
public function getPagenumber()
|
415 |
{
|
416 |
if (is_paged()) {
|
417 |
return (int)get_query_var('paged');
|
@@ -430,7 +430,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
430 |
*
|
431 |
* @return stdClass|string
|
432 |
*/
|
433 |
-
public function getPt_single()
|
434 |
{
|
435 |
return $this->getSingle();
|
436 |
|
@@ -441,7 +441,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
441 |
*
|
442 |
* @return stdClass|string
|
443 |
*/
|
444 |
-
public function getPt_plural()
|
445 |
{
|
446 |
return $this->getPlural();
|
447 |
}
|
@@ -451,7 +451,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
451 |
*
|
452 |
* @return string
|
453 |
*/
|
454 |
-
public function getSingle()
|
455 |
{
|
456 |
if (function_exists('get_post_type_object')) {
|
457 |
$post_type = $this->post_type;
|
@@ -472,7 +472,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
472 |
*
|
473 |
* @return string
|
474 |
*/
|
475 |
-
public function getPlural()
|
476 |
{
|
477 |
if (function_exists('get_post_type_object')) {
|
478 |
$post_type = $this->post_type;
|
@@ -490,7 +490,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
490 |
|
491 |
protected $_modified; //Replaced with the post/page modified time
|
492 |
|
493 |
-
public function setPost_modified($value)
|
494 |
{
|
495 |
if ($value <> '') {
|
496 |
$this->_modified = $value;
|
@@ -500,7 +500,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
500 |
|
501 |
protected $_name; //Replaced with the post/page author's 'nicename'
|
502 |
|
503 |
-
public function setPost_author($value)
|
504 |
{
|
505 |
if ($value <> '') {
|
506 |
if (is_numeric($value)) {
|
@@ -513,7 +513,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
513 |
|
514 |
protected $_user_description; //Replaced with the post/page author's 'Biographical Info'
|
515 |
|
516 |
-
public function getUser_description()
|
517 |
{
|
518 |
if (!isset($this->_user_description) || $this->_user_description == '') {
|
519 |
if ($this->_post_type == 'profile') {
|
@@ -528,35 +528,35 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
528 |
protected $_userid; //Replaced with the post/page author's userid
|
529 |
protected $_currenttime; //Replaced with the current time
|
530 |
|
531 |
-
public function getCurrenttime()
|
532 |
{
|
533 |
return date(get_option('time_format'));
|
534 |
}
|
535 |
|
536 |
protected $_currentdate; //Replaced with the current date
|
537 |
|
538 |
-
public function getCurrentdate()
|
539 |
{
|
540 |
return date(get_option('date_format'));
|
541 |
}
|
542 |
|
543 |
protected $_currentday; //Replaced with the current day
|
544 |
|
545 |
-
public function getCurrentday()
|
546 |
{
|
547 |
return date('d');
|
548 |
}
|
549 |
|
550 |
protected $_currentmonth; //Replaced with the current month
|
551 |
|
552 |
-
public function getCurrentmonth()
|
553 |
{
|
554 |
return date('F');
|
555 |
}
|
556 |
|
557 |
protected $_currentyear; //Replaced with the current year
|
558 |
|
559 |
-
public function getCurrentyear()
|
560 |
{
|
561 |
return date('Y');
|
562 |
}
|
@@ -568,17 +568,17 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
568 |
protected $_keyword; //Replaced with the posts focus keyword
|
569 |
protected $_focuskw; //Same as keyword
|
570 |
|
571 |
-
public function setKeywords($value)
|
572 |
{
|
573 |
$this->_focuskw = $this->_keyword = $value;
|
574 |
}
|
575 |
|
576 |
-
public function getKeyword()
|
577 |
{
|
578 |
return $this->_keyword;
|
579 |
}
|
580 |
|
581 |
-
public function getFocuskw()
|
582 |
{
|
583 |
return $this->_focuskw;
|
584 |
}
|
@@ -587,7 +587,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
587 |
/*********************************************************************************/
|
588 |
|
589 |
///////////
|
590 |
-
public function getPatterns()
|
591 |
{
|
592 |
$patterns = array();
|
593 |
|
@@ -603,7 +603,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
603 |
|
604 |
protected $_currentpost;
|
605 |
|
606 |
-
public function getCurrentPost()
|
607 |
{
|
608 |
if (!isset($this->_currentpost)) {
|
609 |
if (isset($this->id) && (int)$this->id > 0) {
|
@@ -616,7 +616,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
616 |
return $this->_currentpost;
|
617 |
}
|
618 |
|
619 |
-
private function _getPost($id = null)
|
620 |
{
|
621 |
$post = false;
|
622 |
|
@@ -629,7 +629,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
629 |
return $post;
|
630 |
}
|
631 |
|
632 |
-
public function truncate($text, $min = 100, $max = 110)
|
633 |
{
|
634 |
|
635 |
if ($text <> '' && strlen($text) > $max) {
|
@@ -645,13 +645,13 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
645 |
return $text;
|
646 |
}
|
647 |
|
648 |
-
public function getTitle_maxlength()
|
649 |
{
|
650 |
$metas = SQ_Classes_Helpers_Tools::getOption('sq_metas');
|
651 |
return $metas['title_maxlength'];
|
652 |
}
|
653 |
|
654 |
-
public function getDescription_maxlength()
|
655 |
{
|
656 |
$metas = SQ_Classes_Helpers_Tools::getOption('sq_metas');
|
657 |
return $metas['description_maxlength'];
|
@@ -659,7 +659,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
659 |
|
660 |
protected $_product_name;
|
661 |
|
662 |
-
public function getProduct_name()
|
663 |
{
|
664 |
global $product;
|
665 |
|
@@ -693,7 +693,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
693 |
protected $_product_price;
|
694 |
|
695 |
|
696 |
-
public function getProduct_price()
|
697 |
{
|
698 |
global $product;
|
699 |
|
@@ -723,7 +723,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
723 |
|
724 |
protected $_product_price_with_tax;
|
725 |
|
726 |
-
public function getProduct_price_with_tax()
|
727 |
{
|
728 |
global $product;
|
729 |
|
@@ -760,7 +760,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
760 |
|
761 |
protected $_product_brand;
|
762 |
|
763 |
-
public function getProduct_brand()
|
764 |
{
|
765 |
global $product;
|
766 |
|
@@ -821,7 +821,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
821 |
|
822 |
protected $_product_sale;
|
823 |
|
824 |
-
public function getProduct_sale()
|
825 |
{
|
826 |
global $product;
|
827 |
|
@@ -852,7 +852,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
852 |
|
853 |
protected $_product_currency;
|
854 |
|
855 |
-
public function getProduct_currency()
|
856 |
{
|
857 |
global $product;
|
858 |
|
@@ -882,7 +882,7 @@ class SQ_Models_Domain_Patterns extends SQ_Models_Abstract_Domain
|
|
882 |
|
883 |
protected $_custom_field;
|
884 |
|
885 |
-
public function getCustom_field()
|
886 |
{
|
887 |
return '';
|
888 |
}
|
9 |
protected $_post_type;
|
10 |
protected $_guid; //Replaced with the post/page slug
|
11 |
|
12 |
+
public function setId($id)
|
13 |
{
|
14 |
$this->_id = $id;
|
15 |
}
|
17 |
/*********************************************************************************/
|
18 |
protected $_date; //Replaced with the date of the post/page
|
19 |
|
20 |
+
public function setPost_date($value)
|
21 |
{
|
22 |
$this->_date = $value;
|
23 |
}
|
24 |
|
25 |
protected $_post_day; //Replaced with the date of the post/page
|
26 |
|
27 |
+
public function getPost_day()
|
28 |
{
|
29 |
return date('y', strtotime($this->_date));
|
30 |
}
|
31 |
|
32 |
protected $_post_month; //Replaced with the date of the post/page
|
33 |
|
34 |
+
public function getPost_month()
|
35 |
{
|
36 |
return date('m', strtotime($this->_date));
|
37 |
}
|
38 |
|
39 |
protected $_post_year; //Replaced with the date of the post/page
|
40 |
|
41 |
+
public function getPost_year()
|
42 |
{
|
43 |
return date('Y', strtotime($this->_date));
|
44 |
}
|
46 |
//
|
47 |
protected $_title; //Replaced with the title of the post/page
|
48 |
|
49 |
+
public function setPost_title($value)
|
50 |
{
|
51 |
if ($value <> '') {
|
52 |
$this->_title = $value;
|
53 |
}
|
54 |
}
|
55 |
|
56 |
+
public function getTitle()
|
57 |
{
|
58 |
if (!isset($this->_title) || $this->_title == '') {
|
59 |
if ((int)$this->_term_id > 0) {
|
69 |
}
|
70 |
|
71 |
$this->_title = SQ_Classes_Helpers_Sanitize::clearTitle($this->_title);
|
72 |
+
return $this->truncate($this->_title, 10, $this->getTitle_maxlength());
|
73 |
}
|
74 |
|
75 |
//
|
76 |
protected $_post_parent;
|
77 |
protected $_parent_title; //Replaced with the title of the parent page of the current page
|
78 |
|
79 |
+
public function getParent_title()
|
80 |
{
|
81 |
if (isset($this->_post_parent) && (int)$this->_post_parent > 0) {
|
82 |
if ($post = $this->_getPost($this->_post_parent)) {
|
89 |
|
90 |
protected $_sitename; //The site's name
|
91 |
|
92 |
+
public function getSitename()
|
93 |
{
|
94 |
return get_bloginfo('name');
|
95 |
}
|
97 |
//
|
98 |
protected $_sitedesc; //The site's tag line / description
|
99 |
|
100 |
+
public function getSitedesc()
|
101 |
{
|
102 |
$description = SQ_Classes_Helpers_Sanitize::clearDescription(get_bloginfo('description'));
|
103 |
return $this->truncate($description, 10, $this->getDescription_maxlength());
|
106 |
//
|
107 |
protected $_excerpt; //Replaced with the post/page excerpt (or auto-generated if it does not exist)
|
108 |
|
109 |
+
public function setPost_excerpt($value)
|
110 |
{
|
111 |
if ($value <> '') {
|
112 |
$this->_excerpt = trim($value);
|
115 |
|
116 |
protected $_excludedText = array('This is a Page excerpt. It will be displayed for search results', 'Auto Draft');
|
117 |
|
118 |
+
public function getExcerpt()
|
119 |
{
|
120 |
if (!isset($this->_excerpt) || $this->_excerpt == '') {
|
121 |
if ((int)$this->_term_id > 0) {
|
142 |
|
143 |
protected $_post_description; //Replaced with the post/page content description (or auto-generated if it does not exist)
|
144 |
|
145 |
+
public function getPost_description()
|
146 |
{
|
147 |
if ($post = $this->currentpost) {
|
148 |
|
157 |
|
158 |
protected $_excerpt_only; //Replaced with the post/page excerpt (without auto-generation)
|
159 |
|
160 |
+
public function getExcerpt_only()
|
161 |
{
|
162 |
if ($post = $this->currentpost) {
|
163 |
|
177 |
//
|
178 |
protected $_category; //Replaced with the post categories (comma separated)
|
179 |
|
180 |
+
public function getCategory()
|
181 |
{
|
182 |
if (!isset($this->_category) || $this->_category == '') {
|
183 |
if ($this->_post_type == 'category') {
|
195 |
protected $_primary_category; //Replaced with the primary category of the post/page
|
196 |
protected $_primary_category_id;
|
197 |
|
198 |
+
public function getPrimary_category()
|
199 |
{
|
200 |
if (!isset($this->_primary_category) || $this->_primary_category == '') {
|
201 |
if ($this->_id > 0) {
|
212 |
//
|
213 |
protected $_category_description; //Replaced with the category description
|
214 |
|
215 |
+
public function getCategory_description()
|
216 |
{
|
217 |
if (!isset($this->_category_description) || $this->_category_description == '') {
|
218 |
if ($this->_post_type == 'category') {
|
248 |
|
249 |
protected $_tag; //Replaced with the current tag/tags
|
250 |
|
251 |
+
public function getTag()
|
252 |
{
|
253 |
if (!isset($this->_tag) || $this->_tag == '') {
|
254 |
if ($this->_post_type == 'tag') {
|
281 |
|
282 |
protected $_tag_description; //Replaced with the tag description
|
283 |
|
284 |
+
public function getTag_description()
|
285 |
{
|
286 |
if (!isset($this->_tag_description) || $this->_tag_description == '') {
|
287 |
if ($this->_post_type == 'tag') {
|
314 |
|
315 |
protected $_term_title; //Replaced with the term name
|
316 |
|
317 |
+
public function getTerm_title()
|
318 |
{
|
319 |
if (!isset($this->_term_title) || $this->_term_title == '') {
|
320 |
if ((int)$this->_term_id > 0) {
|
328 |
|
329 |
protected $_term_description; //Replaced with the term description
|
330 |
|
331 |
+
public function getTerm_description()
|
332 |
{
|
333 |
if (!isset($this->_term_description) || $this->_term_description == '') {
|
334 |
if ((int)$this->_term_id > 0) {
|
343 |
//
|
344 |
protected $_searchphrase; //Replaced with the current search phrase
|
345 |
|
346 |
+
public function getSearchphrase()
|
347 |
{
|
348 |
if (!isset($this->_searchphrase)) {
|
349 |
$search = get_query_var('s');
|
361 |
//
|
362 |
protected $_sep; //The separator defined in your theme's wp_title tag
|
363 |
|
364 |
+
public function setSep($sep = null)
|
365 |
{
|
366 |
if (isset($sep) && $sep <> '') {
|
367 |
$this->_sep = $sep;
|
368 |
}
|
369 |
}
|
370 |
|
371 |
+
public function getSep()
|
372 |
{
|
373 |
if (!isset($this->_sep)) {
|
374 |
$this->_sep = '-';
|
387 |
//
|
388 |
protected $_page; //Replaced with the current page number with context (i.e. page 2 of 4)
|
389 |
|
390 |
+
public function getPage()
|
391 |
{
|
392 |
if (is_paged()) {
|
393 |
return $this->sep . ' ' . esc_html__("Page", 'squirrly-seo') . ' ' . (int)get_query_var('paged') . ' ' .
|
399 |
//
|
400 |
protected $_pagetotal; //Replaced with the current page total
|
401 |
|
402 |
+
public function getPagetotal()
|
403 |
{
|
404 |
global $wp_query;
|
405 |
if (isset($wp_query->max_num_pages))
|
411 |
protected $_pagenumber; //Replaced with the current page number
|
412 |
|
413 |
//
|
414 |
+
public function getPagenumber()
|
415 |
{
|
416 |
if (is_paged()) {
|
417 |
return (int)get_query_var('paged');
|
430 |
*
|
431 |
* @return stdClass|string
|
432 |
*/
|
433 |
+
public function getPt_single()
|
434 |
{
|
435 |
return $this->getSingle();
|
436 |
|
441 |
*
|
442 |
* @return stdClass|string
|
443 |
*/
|
444 |
+
public function getPt_plural()
|
445 |
{
|
446 |
return $this->getPlural();
|
447 |
}
|
451 |
*
|
452 |
* @return string
|
453 |
*/
|
454 |
+
public function getSingle()
|
455 |
{
|
456 |
if (function_exists('get_post_type_object')) {
|
457 |
$post_type = $this->post_type;
|
472 |
*
|
473 |
* @return string
|
474 |
*/
|
475 |
+
public function getPlural()
|
476 |
{
|
477 |
if (function_exists('get_post_type_object')) {
|
478 |
$post_type = $this->post_type;
|
490 |
|
491 |
protected $_modified; //Replaced with the post/page modified time
|
492 |
|
493 |
+
public function setPost_modified($value)
|
494 |
{
|
495 |
if ($value <> '') {
|
496 |
$this->_modified = $value;
|
500 |
|
501 |
protected $_name; //Replaced with the post/page author's 'nicename'
|
502 |
|
503 |
+
public function setPost_author($value)
|
504 |
{
|
505 |
if ($value <> '') {
|
506 |
if (is_numeric($value)) {
|
513 |
|
514 |
protected $_user_description; //Replaced with the post/page author's 'Biographical Info'
|
515 |
|
516 |
+
public function getUser_description()
|
517 |
{
|
518 |
if (!isset($this->_user_description) || $this->_user_description == '') {
|
519 |
if ($this->_post_type == 'profile') {
|
528 |
protected $_userid; //Replaced with the post/page author's userid
|
529 |
protected $_currenttime; //Replaced with the current time
|
530 |
|
531 |
+
public function getCurrenttime()
|
532 |
{
|
533 |
return date(get_option('time_format'));
|
534 |
}
|
535 |
|
536 |
protected $_currentdate; //Replaced with the current date
|
537 |
|
538 |
+
public function getCurrentdate()
|
539 |
{
|
540 |
return date(get_option('date_format'));
|
541 |
}
|
542 |
|
543 |
protected $_currentday; //Replaced with the current day
|
544 |
|
545 |
+
public function getCurrentday()
|
546 |
{
|
547 |
return date('d');
|
548 |
}
|
549 |
|
550 |
protected $_currentmonth; //Replaced with the current month
|
551 |
|
552 |
+
public function getCurrentmonth()
|
553 |
{
|
554 |
return date('F');
|
555 |
}
|
556 |
|
557 |
protected $_currentyear; //Replaced with the current year
|
558 |
|
559 |
+
public function getCurrentyear()
|
560 |
{
|
561 |
return date('Y');
|
562 |
}
|
568 |
protected $_keyword; //Replaced with the posts focus keyword
|
569 |
protected $_focuskw; //Same as keyword
|
570 |
|
571 |
+
public function setKeywords($value)
|
572 |
{
|
573 |
$this->_focuskw = $this->_keyword = $value;
|
574 |
}
|
575 |
|
576 |
+
public function getKeyword()
|
577 |
{
|
578 |
return $this->_keyword;
|
579 |
}
|
580 |
|
581 |
+
public function getFocuskw()
|
582 |
{
|
583 |
return $this->_focuskw;
|
584 |
}
|
587 |
/*********************************************************************************/
|
588 |
|
589 |
///////////
|
590 |
+
public function getPatterns()
|
591 |
{
|
592 |
$patterns = array();
|
593 |
|
603 |
|
604 |
protected $_currentpost;
|
605 |
|
606 |
+
public function getCurrentPost()
|
607 |
{
|
608 |
if (!isset($this->_currentpost)) {
|
609 |
if (isset($this->id) && (int)$this->id > 0) {
|
616 |
return $this->_currentpost;
|
617 |
}
|
618 |
|
619 |
+
private function _getPost($id = null)
|
620 |
{
|
621 |
$post = false;
|
622 |
|
629 |
return $post;
|
630 |
}
|
631 |
|
632 |
+
public function truncate($text, $min = 100, $max = 110)
|
633 |
{
|
634 |
|
635 |
if ($text <> '' && strlen($text) > $max) {
|
645 |
return $text;
|
646 |
}
|
647 |
|
648 |
+
public function getTitle_maxlength()
|
649 |
{
|
650 |
$metas = SQ_Classes_Helpers_Tools::getOption('sq_metas');
|
651 |
return $metas['title_maxlength'];
|
652 |
}
|
653 |
|
654 |
+
public function getDescription_maxlength()
|
655 |
{
|
656 |
$metas = SQ_Classes_Helpers_Tools::getOption('sq_metas');
|
657 |
return $metas['description_maxlength'];
|
659 |
|
660 |
protected $_product_name;
|
661 |
|
662 |
+
public function getProduct_name()
|
663 |
{
|
664 |
global $product;
|
665 |
|
693 |
protected $_product_price;
|
694 |
|
695 |
|
696 |
+
public function getProduct_price()
|
697 |
{
|
698 |
global $product;
|
699 |
|
723 |
|
724 |
protected $_product_price_with_tax;
|
725 |
|
726 |
+
public function getProduct_price_with_tax()
|
727 |
{
|
728 |
global $product;
|
729 |
|
760 |
|
761 |
protected $_product_brand;
|
762 |
|
763 |
+
public function getProduct_brand()
|
764 |
{
|
765 |
global $product;
|
766 |
|
821 |
|
822 |
protected $_product_sale;
|
823 |
|
824 |
+
public function getProduct_sale()
|
825 |
{
|
826 |
global $product;
|
827 |
|
852 |
|
853 |
protected $_product_currency;
|
854 |
|
855 |
+
public function getProduct_currency()
|
856 |
{
|
857 |
global $product;
|
858 |
|
882 |
|
883 |
protected $_custom_field;
|
884 |
|
885 |
+
public function getCustom_field()
|
886 |
{
|
887 |
return '';
|
888 |
}
|
models/services/CustomMetas.php
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class SQ_Models_Services_CustomMetas extends SQ_Models_Abstract_Seo
|
4 |
+
{
|
5 |
+
|
6 |
+
|
7 |
+
public function __construct()
|
8 |
+
{
|
9 |
+
parent::__construct();
|
10 |
+
|
11 |
+
if (isset($this->_post->sq->doseo) && $this->_post->sq->doseo) {
|
12 |
+
if (!$this->_post->sq->do_metas) {
|
13 |
+
return;
|
14 |
+
}
|
15 |
+
|
16 |
+
add_filter('sq_beforemeta', array($this, 'beforeMetas'));
|
17 |
+
add_filter('sq_beforemeta', array($this, 'packMetas'), 99);
|
18 |
+
add_filter('sq_aftermeta', array($this, 'afterMetas'));
|
19 |
+
add_filter('sq_aftermeta', array($this, 'packMetas'), 99);
|
20 |
+
|
21 |
+
} else {
|
22 |
+
add_filter('sq_title', array($this, 'returnFalse'));
|
23 |
+
}
|
24 |
+
|
25 |
+
}
|
26 |
+
|
27 |
+
public function beforeMetas($meta = '')
|
28 |
+
{
|
29 |
+
return SQ_Classes_Helpers_Tools::getOption('sq_beforemeta');
|
30 |
+
}
|
31 |
+
|
32 |
+
public function afterMetas($meta = '')
|
33 |
+
{
|
34 |
+
return SQ_Classes_Helpers_Tools::getOption('sq_aftermeta');
|
35 |
+
}
|
36 |
+
|
37 |
+
public function packMetas($meta = '')
|
38 |
+
{
|
39 |
+
if ($meta <> '') {
|
40 |
+
return html_entity_decode($meta);
|
41 |
+
}
|
42 |
+
|
43 |
+
return false;
|
44 |
+
}
|
45 |
+
|
46 |
+
}
|
models/services/Title.php
CHANGED
@@ -4,7 +4,7 @@ class SQ_Models_Services_Title extends SQ_Models_Abstract_Seo
|
|
4 |
{
|
5 |
|
6 |
|
7 |
-
public function __construct()
|
8 |
{
|
9 |
parent::__construct();
|
10 |
|
@@ -23,7 +23,7 @@ class SQ_Models_Services_Title extends SQ_Models_Abstract_Seo
|
|
23 |
|
24 |
}
|
25 |
|
26 |
-
public function generateTitle($title = '')
|
27 |
{
|
28 |
if ($this->_post->sq->title <> '') {
|
29 |
$title = $this->_post->sq->title;
|
@@ -34,7 +34,7 @@ class SQ_Models_Services_Title extends SQ_Models_Abstract_Seo
|
|
34 |
return $title ;
|
35 |
}
|
36 |
|
37 |
-
public function packTitle($title = '')
|
38 |
{
|
39 |
if ($title <> '') {
|
40 |
return sprintf("<title>%s</title>", $title);
|
4 |
{
|
5 |
|
6 |
|
7 |
+
public function __construct()
|
8 |
{
|
9 |
parent::__construct();
|
10 |
|
23 |
|
24 |
}
|
25 |
|
26 |
+
public function generateTitle($title = '')
|
27 |
{
|
28 |
if ($this->_post->sq->title <> '') {
|
29 |
$title = $this->_post->sq->title;
|
34 |
return $title ;
|
35 |
}
|
36 |
|
37 |
+
public function packTitle($title = '')
|
38 |
{
|
39 |
if ($title <> '') {
|
40 |
return sprintf("<title>%s</title>", $title);
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://plugin.squirrly.co/squirrly-seo-pricing/
|
|
4 |
Tags: SEO, SEO Plugin, XML sitemap, WooCommerce SEO, Search Engine, Open Graph, Video Sitemap, Google News Sitemap, Rich Snippets, Robotx.txt, SEO Automation, Local SEO, SEO Content analysis, SEO Content, SEO Optimization, WordPress SEO, Yoast, Yoast Compatible, Yoast Import, SEO Redirection, Redirection, SEO Sitemap, SEO Caching, Meta Title, Meta Description, Performance, SEO Audit, SEO Keyword Research, SEO Rank Math import, Google Search Console, Schema
|
5 |
Requires at least: 4.3
|
6 |
Tested up to: 6.0
|
7 |
-
Stable tag: 12.1.
|
8 |
Requires PHP: 7.0
|
9 |
License: GPLv2 or later
|
10 |
|
@@ -667,6 +667,15 @@ Type a keyword to the right of the screen and start using Squirrly Seo. Enjoy!
|
|
667 |
7. Squirrly SEO - SEO Briefcase
|
668 |
|
669 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
670 |
= 12.1.07 - 06/23/2022 =
|
671 |
Update - Show Frontend SLA option in Squirrly > Live Assistant > Settings for SEO Experts when a builder is not installed
|
672 |
Update - SLA with Divi Builder load sequence
|
4 |
Tags: SEO, SEO Plugin, XML sitemap, WooCommerce SEO, Search Engine, Open Graph, Video Sitemap, Google News Sitemap, Rich Snippets, Robotx.txt, SEO Automation, Local SEO, SEO Content analysis, SEO Content, SEO Optimization, WordPress SEO, Yoast, Yoast Compatible, Yoast Import, SEO Redirection, Redirection, SEO Sitemap, SEO Caching, Meta Title, Meta Description, Performance, SEO Audit, SEO Keyword Research, SEO Rank Math import, Google Search Console, Schema
|
5 |
Requires at least: 4.3
|
6 |
Tested up to: 6.0
|
7 |
+
Stable tag: 12.1.09
|
8 |
Requires PHP: 7.0
|
9 |
License: GPLv2 or later
|
10 |
|
667 |
7. Squirrly SEO - SEO Briefcase
|
668 |
|
669 |
== Changelog ==
|
670 |
+
= 12.1.09 - 07/15/2022 =
|
671 |
+
Update - SLA compatibility with Divi Builder
|
672 |
+
Update - SLA compatibility with Thrive Architect
|
673 |
+
Update - Focus Page SEO Image to detect keywords with special chars
|
674 |
+
Fix - Warning: Undefined array key "media" in DisplayController.php on line 74
|
675 |
+
Fix - Translation error on frech language on Focus Pages
|
676 |
+
Fix - Importing emoticons from other SEO plugins on utf8 tabel encoding
|
677 |
+
Fix - SEO Audit for detecting the twitter card and OG with more accuracy for non WordPress websites
|
678 |
+
|
679 |
= 12.1.07 - 06/23/2022 =
|
680 |
Update - Show Frontend SLA option in Squirrly > Live Assistant > Settings for SEO Experts when a builder is not installed
|
681 |
Update - SLA with Divi Builder load sequence
|
squirrly.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
* Description: A.I.-based Private SEO Consultant. In a Plugin. Powered by Machine Learning and Cloud Services. Over 300 functionalities for SEO available when you need them.
|
9 |
* Author: Squirrly
|
10 |
* Author URI: https://plugin.squirrly.co
|
11 |
-
* Version: 12.1.
|
12 |
* License: GPLv2 or later
|
13 |
* License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
14 |
* Text Domain: squirrly-seo
|
@@ -17,9 +17,9 @@
|
|
17 |
|
18 |
if (!defined('SQ_VERSION')) {
|
19 |
/* SET THE CURRENT VERSION ABOVE AND BELOW */
|
20 |
-
define('SQ_VERSION', '12.1.
|
21 |
//The last stable version
|
22 |
-
define('SQ_STABLE_VERSION', '12.1.
|
23 |
// Call config files
|
24 |
try {
|
25 |
include_once dirname(__FILE__) . '/config/config.php';
|
8 |
* Description: A.I.-based Private SEO Consultant. In a Plugin. Powered by Machine Learning and Cloud Services. Over 300 functionalities for SEO available when you need them.
|
9 |
* Author: Squirrly
|
10 |
* Author URI: https://plugin.squirrly.co
|
11 |
+
* Version: 12.1.09
|
12 |
* License: GPLv2 or later
|
13 |
* License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
14 |
* Text Domain: squirrly-seo
|
17 |
|
18 |
if (!defined('SQ_VERSION')) {
|
19 |
/* SET THE CURRENT VERSION ABOVE AND BELOW */
|
20 |
+
define('SQ_VERSION', '12.1.09');
|
21 |
//The last stable version
|
22 |
+
define('SQ_STABLE_VERSION', '12.1.07');
|
23 |
// Call config files
|
24 |
try {
|
25 |
include_once dirname(__FILE__) . '/config/config.php';
|
view/Assistant/Settings.php
CHANGED
@@ -104,7 +104,8 @@
|
|
104 |
<div class="small text-black-50 ml-5"><?php echo esc_html__("Load Squirrly Live Assistant in Frontend to customize the posts and pages with Builders.", 'squirrly-seo'); ?></div>
|
105 |
<div class="small text-black-50 ml-5 mt-1"><?php echo sprintf(esc_html__("Supports %s Elementor Builder %s plugin.", 'squirrly-seo'),'<a href="https://elementor.com/" target="_blank" class="font-weight-bold">','</a>'); ?></div>
|
106 |
<div class="small text-black-50 ml-5 mt-1"><?php echo sprintf(esc_html__("Supports %s Oxygen Builder %s plugin.", 'squirrly-seo'),'<a href="https://oxygenbuilder.com/" target="_blank" class="font-weight-bold">','</a>'); ?></div>
|
107 |
-
<div class="small text-black-50 ml-5 mt-1"><?php echo sprintf(esc_html__("Supports %s Divi Builder %s plugin
|
|
|
108 |
</div>
|
109 |
</div>
|
110 |
</div>
|
104 |
<div class="small text-black-50 ml-5"><?php echo esc_html__("Load Squirrly Live Assistant in Frontend to customize the posts and pages with Builders.", 'squirrly-seo'); ?></div>
|
105 |
<div class="small text-black-50 ml-5 mt-1"><?php echo sprintf(esc_html__("Supports %s Elementor Builder %s plugin.", 'squirrly-seo'),'<a href="https://elementor.com/" target="_blank" class="font-weight-bold">','</a>'); ?></div>
|
106 |
<div class="small text-black-50 ml-5 mt-1"><?php echo sprintf(esc_html__("Supports %s Oxygen Builder %s plugin.", 'squirrly-seo'),'<a href="https://oxygenbuilder.com/" target="_blank" class="font-weight-bold">','</a>'); ?></div>
|
107 |
+
<div class="small text-black-50 ml-5 mt-1"><?php echo sprintf(esc_html__("Supports %s Divi Builder %s plugin.", 'squirrly-seo'),'<a href="https://www.elegantthemes.com/gallery/divi/" target="_blank" class="font-weight-bold">','</a>'); ?></div>
|
108 |
+
<div class="small text-black-50 ml-5 mt-1"><?php echo sprintf(esc_html__("Supports %s Thrive Architect %s plugin (BETA).", 'squirrly-seo'),'<a href="https://thrivethemes.com/architect/" target="_blank" class="font-weight-bold">','</a>'); ?></div>
|
109 |
</div>
|
110 |
</div>
|
111 |
</div>
|
view/Onboarding/Step6.php
CHANGED
@@ -20,7 +20,7 @@
|
|
20 |
</div>
|
21 |
|
22 |
<div class="col-12 m-0 p-0 my-5">
|
23 |
-
<iframe width="800" height="500" src="https://www.youtube.com/embed/
|
24 |
</div>
|
25 |
|
26 |
<div class="col-12 row m-0 p-0 my-5">
|
20 |
</div>
|
21 |
|
22 |
<div class="col-12 m-0 p-0 my-5">
|
23 |
+
<iframe width="800" height="500" src="https://www.youtube.com/embed/jQlJM9jI6Xg" title="YouTube video player" frameborder="0" style="width: 100%; height: 500px;" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
24 |
</div>
|
25 |
|
26 |
<div class="col-12 row m-0 p-0 my-5">
|
view/Ranking/Settings.php
CHANGED
@@ -91,7 +91,8 @@
|
|
91 |
<option value="co.jp"><?php echo "Japan"; ?> (https://www.google.co.jp/)</option>
|
92 |
<option value="co.je"><?php echo "Jersey"; ?> (https://www.google.co.je/)</option>
|
93 |
<option value="kz"><?php echo "Kazakhstan"; ?> (https://www.google.kz/)</option>
|
94 |
-
<option value="
|
|
|
95 |
<option value="lv"><?php echo "Latvia"; ?> (https://www.google.lv/)</option>
|
96 |
<option value="co.ls"><?php echo "Lesotho"; ?> (https://www.google.co.ls/)</option>
|
97 |
<option value="li"><?php echo "Liechtenstein"; ?> (https://www.google.li/)</option>
|
91 |
<option value="co.jp"><?php echo "Japan"; ?> (https://www.google.co.jp/)</option>
|
92 |
<option value="co.je"><?php echo "Jersey"; ?> (https://www.google.co.je/)</option>
|
93 |
<option value="kz"><?php echo "Kazakhstan"; ?> (https://www.google.kz/)</option>
|
94 |
+
<option value="kz"><?php echo "Kazakhstan"; ?> (https://www.google.kz/)</option>
|
95 |
+
<option value="co.ke"><?php echo "Kenya"; ?> (https://www.google.co.ke/)</option>
|
96 |
<option value="lv"><?php echo "Latvia"; ?> (https://www.google.lv/)</option>
|
97 |
<option value="co.ls"><?php echo "Lesotho"; ?> (https://www.google.co.ls/)</option>
|
98 |
<option value="li"><?php echo "Liechtenstein"; ?> (https://www.google.li/)</option>
|
view/SeoSettings/Jsonld.php
CHANGED
@@ -44,7 +44,55 @@
|
|
44 |
|
45 |
<div class="d-flex flex-column flex-grow-1 m-0 p-0">
|
46 |
|
47 |
-
<div id="
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
|
49 |
<div class="col-12 m-0 p-0 my-2">
|
50 |
<h3 class="card-title"><?php echo esc_html__("Personal Brand / Author", 'squirrly-seo'); ?>
|
@@ -123,54 +171,6 @@
|
|
123 |
|
124 |
</div>
|
125 |
</div>
|
126 |
-
<div id="company" class="col-12 py-0 px-4 m-0 tab-panel">
|
127 |
-
|
128 |
-
<div class="col-12 m-0 p-0 my-2">
|
129 |
-
<h3 class="card-title"><?php echo esc_html__("Company", 'squirrly-seo'); ?>
|
130 |
-
<a href="https://howto12.squirrly.co/kb/json-ld-structured-data/" target="_blank"><i class="fa-solid fa-question-circle m-0 p-0"></i></a>
|
131 |
-
</h3>
|
132 |
-
<div class="small text-danger my-1 pr-3"><?php echo esc_html__("ONLY use this if you have a company", 'squirrly-seo'); ?></div>
|
133 |
-
|
134 |
-
</div>
|
135 |
-
|
136 |
-
<div class="col-12 m-0 p-0 my-5">
|
137 |
-
|
138 |
-
<div class="col-12 row m-0 p-0 my-5">
|
139 |
-
<div class="col-4 m-0 p-0 font-weight-bold">
|
140 |
-
<?php echo esc_html__("Your Organization Name", 'squirrly-seo'); ?>:
|
141 |
-
<a href="https://howto12.squirrly.co/kb/json-ld-structured-data/" target="_blank"><i class="fa-solid fa-question-circle m-0 px-2" style="display: inline;"></i></a>
|
142 |
-
<div class="small text-black-50 my-1 pr-3">e.g. COMPANY LTD"</div>
|
143 |
-
</div>
|
144 |
-
<div class="col-8 p-0 input-group input-group-lg">
|
145 |
-
<input type="text" class="form-control bg-input" name="sq_jsonld[Organization][name]" value="<?php echo((isset($jsonld['Organization']['name']) && $jsonld['Organization']['name'] <> '') ? esc_attr($jsonld['Organization']['name']) : '') ?>"/>
|
146 |
-
</div>
|
147 |
-
</div>
|
148 |
-
<div class="col-12 row m-0 p-0 my-5">
|
149 |
-
<div class="col-4 m-0 p-0 font-weight-bold">
|
150 |
-
<?php echo esc_html__("Logo URL", 'squirrly-seo'); ?>:
|
151 |
-
<div class="small text-black-50 my-1 pr-3"><?php echo esc_html__("Select an image from Media Library.", 'squirrly-seo'); ?></div>
|
152 |
-
</div>
|
153 |
-
<div class="col-8 p-0 input-group input-group-lg">
|
154 |
-
<input id="sq_jsonld_logo_organization" type="text" class="form-control bg-input" name="sq_jsonld[Organization][logo][url]" value="<?php echo((isset($jsonld['Organization']['logo']['url']) && $jsonld['Organization']['logo']['url'] <> '') ? esc_url($jsonld['Organization']['logo']['url']) : '') ?>" placeholder="<?php echo esc_html__("Select your file here", 'squirrly-seo') ?>"/>
|
155 |
-
<input type="button" class="sq_imageselect btn btn-primary rounded-0" data-destination="sq_jsonld_logo_organization" value="<?php echo esc_html__("Select Image", 'squirrly-seo') ?>"/>
|
156 |
-
</div>
|
157 |
-
</div>
|
158 |
-
<div class="col-12 row m-0 p-0 my-5">
|
159 |
-
<div class="col-4 m-0 p-0 font-weight-bold">
|
160 |
-
<?php echo esc_html__("Short Description", 'squirrly-seo'); ?>:
|
161 |
-
<div class="small text-black-50 my-1 pr-3"><?php echo esc_html__("A short description about the company (20-50 words).", 'squirrly-seo'); ?></div>
|
162 |
-
</div>
|
163 |
-
<div class="col-8 p-0">
|
164 |
-
<textarea class="form-control" name="sq_jsonld[Organization][description]" rows="3"><?php echo((isset($jsonld['Organization']['description']) && $jsonld['Organization']['description'] <> '') ? esc_textarea($jsonld['Organization']['description']) : '') ?></textarea>
|
165 |
-
</div>
|
166 |
-
</div>
|
167 |
-
|
168 |
-
<div class="col-12 m-0 p-0 mt-5">
|
169 |
-
<button type="submit" class="btn btn-primary btn-lg m-0 p-0 py-2 px-4 rounded-0"><?php echo esc_html__("Save Settings", 'squirrly-seo'); ?></button>
|
170 |
-
</div>
|
171 |
-
|
172 |
-
</div>
|
173 |
-
</div>
|
174 |
<div id="woocommerce" class="col-12 py-0 px-4 m-0 tab-panel">
|
175 |
|
176 |
<div class="col-12 m-0 p-0 my-2">
|
44 |
|
45 |
<div class="d-flex flex-column flex-grow-1 m-0 p-0">
|
46 |
|
47 |
+
<div id="company" class="col-12 py-0 px-4 m-0 tab-panel tab-panel-first active">
|
48 |
+
|
49 |
+
<div class="col-12 m-0 p-0 my-2">
|
50 |
+
<h3 class="card-title"><?php echo esc_html__("Company", 'squirrly-seo'); ?>
|
51 |
+
<a href="https://howto12.squirrly.co/kb/json-ld-structured-data/" target="_blank"><i class="fa-solid fa-question-circle m-0 p-0"></i></a>
|
52 |
+
</h3>
|
53 |
+
<div class="small text-danger my-1 pr-3"><?php echo esc_html__("ONLY use this if you have a company", 'squirrly-seo'); ?></div>
|
54 |
+
|
55 |
+
</div>
|
56 |
+
|
57 |
+
<div class="col-12 m-0 p-0 my-5">
|
58 |
+
|
59 |
+
<div class="col-12 row m-0 p-0 my-5">
|
60 |
+
<div class="col-4 m-0 p-0 font-weight-bold">
|
61 |
+
<?php echo esc_html__("Your Organization Name", 'squirrly-seo'); ?>:
|
62 |
+
<a href="https://howto12.squirrly.co/kb/json-ld-structured-data/" target="_blank"><i class="fa-solid fa-question-circle m-0 px-2" style="display: inline;"></i></a>
|
63 |
+
<div class="small text-black-50 my-1 pr-3">e.g. COMPANY LTD"</div>
|
64 |
+
</div>
|
65 |
+
<div class="col-8 p-0 input-group input-group-lg">
|
66 |
+
<input type="text" class="form-control bg-input" name="sq_jsonld[Organization][name]" value="<?php echo((isset($jsonld['Organization']['name']) && $jsonld['Organization']['name'] <> '') ? esc_attr($jsonld['Organization']['name']) : '') ?>"/>
|
67 |
+
</div>
|
68 |
+
</div>
|
69 |
+
<div class="col-12 row m-0 p-0 my-5">
|
70 |
+
<div class="col-4 m-0 p-0 font-weight-bold">
|
71 |
+
<?php echo esc_html__("Logo URL", 'squirrly-seo'); ?>:
|
72 |
+
<div class="small text-black-50 my-1 pr-3"><?php echo esc_html__("Select an image from Media Library.", 'squirrly-seo'); ?></div>
|
73 |
+
</div>
|
74 |
+
<div class="col-8 p-0 input-group input-group-lg">
|
75 |
+
<input id="sq_jsonld_logo_organization" type="text" class="form-control bg-input" name="sq_jsonld[Organization][logo][url]" value="<?php echo((isset($jsonld['Organization']['logo']['url']) && $jsonld['Organization']['logo']['url'] <> '') ? esc_url($jsonld['Organization']['logo']['url']) : '') ?>" placeholder="<?php echo esc_html__("Select your file here", 'squirrly-seo') ?>"/>
|
76 |
+
<input type="button" class="sq_imageselect btn btn-primary rounded-0" data-destination="sq_jsonld_logo_organization" value="<?php echo esc_html__("Select Image", 'squirrly-seo') ?>"/>
|
77 |
+
</div>
|
78 |
+
</div>
|
79 |
+
<div class="col-12 row m-0 p-0 my-5">
|
80 |
+
<div class="col-4 m-0 p-0 font-weight-bold">
|
81 |
+
<?php echo esc_html__("Short Description", 'squirrly-seo'); ?>:
|
82 |
+
<div class="small text-black-50 my-1 pr-3"><?php echo esc_html__("A short description about the company (20-50 words).", 'squirrly-seo'); ?></div>
|
83 |
+
</div>
|
84 |
+
<div class="col-8 p-0">
|
85 |
+
<textarea class="form-control" name="sq_jsonld[Organization][description]" rows="3"><?php echo((isset($jsonld['Organization']['description']) && $jsonld['Organization']['description'] <> '') ? esc_textarea($jsonld['Organization']['description']) : '') ?></textarea>
|
86 |
+
</div>
|
87 |
+
</div>
|
88 |
+
|
89 |
+
<div class="col-12 m-0 p-0 mt-5">
|
90 |
+
<button type="submit" class="btn btn-primary btn-lg m-0 p-0 py-2 px-4 rounded-0"><?php echo esc_html__("Save Settings", 'squirrly-seo'); ?></button>
|
91 |
+
</div>
|
92 |
+
|
93 |
+
</div>
|
94 |
+
</div>
|
95 |
+
<div id="personal" class="col-12 py-0 px-4 m-0 tab-panel">
|
96 |
|
97 |
<div class="col-12 m-0 p-0 my-2">
|
98 |
<h3 class="card-title"><?php echo esc_html__("Personal Brand / Author", 'squirrly-seo'); ?>
|
171 |
|
172 |
</div>
|
173 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
<div id="woocommerce" class="col-12 py-0 px-4 m-0 tab-panel">
|
175 |
|
176 |
<div class="col-12 m-0 p-0 my-2">
|
view/SeoSettings/Tweaks.php
CHANGED
@@ -106,8 +106,8 @@
|
|
106 |
<?php
|
107 |
$pname = 'home';
|
108 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
109 |
-
<div class="
|
110 |
-
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=
|
111 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
112 |
</a>
|
113 |
</div>
|
@@ -137,8 +137,8 @@
|
|
137 |
<?php
|
138 |
$pname = 'post';
|
139 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
140 |
-
<div class="
|
141 |
-
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=
|
142 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
143 |
</a>
|
144 |
</div>
|
@@ -156,8 +156,8 @@
|
|
156 |
<?php
|
157 |
$pname = 'attachment';
|
158 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
159 |
-
<div class="
|
160 |
-
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=
|
161 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
162 |
</a>
|
163 |
</div>
|
@@ -175,8 +175,8 @@
|
|
175 |
<?php
|
176 |
$pname = 'category';
|
177 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
178 |
-
<div class="
|
179 |
-
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=
|
180 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
181 |
</a>
|
182 |
</div>
|
@@ -194,8 +194,8 @@
|
|
194 |
<?php
|
195 |
$pname = 'tag';
|
196 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
197 |
-
<div class="
|
198 |
-
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=
|
199 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
200 |
</a>
|
201 |
</div>
|
@@ -213,8 +213,8 @@
|
|
213 |
<?php
|
214 |
$pname = 'page';
|
215 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
216 |
-
<div class="
|
217 |
-
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=
|
218 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
219 |
</a>
|
220 |
</div>
|
@@ -232,8 +232,8 @@
|
|
232 |
<?php
|
233 |
$pname = 'archive';
|
234 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
235 |
-
<div class="
|
236 |
-
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=
|
237 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
238 |
</a>
|
239 |
</div>
|
@@ -274,8 +274,8 @@
|
|
274 |
<?php
|
275 |
$pname = 'product';
|
276 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
277 |
-
<div class="
|
278 |
-
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=
|
279 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
280 |
</a>
|
281 |
</div>
|
@@ -426,7 +426,7 @@
|
|
426 |
<h3 class="card-title"><?php echo esc_html__("Redirect Broken URLs", 'squirrly-seo'); ?></h3>
|
427 |
|
428 |
<div class="col-12 m-0 p-0 mt-3">
|
429 |
-
<
|
430 |
</div>
|
431 |
|
432 |
<div class="sq_tips col-12 m-0 p-0 my-5">
|
106 |
<?php
|
107 |
$pname = 'home';
|
108 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
109 |
+
<div class="small text-danger ml-5">
|
110 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=sq_$pname")) ?>">
|
111 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
112 |
</a>
|
113 |
</div>
|
137 |
<?php
|
138 |
$pname = 'post';
|
139 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
140 |
+
<div class="small text-danger ml-5">
|
141 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=sq_$pname")) ?>">
|
142 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
143 |
</a>
|
144 |
</div>
|
156 |
<?php
|
157 |
$pname = 'attachment';
|
158 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
159 |
+
<div class="small text-danger ml-5">
|
160 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=sq_$pname")) ?>">
|
161 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
162 |
</a>
|
163 |
</div>
|
175 |
<?php
|
176 |
$pname = 'category';
|
177 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
178 |
+
<div class="small text-danger ml-5">
|
179 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=sq_$pname")) ?>">
|
180 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
181 |
</a>
|
182 |
</div>
|
194 |
<?php
|
195 |
$pname = 'tag';
|
196 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
197 |
+
<div class="small text-danger ml-5">
|
198 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=sq_$pname")) ?>">
|
199 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
200 |
</a>
|
201 |
</div>
|
213 |
<?php
|
214 |
$pname = 'page';
|
215 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
216 |
+
<div class="small text-danger ml-5">
|
217 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=sq_$pname")) ?>">
|
218 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
219 |
</a>
|
220 |
</div>
|
232 |
<?php
|
233 |
$pname = 'archive';
|
234 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
235 |
+
<div class="small text-danger ml-5">
|
236 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=sq_$pname")) ?>">
|
237 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
238 |
</a>
|
239 |
</div>
|
274 |
<?php
|
275 |
$pname = 'product';
|
276 |
if (isset($patterns[$pname]['do_sitemap']) && !$patterns[$pname]['do_sitemap']) { ?>
|
277 |
+
<div class="small text-danger ml-5">
|
278 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation', array("#tab=sq_$pname")) ?>">
|
279 |
<?php echo esc_html__("Deactivated from SEO Automation.", 'squirrly-seo'); ?>
|
280 |
</a>
|
281 |
</div>
|
426 |
<h3 class="card-title"><?php echo esc_html__("Redirect Broken URLs", 'squirrly-seo'); ?></h3>
|
427 |
|
428 |
<div class="col-12 m-0 p-0 mt-3">
|
429 |
+
<a href="<?php echo SQ_Classes_Helpers_Tools::getAdminUrl('sq_automation', 'automation#tab=sq_post') ?>" class="btn btn-primary btn-lg m-0 p-0 py-2 px-4 rounded-0"><?php echo esc_html__(" Manage redirects for each Post Type", 'squirrly-seo'); ?> <i class="fa-solid fa-link"></i></a>
|
430 |
</div>
|
431 |
|
432 |
<div class="sq_tips col-12 m-0 p-0 my-5">
|