Version Description
Download this release
Release Info
Developer | JohnLamansky |
Plugin | SEO Ultimate |
Version | 7.6 |
Comparing to | |
See all releases |
Code changes from version 7.5.7 to 7.6
- includes/backcompat.php +0 -19
- includes/jlfunctions/arr.php +69 -74
- includes/jlfunctions/date.php +0 -15
- includes/jlfunctions/html.php +7 -2
- includes/jlfunctions/io.php +56 -2
- includes/jlfunctions/jlfunctions.php +2 -2
- includes/jlfunctions/num.php +9 -2
- includes/jlfunctions/str.php +65 -37
- includes/jlfunctions/url.php +14 -5
- includes/jlfunctions/web.php +1 -1
- includes/jlsuggest/jlsuggest.js +17 -40
- includes/jlwp/functions.php +1 -133
- includes/tabs.js +7 -5
- modules/404s/fofs-log.php +5 -0
- modules/404s/fofs.php +7 -3
- modules/autolinks/autolinks.css +8 -0
- modules/autolinks/autolinks.php +159 -0
- modules/autolinks/content-autolinks-settings.php +17 -7
- modules/autolinks/content-autolinks.php +73 -95
- modules/autolinks/footer-autolinks.php +2 -2
- modules/canonical/canonical.php +21 -12
- modules/class.su-module.php +54 -151
- modules/files/files.php +2 -2
- modules/internal-link-aliases/internal-link-aliases.php +70 -8
- modules/meta/meta-descriptions.php +5 -5
- modules/meta/meta-keywords.php +20 -10
- modules/meta/meta-robots.php +36 -37
- modules/meta/webmaster-verify.php +18 -5
- modules/modules.css +4 -0
- modules/modules/modules.css +16 -1
- modules/modules/modules.php +16 -3
- modules/noindex/noindex.php +1 -1
- modules/opengraph/opengraph.php +104 -21
- modules/permalinks/permalinks.php +3 -0
- modules/rich-snippets/rich-snippets.php +38 -29
- modules/sds-blog/sds-blog.php +1 -1
- modules/settings/global-settings.php +10 -3
- modules/settings/install.php +8 -6
- modules/sharing-buttons/sharing-buttons.php +18 -5
- modules/titles/titles.php +2 -1
- modules/wp-settings/wp-settings.php +3 -4
- plugin/class.seo-ultimate.php +32 -10
- plugin/global.css +3 -3
- plugin/images/wp-ultimate.gif +0 -0
- readme.txt +70 -87
- seo-ultimate.php +7 -7
- translations/seo-ultimate.pot +1029 -529
includes/backcompat.php
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
if (!function_exists('array_combine')) :
|
3 |
-
|
4 |
-
//PHP4 function from:
|
5 |
-
//http://www.php.net/manual/en/function.array-combine.php#82244
|
6 |
-
function array_combine($arr1, $arr2) {
|
7 |
-
$out = array();
|
8 |
-
|
9 |
-
$arr1 = array_values($arr1);
|
10 |
-
$arr2 = array_values($arr2);
|
11 |
-
|
12 |
-
foreach($arr1 as $key1 => $value1) {
|
13 |
-
$out[(string)$value1] = $arr2[$key1];
|
14 |
-
}
|
15 |
-
|
16 |
-
return $out;
|
17 |
-
}
|
18 |
-
|
19 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/jlfunctions/arr.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions Array Class
|
4 |
-
Copyright (c)2009-
|
5 |
*/
|
6 |
|
7 |
class suarr {
|
@@ -27,17 +27,11 @@ class suarr {
|
|
27 |
return $newarray;
|
28 |
}
|
29 |
|
30 |
-
/**
|
31 |
-
* Removes elements that are blank (after trimming) from the beginning of the given array.
|
32 |
-
*/
|
33 |
-
function ltrim($array) {
|
34 |
-
while (count($array) && !strlen(trim($array[0])))
|
35 |
-
array_shift($array);
|
36 |
-
return $array;
|
37 |
-
}
|
38 |
-
|
39 |
/**
|
40 |
* Removes a value from the array if found.
|
|
|
|
|
|
|
41 |
*/
|
42 |
function remove_value(&$array, $value) {
|
43 |
$index = array_search($value, $array);
|
@@ -46,63 +40,59 @@ class suarr {
|
|
46 |
}
|
47 |
|
48 |
/**
|
49 |
-
*
|
50 |
*
|
51 |
-
* @param
|
52 |
-
* @param array $haystack
|
53 |
-
* @param bool $case Whether or not the search should be case-sensitive.
|
54 |
*
|
55 |
-
* @return
|
56 |
*/
|
57 |
-
function any_in_array($needles, $haystack, $case = true) {
|
58 |
-
if (!$case) {
|
59 |
-
$needles = array_map('strtolower', $needles);
|
60 |
-
$haystack = array_map('strtolower', $haystack);
|
61 |
-
}
|
62 |
-
|
63 |
-
return count(array_intersect($needles, $haystack)) > 0;
|
64 |
-
}
|
65 |
-
|
66 |
function explode_lines($lines) {
|
67 |
$lines = explode("\n", $lines);
|
68 |
$lines = array_map('trim', $lines); //Remove any \r's
|
69 |
return $lines;
|
70 |
}
|
71 |
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
return false;
|
80 |
-
}
|
81 |
-
|
82 |
-
function recursive_get($array, $key) {
|
83 |
-
if (is_array($array)) {
|
84 |
-
if (isset($array[$key]))
|
85 |
-
return $array[$key];
|
86 |
-
|
87 |
-
foreach ($array as $subarray) {
|
88 |
-
if ($value = suarr::recursive_get($subarray, $key))
|
89 |
-
return $value;
|
90 |
-
}
|
91 |
-
}
|
92 |
-
|
93 |
-
return false;
|
94 |
-
}
|
95 |
-
|
96 |
function vksort(&$arr, $valuekey) {
|
97 |
$valuekey = sustr::preg_filter('A-Za-z0-9 ', $valuekey);
|
98 |
uasort($arr, create_function('$a,$b', 'return strcasecmp($a["'.$valuekey.'"], $b["'.$valuekey.'"]);'));
|
99 |
}
|
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
function vklrsort(&$arr, $valuekey) {
|
102 |
$valuekey = sustr::preg_filter('A-Za-z0-9 ', $valuekey);
|
103 |
uasort($arr, create_function('$a,$b', 'return strlen($b["'.$valuekey.'"]) - strlen($a["'.$valuekey.'"]);'));
|
104 |
}
|
105 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
function flatten_values($arr, $value_keys, $use_default_if_empty=false, $default='') {
|
107 |
foreach ((array)$value_keys as $key)
|
108 |
$arr = suarr::_flatten_values($arr, $key, $use_default_if_empty, $default);
|
@@ -133,6 +123,16 @@ class suarr {
|
|
133 |
return $newarr;
|
134 |
}
|
135 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
function key_replace($array, $key_changes, $recursive = true, $return_replaced_only = false) {
|
137 |
$newarray = array();
|
138 |
foreach ($array as $key => $value) {
|
@@ -154,6 +154,16 @@ class suarr {
|
|
154 |
return $newarray;
|
155 |
}
|
156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
function value_replace($array, $value_changes, $recursive = true, $return_replaced_only = false) {
|
158 |
$newarray = array();
|
159 |
|
@@ -173,27 +183,23 @@ class suarr {
|
|
173 |
return $newarray;
|
174 |
}
|
175 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
176 |
function simplify($arr, $keyloc, $valloc, $use_default_if_empty=false, $default='') {
|
177 |
$keys = suarr::flatten_values($arr, $keyloc, $use_default_if_empty, $default);
|
178 |
$values = suarr::flatten_values($arr, $valloc, $use_default_if_empty, $default);
|
179 |
return array_combine($keys, $values);
|
180 |
}
|
181 |
|
182 |
-
function has_keys($array, $keys) {
|
183 |
-
if (is_array($array) && is_array($keys)) {
|
184 |
-
if (count($keys))
|
185 |
-
return count(array_diff($keys, array_keys($array))) == 0;
|
186 |
-
|
187 |
-
return true;
|
188 |
-
}
|
189 |
-
|
190 |
-
return false;
|
191 |
-
}
|
192 |
-
|
193 |
-
function key_check($array, $function) {
|
194 |
-
return (count($array) == count(array_filter(array_keys($array), $function)));
|
195 |
-
}
|
196 |
-
|
197 |
//Function based on http://php.net/manual/en/function.array-unique.php#82508
|
198 |
function in_array_i($str, $a) {
|
199 |
foreach($a as $v){
|
@@ -212,17 +218,6 @@ class suarr {
|
|
212 |
}
|
213 |
return $n;
|
214 |
}
|
215 |
-
|
216 |
-
function replace_empty_values_with_keys($array) {
|
217 |
-
$newarray = array();
|
218 |
-
foreach ($array as $key => $value) {
|
219 |
-
if (empty($value))
|
220 |
-
$newarray[$key] = $key;
|
221 |
-
else
|
222 |
-
$newarray[$key] = $value;
|
223 |
-
}
|
224 |
-
return $newarray;
|
225 |
-
}
|
226 |
}
|
227 |
|
228 |
?>
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions Array Class
|
4 |
+
Copyright (c)2009-2012 John Lamansky
|
5 |
*/
|
6 |
|
7 |
class suarr {
|
27 |
return $newarray;
|
28 |
}
|
29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
/**
|
31 |
* Removes a value from the array if found.
|
32 |
+
*
|
33 |
+
* @param array $array Passed by reference.
|
34 |
+
* @param mixed $value The value to remove.
|
35 |
*/
|
36 |
function remove_value(&$array, $value) {
|
37 |
$index = array_search($value, $array);
|
40 |
}
|
41 |
|
42 |
/**
|
43 |
+
* Turns a string into an array, with one line per array element.
|
44 |
*
|
45 |
+
* @param string $lines
|
|
|
|
|
46 |
*
|
47 |
+
* @return array
|
48 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
function explode_lines($lines) {
|
50 |
$lines = explode("\n", $lines);
|
51 |
$lines = array_map('trim', $lines); //Remove any \r's
|
52 |
return $lines;
|
53 |
}
|
54 |
|
55 |
+
/**
|
56 |
+
* Sorts an array of arrays by using a given array key to locate string values in the second-level arrays and sorting the first-level array accordingly.
|
57 |
+
* Alphabetical sorting is used.
|
58 |
+
*
|
59 |
+
* @param array $arr Passed by reference
|
60 |
+
* @param string $valuekey The array key used to access the string values by which the arrays in $arr are to be sorted
|
61 |
+
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
function vksort(&$arr, $valuekey) {
|
63 |
$valuekey = sustr::preg_filter('A-Za-z0-9 ', $valuekey);
|
64 |
uasort($arr, create_function('$a,$b', 'return strcasecmp($a["'.$valuekey.'"], $b["'.$valuekey.'"]);'));
|
65 |
}
|
66 |
|
67 |
+
/**
|
68 |
+
* Sorts an array of arrays by using a given array key to locate string values in the second-level arrays and sorting the first-level array accordingly.
|
69 |
+
* Reverse length sorting is used. (Longest strings are first, shortest strings last.)
|
70 |
+
*
|
71 |
+
* @param array $arr Passed by reference
|
72 |
+
* @param string $valuekey The array key used to access the string values by which the arrays in $arr are to be sorted
|
73 |
+
*/
|
74 |
function vklrsort(&$arr, $valuekey) {
|
75 |
$valuekey = sustr::preg_filter('A-Za-z0-9 ', $valuekey);
|
76 |
uasort($arr, create_function('$a,$b', 'return strlen($b["'.$valuekey.'"]) - strlen($a["'.$valuekey.'"]);'));
|
77 |
}
|
78 |
|
79 |
+
/**
|
80 |
+
* Flattens a multidimensional array (or an array of objects) into a single-dimensional array by discarding all but one element of the higher-level array(s).
|
81 |
+
* Works like WordPress's wp_list_pluck(), except this function is recursive and supports inserting a default value if a subarray doesn't have the specified key.
|
82 |
+
*
|
83 |
+
* Usage example:
|
84 |
+
* ---
|
85 |
+
* $post_types = get_post_types(array('public' => true), 'objects');
|
86 |
+
* $singular_names = suarr::flatten_values($post_types, array('labels', 'singular_name'));
|
87 |
+
* ---
|
88 |
+
*
|
89 |
+
* @param array $arr The multidimensional array (or array of objects) to flatten
|
90 |
+
* @param array|string|int $value_keys Each array/object in $arr will be replaced with its element/property named $value_keys. If $value_keys is an array, this will be done recursively.
|
91 |
+
* @param bool $use_default_if_empty If a given array/object in $arr does not have an element/property named $value_keys, should a default value be inserted?
|
92 |
+
* @param mixed $default
|
93 |
+
*
|
94 |
+
* @return array The flattened array
|
95 |
+
*/
|
96 |
function flatten_values($arr, $value_keys, $use_default_if_empty=false, $default='') {
|
97 |
foreach ((array)$value_keys as $key)
|
98 |
$arr = suarr::_flatten_values($arr, $key, $use_default_if_empty, $default);
|
123 |
return $newarr;
|
124 |
}
|
125 |
|
126 |
+
/**
|
127 |
+
* Renames keys in an array. Supports recursion.
|
128 |
+
*
|
129 |
+
* @param array $array The array whose keys should be renamed
|
130 |
+
* @param array $key_changes An array of (old_key => new_key)
|
131 |
+
* @param bool $recursive Whether or not to do the same for subarrays of $array
|
132 |
+
* @param bool $return_replaced_only If true, then elements whose keys were *not* renamed will be discarded
|
133 |
+
*
|
134 |
+
* @return array
|
135 |
+
*/
|
136 |
function key_replace($array, $key_changes, $recursive = true, $return_replaced_only = false) {
|
137 |
$newarray = array();
|
138 |
foreach ($array as $key => $value) {
|
154 |
return $newarray;
|
155 |
}
|
156 |
|
157 |
+
/**
|
158 |
+
* Runs a find/replace operation on values in an array.
|
159 |
+
*
|
160 |
+
* @param array $array The array whose values should be replaced
|
161 |
+
* @param array $value_changes An array of (old_value => new_value)
|
162 |
+
* @param bool $recursive Whether or not to do the same for subarrays of $array
|
163 |
+
* @param bool $return_replaced_only If true, then elements *not* replaced will be discarded
|
164 |
+
*
|
165 |
+
* @return array
|
166 |
+
*/
|
167 |
function value_replace($array, $value_changes, $recursive = true, $return_replaced_only = false) {
|
168 |
$newarray = array();
|
169 |
|
183 |
return $newarray;
|
184 |
}
|
185 |
|
186 |
+
/**
|
187 |
+
* Goes through an array of arrays/objects, plucks two elements/properties from each array/object, and constructs a new array, with one element/property as the key, and the other as the value.
|
188 |
+
*
|
189 |
+
* @param array $arr The array to run this process on.
|
190 |
+
* @param array|string|int $keyloc The location (either a string/integer key, or an array of nested keys) of the elements' values to be used as keys in the new array
|
191 |
+
* @param array|string|int $valloc The location (either a string/integer key, or an array of nested keys) of the elements' values to be used as values in the new array
|
192 |
+
* @param bool $use_default_if_empty Whether or not to use a default value in the event that nothing is located at $keyloc or $valloc for a given array/object in $arr
|
193 |
+
* @param mixed $default
|
194 |
+
*
|
195 |
+
* @return array
|
196 |
+
*/
|
197 |
function simplify($arr, $keyloc, $valloc, $use_default_if_empty=false, $default='') {
|
198 |
$keys = suarr::flatten_values($arr, $keyloc, $use_default_if_empty, $default);
|
199 |
$values = suarr::flatten_values($arr, $valloc, $use_default_if_empty, $default);
|
200 |
return array_combine($keys, $values);
|
201 |
}
|
202 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
//Function based on http://php.net/manual/en/function.array-unique.php#82508
|
204 |
function in_array_i($str, $a) {
|
205 |
foreach($a as $v){
|
218 |
}
|
219 |
return $n;
|
220 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
}
|
222 |
|
223 |
?>
|
includes/jlfunctions/date.php
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
JLFunctions Date Class
|
4 |
-
Copyright (c)2011 John Lamansky
|
5 |
-
*/
|
6 |
-
|
7 |
-
class sudate {
|
8 |
-
function gmt_to_unix($gmt) {
|
9 |
-
if (preg_match('#([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})#', $gmt, $matches))
|
10 |
-
return gmmktime($matches[4], $matches[5], $matches[6], $matches[2], $matches[3], $matches[1]);
|
11 |
-
else
|
12 |
-
return 0;
|
13 |
-
}
|
14 |
-
}
|
15 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/jlfunctions/html.php
CHANGED
@@ -1,15 +1,20 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions HTML Class
|
4 |
-
Copyright (c)2010 John Lamansky
|
5 |
*/
|
6 |
|
7 |
class suhtml {
|
8 |
|
9 |
/**
|
10 |
* Returns <option> tags.
|
|
|
|
|
|
|
|
|
|
|
11 |
*/
|
12 |
-
function option_tags($options, $current
|
13 |
$html = '';
|
14 |
foreach ($options as $value => $label) {
|
15 |
if (is_array($label)) {
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions HTML Class
|
4 |
+
Copyright (c)2010-2012 John Lamansky
|
5 |
*/
|
6 |
|
7 |
class suhtml {
|
8 |
|
9 |
/**
|
10 |
* Returns <option> tags.
|
11 |
+
*
|
12 |
+
* @param array $options An array of (value => label)
|
13 |
+
* @param string $current The value of the option that should be initially selected on the dropdown
|
14 |
+
*
|
15 |
+
* @return string
|
16 |
*/
|
17 |
+
function option_tags($options, $current) {
|
18 |
$html = '';
|
19 |
foreach ($options as $value => $label) {
|
20 |
if (is_array($label)) {
|
includes/jlfunctions/io.php
CHANGED
@@ -1,28 +1,68 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions IO Class
|
4 |
-
Copyright (c)2009-
|
5 |
*/
|
6 |
|
7 |
class suio {
|
8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
function is_file($filename, $path, $ext=false) {
|
10 |
$is_ext = strlen($ext) ? sustr::endswith($filename, '.'.ltrim($ext, '*.')) : true;
|
11 |
return is_file(suio::tslash($path).$filename) && $is_ext;
|
12 |
}
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
function is_dir($name, $path) {
|
15 |
return $name != '.' && $name != '..' && is_dir(suio::tslash($path).$name);
|
16 |
}
|
17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
function tslash($path) {
|
19 |
return suio::untslash($path).'/';
|
20 |
}
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
function untslash($path) {
|
23 |
return rtrim($path, '/');
|
24 |
}
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
function import_csv($path) {
|
27 |
if (!is_readable($path)) return false;
|
28 |
|
@@ -60,12 +100,26 @@ class suio {
|
|
60 |
return $result;
|
61 |
}
|
62 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
function export_csv($csv) {
|
64 |
header("Content-Type: text/csv");
|
65 |
$result = suio::print_csv($csv);
|
66 |
if ($result) die(); else return false;
|
67 |
}
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
function print_csv($csv) {
|
70 |
if (!is_array($csv) || !count($csv) || !is_array($csv[0])) return false;
|
71 |
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions IO Class
|
4 |
+
Copyright (c)2009-2012 John Lamansky
|
5 |
*/
|
6 |
|
7 |
class suio {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Checks whether a given $filename in $path is actually a file, and optionally whether $filename ends in extension .$ext
|
11 |
+
*
|
12 |
+
* @param string $filename The name of the purported file (e.g. "index.php")
|
13 |
+
* @param string $path The path in which this file is purportedly located
|
14 |
+
* @param string $ext The extension that the file should have (e.g. "php") (optional)
|
15 |
+
*
|
16 |
+
* @return bool
|
17 |
+
*/
|
18 |
function is_file($filename, $path, $ext=false) {
|
19 |
$is_ext = strlen($ext) ? sustr::endswith($filename, '.'.ltrim($ext, '*.')) : true;
|
20 |
return is_file(suio::tslash($path).$filename) && $is_ext;
|
21 |
}
|
22 |
|
23 |
+
/**
|
24 |
+
* Checks whether a given path name points to a real directory.
|
25 |
+
* Ensures that the path name is not "." or ".."
|
26 |
+
*
|
27 |
+
* @param string $name The name of the purported directory
|
28 |
+
* @param string $path The path in which this directory is purportedly located
|
29 |
+
*
|
30 |
+
* @return bool
|
31 |
+
*/
|
32 |
function is_dir($name, $path) {
|
33 |
return $name != '.' && $name != '..' && is_dir(suio::tslash($path).$name);
|
34 |
}
|
35 |
|
36 |
+
/**
|
37 |
+
* Makes sure a directory path or URL ends in a trailing slash.
|
38 |
+
*
|
39 |
+
* @param string $path
|
40 |
+
*
|
41 |
+
* @return string
|
42 |
+
*/
|
43 |
function tslash($path) {
|
44 |
return suio::untslash($path).'/';
|
45 |
}
|
46 |
|
47 |
+
/**
|
48 |
+
* Removes any trailing slash at the end of a directory path or URL.
|
49 |
+
*
|
50 |
+
* @param string $path
|
51 |
+
*
|
52 |
+
* @return string
|
53 |
+
*/
|
54 |
function untslash($path) {
|
55 |
return rtrim($path, '/');
|
56 |
}
|
57 |
|
58 |
+
/**
|
59 |
+
* Converts the contents of a CSV file into an array.
|
60 |
+
* The first row of the CSV file must contain the column headers.
|
61 |
+
*
|
62 |
+
* @param $path The location of the CSV file on the server.
|
63 |
+
*
|
64 |
+
* @return array An array of arrays which represent rows of the file.
|
65 |
+
*/
|
66 |
function import_csv($path) {
|
67 |
if (!is_readable($path)) return false;
|
68 |
|
100 |
return $result;
|
101 |
}
|
102 |
|
103 |
+
/**
|
104 |
+
* Converts an array into a CSV file, outputs it with the appropriate HTTP header, and terminates program execution.
|
105 |
+
*
|
106 |
+
* @param array $csv The array to convert and output
|
107 |
+
*
|
108 |
+
* @return false Returns a value only if conversion failed
|
109 |
+
*/
|
110 |
function export_csv($csv) {
|
111 |
header("Content-Type: text/csv");
|
112 |
$result = suio::print_csv($csv);
|
113 |
if ($result) die(); else return false;
|
114 |
}
|
115 |
|
116 |
+
/**
|
117 |
+
* Converts an array into a CSV file and outputs it.
|
118 |
+
*
|
119 |
+
* @param array $csv The array to convert and output
|
120 |
+
*
|
121 |
+
* @return bool Whether or not the conversion was successful
|
122 |
+
*/
|
123 |
function print_csv($csv) {
|
124 |
if (!is_array($csv) || !count($csv) || !is_array($csv[0])) return false;
|
125 |
|
includes/jlfunctions/jlfunctions.php
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions Library
|
4 |
-
Copyright (c)2009-
|
5 |
*/
|
6 |
|
7 |
-
foreach (array('arr', '
|
8 |
include dirname(__FILE__)."/$jlfuncfile.php";
|
9 |
}
|
10 |
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions Library
|
4 |
+
Copyright (c)2009-2012 John Lamansky
|
5 |
*/
|
6 |
|
7 |
+
foreach (array('arr', 'html', 'io', 'num', 'str', 'url', 'web') as $jlfuncfile) {
|
8 |
include dirname(__FILE__)."/$jlfuncfile.php";
|
9 |
}
|
10 |
|
includes/jlfunctions/num.php
CHANGED
@@ -1,11 +1,18 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions Number Class
|
4 |
-
Copyright (c)2011 John Lamansky
|
5 |
*/
|
6 |
|
7 |
class sunum {
|
8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
function lowest() {
|
10 |
$numbers = func_get_args();
|
11 |
$numbers = array_values($numbers);
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions Number Class
|
4 |
+
Copyright (c)2011-2012 John Lamansky
|
5 |
*/
|
6 |
|
7 |
class sunum {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Returns the lowest of a set of numbers.
|
11 |
+
*
|
12 |
+
* @param array|int $number,... The numbers may be passed as function arguments or as an array.
|
13 |
+
*
|
14 |
+
* @return int The lowest of the numbers.
|
15 |
+
*/
|
16 |
function lowest() {
|
17 |
$numbers = func_get_args();
|
18 |
$numbers = array_values($numbers);
|
includes/jlfunctions/str.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions String Class
|
4 |
-
Copyright (c)2009-
|
5 |
*/
|
6 |
|
7 |
class sustr {
|
@@ -16,7 +16,7 @@ class sustr {
|
|
16 |
function startswith( $str, $sub ) {
|
17 |
return ( substr( $str, 0, strlen( $sub ) ) === $sub );
|
18 |
}
|
19 |
-
|
20 |
/**
|
21 |
* Returns whether or not a given string ends with a given substring.
|
22 |
*
|
@@ -28,6 +28,14 @@ class sustr {
|
|
28 |
return ( substr( $str, strlen( $str ) - strlen( $sub ) ) === $sub );
|
29 |
}
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
function startwith( $str, $start ) {
|
32 |
if (!sustr::startswith($str, $start))
|
33 |
return $start.$str;
|
@@ -35,6 +43,14 @@ class sustr {
|
|
35 |
return $str;
|
36 |
}
|
37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
function endwith( $str, $end ) {
|
39 |
if (!sustr::endswith($str, $end))
|
40 |
return $str.$end;
|
@@ -42,22 +58,37 @@ class sustr {
|
|
42 |
return $str;
|
43 |
}
|
44 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
function has($str, $sub) {
|
46 |
return (strpos($str, $sub) !== false);
|
47 |
}
|
48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
function ihas($str, $sub) {
|
50 |
$str = strtolower($str);
|
51 |
$sub = strtolower($sub);
|
52 |
return (strpos($str, $sub) !== false);
|
53 |
}
|
54 |
-
|
55 |
/**
|
56 |
* Truncates a string if it is longer than a given length.
|
57 |
*
|
58 |
* @param string $str The string to possibly truncate.
|
59 |
* @param int $maxlen The desired maximum length of the string.
|
60 |
-
* @param
|
|
|
61 |
*/
|
62 |
function truncate( $str, $maxlen, $truncate = '...', $maintain_words=false ) {
|
63 |
|
@@ -70,15 +101,23 @@ class sustr {
|
|
70 |
return $str;
|
71 |
}
|
72 |
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
return $str;
|
|
|
|
|
78 |
}
|
79 |
|
80 |
/**
|
81 |
-
* Joins strings into a natural-language list.
|
82 |
* Can be internationalized with gettext or the su_lang_implode filter.
|
83 |
*
|
84 |
* @param array $items The strings (or objects with $var child strings) to join.
|
@@ -119,7 +158,7 @@ class sustr {
|
|
119 |
/**
|
120 |
* If the given string ends with the given suffix, the suffix is removed.
|
121 |
*
|
122 |
-
* @param string $str The string
|
123 |
* @param string $totrim The suffix that should be trimmed if found.
|
124 |
* @return string The possibly-trimmed string.
|
125 |
*/
|
@@ -130,6 +169,13 @@ class sustr {
|
|
130 |
return $str;
|
131 |
}
|
132 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
function rtrim_substr($str, $totrim) {
|
134 |
for ($i = strlen($totrim); $i > 0; $i--) {
|
135 |
$totrimsub = substr($totrim, 0, $i);
|
@@ -140,6 +186,13 @@ class sustr {
|
|
140 |
return $str;
|
141 |
}
|
142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
function ltrim_str($str, $totrim) {
|
144 |
if (strlen($str) > strlen($totrim) && sustr::startswith($str, $totrim))
|
145 |
return substr($str, strlen($totrim));
|
@@ -156,17 +209,8 @@ class sustr {
|
|
156 |
return $results;
|
157 |
}
|
158 |
|
159 |
-
function
|
160 |
-
|
161 |
-
$str = array_unique($str);
|
162 |
-
$str = implode(' ', $str);
|
163 |
-
return $str;
|
164 |
-
}
|
165 |
-
|
166 |
-
function remove_double_words($str) {
|
167 |
-
$words = explode(' ', $str);
|
168 |
-
foreach ($words as $word) $str = str_replace("$word $word", $word, $str);
|
169 |
-
return $str;
|
170 |
}
|
171 |
|
172 |
function preg_filter($filter, $str) {
|
@@ -174,10 +218,6 @@ class sustr {
|
|
174 |
return preg_replace("/[^{$filter}]/", '', $str);
|
175 |
}
|
176 |
|
177 |
-
function to_int($str) {
|
178 |
-
return intval(sustr::preg_filter('0-9', strval($str)));
|
179 |
-
}
|
180 |
-
|
181 |
function preg_escape($str, $delim='%') {
|
182 |
$chars = "\ ^ . $ | ( ) [ ] * + ? { } , ".$delim;
|
183 |
$chars = explode(' ', $chars);
|
@@ -208,18 +248,6 @@ class sustr {
|
|
208 |
return preg_replace($search_regex, $replace, $subject, $limit, $count);
|
209 |
}
|
210 |
|
211 |
-
function upto($str, $sub) {
|
212 |
-
$end = strpos($str, $sub);
|
213 |
-
if ($end === false)
|
214 |
-
return $str;
|
215 |
-
else
|
216 |
-
return substr($str, 0, $end);
|
217 |
-
}
|
218 |
-
|
219 |
-
function str2func($varval) {
|
220 |
-
return create_function('', 'return "'.addcslashes((string)$varval, '"').'";');
|
221 |
-
}
|
222 |
-
|
223 |
function tclcwords($str) {
|
224 |
$words = explode(' ', $str);
|
225 |
$new_words = array();
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions String Class
|
4 |
+
Copyright (c)2009-2012 John Lamansky
|
5 |
*/
|
6 |
|
7 |
class sustr {
|
16 |
function startswith( $str, $sub ) {
|
17 |
return ( substr( $str, 0, strlen( $sub ) ) === $sub );
|
18 |
}
|
19 |
+
|
20 |
/**
|
21 |
* Returns whether or not a given string ends with a given substring.
|
22 |
*
|
28 |
return ( substr( $str, strlen( $str ) - strlen( $sub ) ) === $sub );
|
29 |
}
|
30 |
|
31 |
+
/**
|
32 |
+
* Makes a string start with a given string if it doesn't already.
|
33 |
+
*
|
34 |
+
* @param string $str The string that should start with $start
|
35 |
+
* @param string $start
|
36 |
+
*
|
37 |
+
* @return string The string with $start at the beginning
|
38 |
+
*/
|
39 |
function startwith( $str, $start ) {
|
40 |
if (!sustr::startswith($str, $start))
|
41 |
return $start.$str;
|
43 |
return $str;
|
44 |
}
|
45 |
|
46 |
+
/**
|
47 |
+
* Makes a string end with a given string if it doesn't already.
|
48 |
+
*
|
49 |
+
* @param string $str The string that should end with $end
|
50 |
+
* @param string $end
|
51 |
+
*
|
52 |
+
* @return string The string with $end at the end
|
53 |
+
*/
|
54 |
function endwith( $str, $end ) {
|
55 |
if (!sustr::endswith($str, $end))
|
56 |
return $str.$end;
|
58 |
return $str;
|
59 |
}
|
60 |
|
61 |
+
/**
|
62 |
+
* Checks whether or not $str has $sub in it somewhere.
|
63 |
+
*
|
64 |
+
* @param string $str
|
65 |
+
* @param string $sub
|
66 |
+
* @return bool
|
67 |
+
*/
|
68 |
function has($str, $sub) {
|
69 |
return (strpos($str, $sub) !== false);
|
70 |
}
|
71 |
|
72 |
+
/**
|
73 |
+
* Case-insensitively checks whether or not $str has $sub in it somewhere.
|
74 |
+
*
|
75 |
+
* @param string $str
|
76 |
+
* @param string $sub
|
77 |
+
* @return bool
|
78 |
+
*/
|
79 |
function ihas($str, $sub) {
|
80 |
$str = strtolower($str);
|
81 |
$sub = strtolower($sub);
|
82 |
return (strpos($str, $sub) !== false);
|
83 |
}
|
84 |
+
|
85 |
/**
|
86 |
* Truncates a string if it is longer than a given length.
|
87 |
*
|
88 |
* @param string $str The string to possibly truncate.
|
89 |
* @param int $maxlen The desired maximum length of the string.
|
90 |
+
* @param string $truncate The string that should be added to the end of a truncated string.
|
91 |
+
* @return string
|
92 |
*/
|
93 |
function truncate( $str, $maxlen, $truncate = '...', $maintain_words=false ) {
|
94 |
|
101 |
return $str;
|
102 |
}
|
103 |
|
104 |
+
/**
|
105 |
+
* Returns the contents of $str up to, but not including, the first instance of $sub.
|
106 |
+
*
|
107 |
+
* @param string $str
|
108 |
+
* @param string $sub
|
109 |
+
* @return string
|
110 |
+
*/
|
111 |
+
function upto($str, $sub) {
|
112 |
+
$end = strpos($str, $sub);
|
113 |
+
if ($end === false)
|
114 |
return $str;
|
115 |
+
else
|
116 |
+
return substr($str, 0, $end);
|
117 |
}
|
118 |
|
119 |
/**
|
120 |
+
* Joins strings into a natural-language list (e.g. "A and B" or "A, B, and C")
|
121 |
* Can be internationalized with gettext or the su_lang_implode filter.
|
122 |
*
|
123 |
* @param array $items The strings (or objects with $var child strings) to join.
|
158 |
/**
|
159 |
* If the given string ends with the given suffix, the suffix is removed.
|
160 |
*
|
161 |
+
* @param string $str The string from which the provided suffix should be trimmed if located.
|
162 |
* @param string $totrim The suffix that should be trimmed if found.
|
163 |
* @return string The possibly-trimmed string.
|
164 |
*/
|
169 |
return $str;
|
170 |
}
|
171 |
|
172 |
+
/**
|
173 |
+
* If the given string ends with the given suffix or any portion thereof, the suffix or suffix portion is removed.
|
174 |
+
*
|
175 |
+
* @param string $str The string from which the provided suffix should be trimmed if located.
|
176 |
+
* @param string $totrim The suffix that should be trimmed if it or a portion of it is found.
|
177 |
+
* @return string The possibly-trimmed string.
|
178 |
+
*/
|
179 |
function rtrim_substr($str, $totrim) {
|
180 |
for ($i = strlen($totrim); $i > 0; $i--) {
|
181 |
$totrimsub = substr($totrim, 0, $i);
|
186 |
return $str;
|
187 |
}
|
188 |
|
189 |
+
/**
|
190 |
+
* If the given string begins with the given prefix, the prefix is removed.
|
191 |
+
*
|
192 |
+
* @param string $str The string of which the provided prefix should be trimmed if located.
|
193 |
+
* @param string $totrim The prefix that should be trimmed if found.
|
194 |
+
* @return string The possibly-trimmed string.
|
195 |
+
*/
|
196 |
function ltrim_str($str, $totrim) {
|
197 |
if (strlen($str) > strlen($totrim) && sustr::startswith($str, $totrim))
|
198 |
return substr($str, strlen($totrim));
|
209 |
return $results;
|
210 |
}
|
211 |
|
212 |
+
function to_int($str) {
|
213 |
+
return intval(sustr::preg_filter('0-9', strval($str)));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
214 |
}
|
215 |
|
216 |
function preg_filter($filter, $str) {
|
218 |
return preg_replace("/[^{$filter}]/", '', $str);
|
219 |
}
|
220 |
|
|
|
|
|
|
|
|
|
221 |
function preg_escape($str, $delim='%') {
|
222 |
$chars = "\ ^ . $ | ( ) [ ] * + ? { } , ".$delim;
|
223 |
$chars = explode(' ', $chars);
|
248 |
return preg_replace($search_regex, $replace, $subject, $limit, $count);
|
249 |
}
|
250 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
251 |
function tclcwords($str) {
|
252 |
$words = explode(' ', $str);
|
253 |
$new_words = array();
|
includes/jlfunctions/url.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions URL Class
|
4 |
-
Copyright (c)2009-
|
5 |
*/
|
6 |
|
7 |
class suurl {
|
@@ -22,10 +22,13 @@ class suurl {
|
|
22 |
return $url.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
|
23 |
}
|
24 |
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
|
|
|
|
|
|
29 |
function equal($url1, $url2) {
|
30 |
|
31 |
if (($url1parts = parse_url($url1)) && isset($url1parts['host'])) {
|
@@ -41,6 +44,12 @@ class suurl {
|
|
41 |
return $url1 == $url2;
|
42 |
}
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
function build($parts) {
|
45 |
|
46 |
$url = '';
|
1 |
<?php
|
2 |
/*
|
3 |
JLFunctions URL Class
|
4 |
+
Copyright (c)2009-2012 John Lamansky
|
5 |
*/
|
6 |
|
7 |
class suurl {
|
22 |
return $url.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
|
23 |
}
|
24 |
|
25 |
+
/**
|
26 |
+
* Checks whether or not two URLs are equivalent.
|
27 |
+
*
|
28 |
+
* @param string $url1
|
29 |
+
* @param string $url2
|
30 |
+
* @return bool
|
31 |
+
*/
|
32 |
function equal($url1, $url2) {
|
33 |
|
34 |
if (($url1parts = parse_url($url1)) && isset($url1parts['host'])) {
|
44 |
return $url1 == $url2;
|
45 |
}
|
46 |
|
47 |
+
/**
|
48 |
+
* Turns an array of URL parts (host, scheme, path, query, fragment) into a URL.
|
49 |
+
*
|
50 |
+
* @param array $parts
|
51 |
+
* @return string
|
52 |
+
*/
|
53 |
function build($parts) {
|
54 |
|
55 |
$url = '';
|
includes/jlfunctions/web.php
CHANGED
@@ -5,7 +5,7 @@ Copyright (c)2010 John Lamansky
|
|
5 |
*/
|
6 |
|
7 |
class suweb {
|
8 |
-
|
9 |
function is_search_engine_ua($user_agent) {
|
10 |
$ua_keywords = array(
|
11 |
'Googlebot' //Google
|
5 |
*/
|
6 |
|
7 |
class suweb {
|
8 |
+
|
9 |
function is_search_engine_ua($user_agent) {
|
10 |
$ua_keywords = array(
|
11 |
'Googlebot' //Google
|
includes/jlsuggest/jlsuggest.js
CHANGED
@@ -108,9 +108,11 @@ jQuery(document).ready( function($) {
|
|
108 |
if (timeout)
|
109 |
clearTimeout(timeout);
|
110 |
|
|
|
111 |
if ($input.val().length >= options.minchars && (!options.noUrls || ($input.val().substring(0, 7) != 'http://' && $input.val().substring(0, 8) != 'https://' && $input.val().indexOf('/') == '-1'))) {
|
112 |
$input.addClass(options.timeoutClass);
|
113 |
|
|
|
114 |
timeout = setTimeout(suggest, options.delay);
|
115 |
} else {
|
116 |
$results.hide();
|
@@ -127,22 +129,8 @@ jQuery(document).ready( function($) {
|
|
127 |
|
128 |
function suggest() {
|
129 |
|
130 |
-
var q = $.trim($input.val()),
|
131 |
|
132 |
-
/*
|
133 |
-
if (options.noUrls && (q.substring(0, 7) == 'http://' || q.substring(0, 8) == 'https://')) {
|
134 |
-
$results.hide();
|
135 |
-
$input.removeClass(options.timeoutClass);
|
136 |
-
return;
|
137 |
-
}
|
138 |
-
*/
|
139 |
-
|
140 |
-
if ( options.multiple ) {
|
141 |
-
multipleSepPos = q.lastIndexOf(options.multipleSep);
|
142 |
-
if ( multipleSepPos != -1 ) {
|
143 |
-
q = $.trim(q.substr(multipleSepPos + options.multipleSep.length));
|
144 |
-
}
|
145 |
-
}
|
146 |
if (q.length >= options.minchars) {
|
147 |
|
148 |
cached = checkCache(q);
|
@@ -284,30 +272,21 @@ jQuery(document).ready( function($) {
|
|
284 |
$currentResult = getCurrentResult();
|
285 |
|
286 |
if ($currentResult) {
|
287 |
-
if (
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
|
|
|
|
|
|
|
|
|
|
295 |
} else {
|
296 |
-
|
297 |
-
$input
|
298 |
-
.hide()
|
299 |
-
.siblings('.' + options.textDestClass + ':first')
|
300 |
-
.show()
|
301 |
-
.children('.' + options.textDestTextClass)
|
302 |
-
.html($currentResult.attr('su:selectedtext') || $currentResult.text())
|
303 |
-
.parentsUntil('tr')
|
304 |
-
.next('td')
|
305 |
-
.children('input')
|
306 |
-
.focus();
|
307 |
-
|
308 |
-
$input.val($currentResult.attr('su:value'));
|
309 |
-
} else
|
310 |
-
$input.val($currentResult.text());
|
311 |
}
|
312 |
$results.hide();
|
313 |
|
@@ -352,8 +331,6 @@ jQuery(document).ready( function($) {
|
|
352 |
return;
|
353 |
|
354 |
options = options || {};
|
355 |
-
options.multiple = options.multiple || false;
|
356 |
-
options.multipleSep = options.multipleSep || ", ";
|
357 |
options.source = source;
|
358 |
options.delay = options.delay || 100;
|
359 |
options.resultsClass = options.resultsClass || 'jls_results';
|
108 |
if (timeout)
|
109 |
clearTimeout(timeout);
|
110 |
|
111 |
+
//Only trigger suggestions if the minimum length is met and if this isn't a URL (assuming the noUrls option is set)
|
112 |
if ($input.val().length >= options.minchars && (!options.noUrls || ($input.val().substring(0, 7) != 'http://' && $input.val().substring(0, 8) != 'https://' && $input.val().indexOf('/') == '-1'))) {
|
113 |
$input.addClass(options.timeoutClass);
|
114 |
|
115 |
+
//Wait a bit before giving autocomplete suggestions
|
116 |
timeout = setTimeout(suggest, options.delay);
|
117 |
} else {
|
118 |
$results.hide();
|
129 |
|
130 |
function suggest() {
|
131 |
|
132 |
+
var q = $.trim($input.val()), items;
|
133 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
if (q.length >= options.minchars) {
|
135 |
|
136 |
cached = checkCache(q);
|
272 |
$currentResult = getCurrentResult();
|
273 |
|
274 |
if ($currentResult) {
|
275 |
+
if (options.textDest) {
|
276 |
+
$input
|
277 |
+
.hide() //Hide the input box
|
278 |
+
.siblings('.' + options.textDestClass + ':first')
|
279 |
+
.show() //Show the selection box
|
280 |
+
.children('.' + options.textDestTextClass)
|
281 |
+
.html($currentResult.attr('su:selectedtext') || $currentResult.text()) //Put the selected item into the selection box
|
282 |
+
.parentsUntil('tr') //If we're in a table...
|
283 |
+
.next('td')
|
284 |
+
.children('input')
|
285 |
+
.focus(); //...then focus the next textbox in the table
|
286 |
+
|
287 |
+
$input.val($currentResult.attr('su:value'));
|
288 |
} else {
|
289 |
+
$input.val($currentResult.text());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
290 |
}
|
291 |
$results.hide();
|
292 |
|
331 |
return;
|
332 |
|
333 |
options = options || {};
|
|
|
|
|
334 |
options.source = source;
|
335 |
options.delay = options.delay || 100;
|
336 |
options.resultsClass = options.resultsClass || 'jls_results';
|
includes/jlwp/functions.php
CHANGED
@@ -30,55 +30,6 @@ class suwp {
|
|
30 |
return false;
|
31 |
}
|
32 |
|
33 |
-
function get_any_posts($args = array()) {
|
34 |
-
if (!is_array($args)) $args = array();
|
35 |
-
$args['post_type'] = suwp::get_post_type_names(); //...as opposed to "any" because then get_posts() will remove search-excluded post types
|
36 |
-
$args['numberposts'] = -1;
|
37 |
-
return get_posts($args);
|
38 |
-
}
|
39 |
-
|
40 |
-
function get_post_type_names() {
|
41 |
-
//If WP 2.9+ && WP 3.0+...
|
42 |
-
if (function_exists('get_post_types') && $types = get_post_types(array('public' => true), 'names'))
|
43 |
-
return $types;
|
44 |
-
|
45 |
-
//WP 2.9 or less
|
46 |
-
return array('post', 'page', 'attachment');
|
47 |
-
}
|
48 |
-
|
49 |
-
function get_post_type_objects() {
|
50 |
-
$types = array();
|
51 |
-
|
52 |
-
//Custom post type support - requires WordPress 3.0 or above (won't work with 2.9 custom post types)
|
53 |
-
if (function_exists('get_post_types'))
|
54 |
-
$types = get_post_types(array('public' => true), 'objects');
|
55 |
-
|
56 |
-
/*
|
57 |
-
if (function_exists('get_post_types'))
|
58 |
-
$types = suarr::flatten_values(get_post_types(array('public' => true), 'objects'), array('labels', 'name'));
|
59 |
-
*/
|
60 |
-
|
61 |
-
//Legacy support for WordPress 2.9 and below
|
62 |
-
if (!count($types)) {
|
63 |
-
|
64 |
-
$_types = array(
|
65 |
-
array('post', __('Posts'), __('Post'))
|
66 |
-
, array('page', __('Pages'), __('Page'))
|
67 |
-
, array('attachment', __('Attachments'), __('Attachment'))
|
68 |
-
);
|
69 |
-
$types = array();
|
70 |
-
foreach ($_types as $_type) {
|
71 |
-
$type = new stdClass();
|
72 |
-
$type->name = $_type[0];
|
73 |
-
$type->labels->name = $_type[1];
|
74 |
-
$type->labels->singular_name = $_type[2];
|
75 |
-
$types[] = $type;
|
76 |
-
}
|
77 |
-
}
|
78 |
-
|
79 |
-
return $types;
|
80 |
-
}
|
81 |
-
|
82 |
function is_tax($taxonomy='', $term='') {
|
83 |
if ($taxonomy) {
|
84 |
switch ($taxonomy) {
|
@@ -114,33 +65,6 @@ class suwp {
|
|
114 |
return $taxonomies;
|
115 |
}
|
116 |
|
117 |
-
function get_any_terms($args = array()) {
|
118 |
-
$taxonomies = get_taxonomies(array('public' => true));
|
119 |
-
return get_terms($taxonomies, $args);
|
120 |
-
}
|
121 |
-
|
122 |
-
/**
|
123 |
-
* Loads a webpage and returns its HTML as a string.
|
124 |
-
*
|
125 |
-
* @param string $url The URL of the webpage to load.
|
126 |
-
* @param string $ua The user agent to use.
|
127 |
-
* @return string The HTML of the URL.
|
128 |
-
*/
|
129 |
-
function load_webpage($url, $ua) {
|
130 |
-
|
131 |
-
$options = array();
|
132 |
-
$options['headers'] = array(
|
133 |
-
'User-Agent' => $ua
|
134 |
-
);
|
135 |
-
|
136 |
-
$response = wp_remote_request($url, $options);
|
137 |
-
|
138 |
-
if ( is_wp_error( $response ) ) return false;
|
139 |
-
if ( 200 != $response['response']['code'] ) return false;
|
140 |
-
|
141 |
-
return trim( $response['body'] );
|
142 |
-
}
|
143 |
-
|
144 |
/**
|
145 |
* Loads an RSS feed and returns it as an object.
|
146 |
*
|
@@ -179,29 +103,11 @@ class suwp {
|
|
179 |
function get_edit_term_link($id, $taxonomy) {
|
180 |
$tax_obj = get_taxonomy($taxonomy);
|
181 |
if ($tax_obj->show_ui)
|
182 |
-
return
|
183 |
else
|
184 |
return false;
|
185 |
}
|
186 |
|
187 |
-
function get_all_the_terms($id = 0) {
|
188 |
-
|
189 |
-
$id = (int)$id;
|
190 |
-
if (!$id) $id = suwp::get_post_id();
|
191 |
-
$post = get_post($id);
|
192 |
-
if (!$post) return false;
|
193 |
-
|
194 |
-
$taxonomies = get_object_taxonomies($post);
|
195 |
-
$terms = array();
|
196 |
-
|
197 |
-
foreach ($taxonomies as $taxonomy) {
|
198 |
-
$newterms = get_the_terms($id, $taxonomy);
|
199 |
-
if ($newterms) $terms = array_merge($terms, $newterms);
|
200 |
-
}
|
201 |
-
|
202 |
-
return $terms;
|
203 |
-
}
|
204 |
-
|
205 |
function get_term_slug($term_obj) {
|
206 |
$tax_name = $term_obj->taxonomy;
|
207 |
$tax_obj = get_taxonomy($tax_name);
|
@@ -225,26 +131,6 @@ class suwp {
|
|
225 |
return $term_slug;
|
226 |
}
|
227 |
|
228 |
-
function remove_instance_action($tag, $class, $function, $priority=10) {
|
229 |
-
return suwp::remove_instance_filter($tag, $class, $function, $priority);
|
230 |
-
}
|
231 |
-
|
232 |
-
function remove_instance_filter($tag, $class, $function, $priority=10) {
|
233 |
-
if (isset($GLOBALS['wp_filter'][$tag][$priority]) && count($GLOBALS['wp_filter'][$tag][$priority])) {
|
234 |
-
foreach ($GLOBALS['wp_filter'][$tag][$priority] as $key => $x) {
|
235 |
-
if (sustr::startswith($key, $class.$function)) {
|
236 |
-
unset($GLOBALS['wp_filter'][$tag][$priority][$key]);
|
237 |
-
if ( empty($GLOBALS['wp_filter'][$tag][$priority]) )
|
238 |
-
unset($GLOBALS['wp_filter'][$tag][$priority]);
|
239 |
-
unset($GLOBALS['merged_filters'][$tag]);
|
240 |
-
return true;
|
241 |
-
}
|
242 |
-
}
|
243 |
-
}
|
244 |
-
|
245 |
-
return false;
|
246 |
-
}
|
247 |
-
|
248 |
function permalink_mode() {
|
249 |
if (strlen($struct = get_option('permalink_structure'))) {
|
250 |
if (sustr::startswith($struct, '/index.php/'))
|
@@ -262,24 +148,6 @@ class suwp {
|
|
262 |
return home_url('/');
|
263 |
}
|
264 |
|
265 |
-
function get_user_edit_url($user_id) {
|
266 |
-
if (is_object($user_id)) $user_id = intval($user_id->ID);
|
267 |
-
|
268 |
-
if ( get_current_user_id() == $user_id )
|
269 |
-
return 'profile.php';
|
270 |
-
else
|
271 |
-
return esc_url( add_query_arg( 'wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), "user-edit.php?user_id=$user_id" ) );
|
272 |
-
}
|
273 |
-
|
274 |
-
function is_comment_subpage() {
|
275 |
-
if (is_singular()) {
|
276 |
-
global $cpage;
|
277 |
-
return $cpage > 1;
|
278 |
-
}
|
279 |
-
|
280 |
-
return false;
|
281 |
-
}
|
282 |
-
|
283 |
function get_admin_scope() {
|
284 |
if (is_blog_admin())
|
285 |
return 'blog';
|
30 |
return false;
|
31 |
}
|
32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
function is_tax($taxonomy='', $term='') {
|
34 |
if ($taxonomy) {
|
35 |
switch ($taxonomy) {
|
65 |
return $taxonomies;
|
66 |
}
|
67 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
/**
|
69 |
* Loads an RSS feed and returns it as an object.
|
70 |
*
|
103 |
function get_edit_term_link($id, $taxonomy) {
|
104 |
$tax_obj = get_taxonomy($taxonomy);
|
105 |
if ($tax_obj->show_ui)
|
106 |
+
return get_edit_term_link($id, $taxonomy);
|
107 |
else
|
108 |
return false;
|
109 |
}
|
110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
function get_term_slug($term_obj) {
|
112 |
$tax_name = $term_obj->taxonomy;
|
113 |
$tax_obj = get_taxonomy($tax_name);
|
131 |
return $term_slug;
|
132 |
}
|
133 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
function permalink_mode() {
|
135 |
if (strlen($struct = get_option('permalink_structure'))) {
|
136 |
if (sustr::startswith($struct, '/index.php/'))
|
148 |
return home_url('/');
|
149 |
}
|
150 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
function get_admin_scope() {
|
152 |
if (is_blog_admin())
|
153 |
return 'blog';
|
includes/tabs.js
CHANGED
@@ -44,9 +44,11 @@ jQuery(document).ready(function() {
|
|
44 |
|
45 |
function su_hash_form(hash) {
|
46 |
var form = jQuery('#su-admin-form');
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
|
|
|
|
52 |
}
|
44 |
|
45 |
function su_hash_form(hash) {
|
46 |
var form = jQuery('#su-admin-form');
|
47 |
+
if (form) {
|
48 |
+
var action = form.attr("action").split('#', 1) + hash;
|
49 |
+
// an older bug pops up with some jQuery version(s), which makes it
|
50 |
+
// necessary to set the form's action attribute by standard javascript
|
51 |
+
// node access:
|
52 |
+
form.get(0).setAttribute("action", action);
|
53 |
+
}
|
54 |
}
|
modules/404s/fofs-log.php
CHANGED
@@ -44,6 +44,9 @@ class SU_FofsLog extends SU_Module {
|
|
44 |
//Upgrade to new wp_options-only system if needed
|
45 |
function upgrade() {
|
46 |
global $wpdb;
|
|
|
|
|
|
|
47 |
//Get old storage system if it exists
|
48 |
if ($result = @$wpdb->get_results("SELECT * FROM {$wpdb->prefix}sds_hits WHERE status_code=404 AND redirect_url='' AND url NOT LIKE '%/favicon.ico' ORDER BY id DESC", ARRAY_A)) {
|
49 |
|
@@ -56,6 +59,8 @@ class SU_FofsLog extends SU_Module {
|
|
56 |
//Out with the old
|
57 |
mysql_query("DROP TABLE IF EXISTS {$wpdb->prefix}sds_hits");
|
58 |
}
|
|
|
|
|
59 |
}
|
60 |
|
61 |
function queue_admin_scripts() {
|
44 |
//Upgrade to new wp_options-only system if needed
|
45 |
function upgrade() {
|
46 |
global $wpdb;
|
47 |
+
|
48 |
+
$suppress = $wpdb->suppress_errors(true);
|
49 |
+
|
50 |
//Get old storage system if it exists
|
51 |
if ($result = @$wpdb->get_results("SELECT * FROM {$wpdb->prefix}sds_hits WHERE status_code=404 AND redirect_url='' AND url NOT LIKE '%/favicon.ico' ORDER BY id DESC", ARRAY_A)) {
|
52 |
|
59 |
//Out with the old
|
60 |
mysql_query("DROP TABLE IF EXISTS {$wpdb->prefix}sds_hits");
|
61 |
}
|
62 |
+
|
63 |
+
$wpdb->suppress_errors($suppress);
|
64 |
}
|
65 |
|
66 |
function queue_admin_scripts() {
|
modules/404s/fofs.php
CHANGED
@@ -34,10 +34,14 @@ class SU_Fofs extends SU_Module {
|
|
34 |
<p>You can perform the following actions on each entry in the log:</p>
|
35 |
|
36 |
<ul>
|
37 |
-
<li>
|
38 |
-
<li>
|
39 |
-
<li>Once you've taken care of a 404 error, you can click the
|
|
|
|
|
40 |
</ul>
|
|
|
|
|
41 |
", 'seo-ultimate')));
|
42 |
|
43 |
$screen->add_help_tab(array(
|
34 |
<p>You can perform the following actions on each entry in the log:</p>
|
35 |
|
36 |
<ul>
|
37 |
+
<li>Clicking the first icon will open the URL in a new window. This is useful for testing whether or not a redirect is working.</li>
|
38 |
+
<li>Clicking the second icon will open Google's archived version of the URL in a new window. This is useful for determining what content, if any, used to be located at that URL.</li>
|
39 |
+
<li>Once you've taken care of a 404 error, you can click the third icon to remove it from the list. The URL will reappear on the list if it triggers a 404 error in the future.</li>
|
40 |
+
<li>To view the list of the URLs by which visitors and/or search engines reached this non-existent URL, click the scroll icon in the “Referers” column.</li>
|
41 |
+
<li>To view the list of visitor browsers and search engine bots which tried to access this non-existent URL, click the scroll icon in the “User Agents” column.</li>
|
42 |
</ul>
|
43 |
+
|
44 |
+
<p>The “Clear Log” button will erase all of entries in the log. The log will remain empty until more 404 errors are logged.</p>
|
45 |
", 'seo-ultimate')));
|
46 |
|
47 |
$screen->add_help_tab(array(
|
modules/autolinks/autolinks.css
CHANGED
@@ -25,6 +25,14 @@
|
|
25 |
width: 15em;
|
26 |
}
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
#su-autolinks table.widefat td.su-link-sitewide-lpa {
|
29 |
width: 5em;
|
30 |
}
|
25 |
width: 15em;
|
26 |
}
|
27 |
|
28 |
+
#su-autolinks table.widefat td.su-link-dampen-sitewide-lpa {
|
29 |
+
width: 5em;
|
30 |
+
}
|
31 |
+
|
32 |
+
#su-autolinks table.widefat td.su-link-dampen-sitewide-lpa input.textbox {
|
33 |
+
width: 4em;
|
34 |
+
}
|
35 |
+
|
36 |
#su-autolinks table.widefat td.su-link-sitewide-lpa {
|
37 |
width: 5em;
|
38 |
}
|
modules/autolinks/autolinks.php
CHANGED
@@ -9,6 +9,165 @@ if (class_exists('SU_Module')) {
|
|
9 |
|
10 |
class SU_Autolinks extends SU_Module {
|
11 |
function get_module_title() { return __('Deeplink Juggernaut', 'seo-ultimate'); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
}
|
13 |
|
14 |
}
|
9 |
|
10 |
class SU_Autolinks extends SU_Module {
|
11 |
function get_module_title() { return __('Deeplink Juggernaut', 'seo-ultimate'); }
|
12 |
+
|
13 |
+
function add_help_tabs($screen) {
|
14 |
+
|
15 |
+
$screen->add_help_tab(array(
|
16 |
+
'id' => 'su-autolinks-overview'
|
17 |
+
, 'title' => __('Overview', 'seo-ultimate')
|
18 |
+
, 'content' => __("
|
19 |
+
<ul>
|
20 |
+
<li><strong>What it does:</strong> Deeplink Juggernaut lets you automatically generate hyperlinks in your site’s content and footer.</li>
|
21 |
+
<li><strong>Why it helps:</strong> Search engines use the anchor text of hyperlinks to determine the topicality of the webpage to which the link points. Deeplink Juggernaut lets you automatically generate hyperlinks to various pages on your site, which can help increase the linked page’s ranking for the term used in the anchor text.</li>
|
22 |
+
<li><strong>How to use it:</strong> The Content Links section lets you automatically link words or phrases in your site’s content to a target page of your choosing. The Footer Links section lets you add links in the footer of your entire site or just a particular set of webpages.</li>
|
23 |
+
</ul>
|
24 |
+
", 'seo-ultimate')));
|
25 |
+
|
26 |
+
$screen->add_help_tab(array(
|
27 |
+
'id' => 'su-autolinks-content-links'
|
28 |
+
, 'title' => __('Content Links Tab', 'seo-ultimate')
|
29 |
+
, 'content' => __("
|
30 |
+
<p>To add an autolink, fill in the fields and then click “Save Changes.” Once you do so, you can edit your new autolink or add another one.</p>
|
31 |
+
|
32 |
+
<ul>
|
33 |
+
<li><strong>Anchor Text</strong> — Deeplink Juggernaut will scan your site’s content for the word or phrase you put in this box, and then hyperlink instances of that word or phrase to the webpage or item you specify in the Destination box. The Anchor Text should be a keyword that you want the Destination page to rank for.</li>
|
34 |
+
<li><p><strong>Destination</strong> — This is the box where you specify the webpage where you want the auto-generated hyperlinks to point.</p>
|
35 |
+
<ul>
|
36 |
+
<li>To link to a post, page, attachment, category, tag, term, or author on your site, just type in its name and then select it from the dropdown.</li>
|
37 |
+
<li>To link to your blog homepage, just type in “home” and select “Blog Homepage” from the dropdown.</li>
|
38 |
+
<li>To link to one of the aliased URLs you created with the Link Mask Generator, just type in part of the original URL or alias URL and then select the link mask from the dropdown.</li>
|
39 |
+
<li>To link to some other webpage, just type or paste in its URL in the box.</li>
|
40 |
+
</ul>
|
41 |
+
</li>
|
42 |
+
<li><strong>Title Attribute</strong> — The link’s title attribute is the text that will appear when the visitor’s mouse pointer hovers over the link. Totally optional.</li>
|
43 |
+
<li><p><strong>Dampener:</strong> If the anchor text you specify occurs many times throughout your site’s content, you may wish to reduce the overall frequency with which the anchor text is hyperlinked. You can reduce the autolinking frequency by a percentage with the Dampener field. For example:</p>
|
44 |
+
<ul>
|
45 |
+
<li>0% dampening will have no effect.</li>
|
46 |
+
<li>50% dampening means the anchor text will be autolinked approximately half as often as it otherwise would be.</li>
|
47 |
+
<li>90% dampening means the anchor text will be autolinked only 10% as often as it otherwise would be.</li>
|
48 |
+
<li>100% dampening means the anchor text won’t be linked at all.</li>
|
49 |
+
</ul>
|
50 |
+
<p>The “Dampener” column will only appear if you’ve enabled it under the “Content Link Settings” tab.</p>
|
51 |
+
</li>
|
52 |
+
<li><strong>Nofollow</strong> — Checking this will add the <code>rel="nofollow"</code> attribute to all autolinks generated for that anchor text. You should enable this only if you’re creating an automatic affiliate link.</li>
|
53 |
+
<li><strong>New window</strong> — Checking this will make the link destination open up in a new window when the autolink is clicked.</li>
|
54 |
+
<li><strong>Delete</strong> — To delete an autolink, tick its “Delete” checkbox and then click “Save Changes.”</li>
|
55 |
+
</ul>
|
56 |
+
", 'seo-ultimate')));
|
57 |
+
|
58 |
+
$screen->add_help_tab(array(
|
59 |
+
'id' => 'su-autolinks-content-link-settings'
|
60 |
+
, 'title' => __('Content Link Settings Tab', 'seo-ultimate')
|
61 |
+
, 'content' => __("
|
62 |
+
<p>The following options are available on the Content Link Settings tab:</p>
|
63 |
+
|
64 |
+
<ul>
|
65 |
+
<li><strong>Add Autolinks to...</strong> — You can stop Deeplink Juggernaut from adding hyperlinks to the content of items of a given post type by unchecking the post type’s checkbox.</li>
|
66 |
+
<li>
|
67 |
+
<p><strong>Self-Linking</strong></p>
|
68 |
+
<ul>
|
69 |
+
<li><strong>Allow posts to link to themselves</strong> — This permits Deeplink Juggernaut to add a link to the content of a given post/page even if the link is pointing to the URL of that post/page.</li>
|
70 |
+
<li><strong>Allow posts to link to the URL by which the visitor is accessing the post</strong> — There are lots of URLs by which you can access any given post/page on your site. You can access posts/pages via the homepage URL, your site’s many archive URLs, or the URLs of the posts/pages themselves. If you have an autolink that points to the homepage, and if Deeplink Juggernaut were to add that link to the content of posts when those posts are accessed from the homepage, then the homepage would be linking to itself. By default, Deeplink Juggernaut won’t let this happen. But if you’re okay with that sort of behavior, you can enable it by checking this box.</li>
|
71 |
+
</ul>
|
72 |
+
</li>
|
73 |
+
<li>
|
74 |
+
<p><strong>Quantity Restrictions</strong></p>
|
75 |
+
<ul>
|
76 |
+
<li><strong>Don’t add any more than ___ autolinks per post/page/etc.</strong> — Use this option to cap the total number of autolinks (for all anchor texts combined) that can be added to the content of any one item.</li>
|
77 |
+
<li><strong>Don’t link the same anchor text any more than ___ times per post/page/etc.</strong> — Use this option to cap the number of times that each anchor text can be autolinked in the content of any one item.</li>
|
78 |
+
<li><strong>Don’t link to the same destination any more than ___ times per post/page/etc.</strong> — Use this option to cap the number of autolinks that any one URL can get within the content of any one item. (This is different from the previous option because you can have multiple anchor texts pointing to the same place.)</li>
|
79 |
+
</ul>
|
80 |
+
</li>
|
81 |
+
<li>
|
82 |
+
<p><strong>Additional Dampening Effect</strong></p>
|
83 |
+
<ul>
|
84 |
+
<li><strong>Globally decrease autolinking frequency by ___%</strong> — If you have massive amounts of content on your site (e.g. thousands of posts), the “Quantity Restrictions” settings may not be sufficient to reign in the number of autolinks being generated. If that is the case, you can use this option to reduce overall autolinking frequency by a given percentage. For example, if you were to set global dampening to 10%, then autolinks would be added only 90% as often as before.</li>
|
85 |
+
<li><strong>Add a “Dampener” column to the Content Links editor</strong> — Check this box and click “Save Changes” to add a new column to the “Content Links” editor table that will let you apply the dampening effect to individual autolinks. If you’ve also enabled the global dampening option, this will let you override the global value for individual links. (For example, you can disable dampening for just one of your links by setting the Dampener field to 0%.)</li>
|
86 |
+
</ul>
|
87 |
+
</li>
|
88 |
+
<li><strong>Tag Restrictions</strong> — By default, Deeplink Juggernaut will not autolink a particular anchor text if that anchor text is found in a header or in a code block. You can further customize these exceptions by adding HTML tags to the list.</li>
|
89 |
+
<li><strong>Siloing</strong> — If you enable the siloing feature for a given post type (such as posts or pages), then items of that post type will only be able to autolink to a webpage on your site if it falls within a category, tag, or term shared by that item. For example, you can set it up so that posts in Category A can’t autolink to anything on your site with the exception of other posts in Category A and the Category A archive. Autolinks to external sites will not be affected, since the siloing setting will not affect autolinks that have a URL in the Destination box.</li>
|
90 |
+
<li><strong>CSS Class for Autolinks</strong> — If you want to apply CSS styling to Content Links generated by Deeplink Juggernaut, type in a class name here (e.g. “autolink”).</li>
|
91 |
+
</ul>
|
92 |
+
", 'seo-ultimate')));
|
93 |
+
|
94 |
+
$screen->add_help_tab(array(
|
95 |
+
'id' => 'su-autolinks-footer-links'
|
96 |
+
, 'title' => __('Footer Links Tab', 'seo-ultimate')
|
97 |
+
, 'content' => __("
|
98 |
+
<p>To add a footer link, fill in the fields and then click “Save Changes.” Once you do so, you can edit your new footer link or add another one.</p>
|
99 |
+
|
100 |
+
<ul>
|
101 |
+
<li><p><strong>Link Location</strong> — If you want to add a footer link across your entire site, leave this box blank. Otherwise, type in the location on your site where you want the footer link to appear.</p>
|
102 |
+
<p>If you only want the footer link to appear on…</p>
|
103 |
+
<ul>
|
104 |
+
<li>…A particular post, page, attachment, or category/tag/term/author archive, just type in the item’s name and then select it from the dropdown.</li>
|
105 |
+
<li>…Your blog homepage, just type in “home” and select “Blog Homepage” from the dropdown.</li>
|
106 |
+
<li>…A particular URL on your site, just type or paste it into the box.</li>
|
107 |
+
</ul>
|
108 |
+
</li>
|
109 |
+
<li><p><strong>Match child content</strong> — What this does depends on what type of Link Location you specified.</p>
|
110 |
+
<ul>
|
111 |
+
<li>If the Link Location is a category/tag/term archive, then the footer link will also be added to posts within that term.</li>
|
112 |
+
<li>If the Link Location is an author archive, then the footer link will also be added to posts written by that author.</li>
|
113 |
+
<li>If the Link Location is a URL, then the footer link will also be added to URLs that begin with whatever URL you entered.</li>
|
114 |
+
</ul>
|
115 |
+
</li>
|
116 |
+
<li><strong>Negative match</strong> — This will cause the footer link to be inserted on webpages <em>other than</em> the Link Location and (if the appropriate box is checked) its child content.</li>
|
117 |
+
<li><strong>Anchor Text</strong> — Deeplink Juggernaut insert this text into your site’s footer and will link that text to the webpage or item you specify in the Destination box. The Anchor Text should be a keyword that you want the Destination page to rank for.</li>
|
118 |
+
<li><p><strong>Destination</strong> — This is the box where you specify the webpage where you want the auto-generated hyperlinks to point.</p>
|
119 |
+
<ul>
|
120 |
+
<li>To link to a post, page, attachment, category, tag, term, or author on your site, just type in its name and then select it from the dropdown.</li>
|
121 |
+
<li>To link to your blog homepage, just type in “home” and select “Blog Homepage” from the dropdown.</li>
|
122 |
+
<li>To link to one of the aliased URLs you created with the Link Mask Generator, just type in part of the original URL or alias URL and then select the link mask from the dropdown.</li>
|
123 |
+
<li>To link to some other webpage, just type or paste in its URL in the box.</li>
|
124 |
+
</ul>
|
125 |
+
</li>
|
126 |
+
<li><strong>Title Attribute</strong> — The link’s title attribute is the text that will appear when the visitor’s mouse pointer hovers over the link. Totally optional.</li>
|
127 |
+
<li><strong>Nofollow</strong> — Checking this will add the <code>rel="nofollow"</code> attribute to all instances of this footer link. You should enable this only if you’re creating an automatic affiliate link.</li>
|
128 |
+
<li><strong>New window</strong> — Checking this will make the link destination open up in a new window when the footer link is clicked.</li>
|
129 |
+
<li><strong>Delete</strong> — To delete an autolink, tick its “Delete” checkbox and then click “Save Changes.”</li>
|
130 |
+
</ul>
|
131 |
+
", 'seo-ultimate')));
|
132 |
+
|
133 |
+
$screen->add_help_tab(array(
|
134 |
+
'id' => 'su-autolinks-footer-link-settings'
|
135 |
+
, 'title' => __('Footer Link Settings Tab', 'seo-ultimate')
|
136 |
+
, 'content' => __("
|
137 |
+
<p>The following options are available on the Footer Link Settings tab:</p>
|
138 |
+
|
139 |
+
<ul>
|
140 |
+
<li><strong>Link Section Format</strong> — Lets you customize the text/HTML that will surround the list of links outputted in your site’s footer (represented by the <code>{links}</code> variable).</li>
|
141 |
+
<li><strong>Link Format</strong> — Lets you specify text or HTML that will surround each individual link (represented by the <code>{link}</code> variable).</li>
|
142 |
+
<li><strong>Link Separator</strong> — Lets you specify text or HTML that will separate each individual link.</li>
|
143 |
+
</ul>
|
144 |
+
", 'seo-ultimate')));
|
145 |
+
|
146 |
+
$screen->add_help_tab(array(
|
147 |
+
'id' => 'su-autolinks-faq'
|
148 |
+
, 'title' => __('FAQ', 'seo-ultimate')
|
149 |
+
, 'content' => __("
|
150 |
+
<ul>
|
151 |
+
<li><strong>What happens if I autolink to a post and then delete the post later?</strong><br />Deeplink Juggernaut will disable all autolinks that point to the deleted post. Deeplink Juggernaut will keep the autolink in the list though, so that you can point it somewhere else.</li>
|
152 |
+
<li><strong>What happens if I autolink to a draft post?</strong><br />Don’t worry: Deeplink Juggernaut won’t actually autolink to it until the post is published.</li>
|
153 |
+
<li><strong>Does Deeplink Juggernaut edit my posts’ content as it is stored in the database?</strong><br />No. Autolinks are added dynamically. This means all the autolinks will go away if you disable Deeplink Juggernaut or deactivate SEO Ultimate.</li>
|
154 |
+
<li><strong>How does the Dampener work?</strong><br />When the Dampener is in effect, Deeplink Juggernaut creates a hash for each autolink and creates a hash for each post/page/etc. on your site. In order for the autolink to be added to the content of a post/page, the two hashes have to be compatible with each other. If the Dampener is set to 70%, then the hashes will match and the autolink will be applied approximately 30% of the time. This hash system results in a pseudo-random dampening effect that will always have a consistent outcome for any given anchor/post combination.</li>
|
155 |
+
<li><strong>Can I still use the Footer Links feature if my theme has a widgetized footer?</strong><br />Yes. Make sure the “SEO Ultimate Widgets” module is enabled in the SEO Ultimate <a href='admin.php?page=seo' target='_blank'>Module Manager</a>, then go to your <a href='widgets.php' target='_blank'>Widgets</a> page and add the “Footer Links” widget.
|
156 |
+
</ul>
|
157 |
+
", 'seo-ultimate')));
|
158 |
+
|
159 |
+
$screen->add_help_tab(array(
|
160 |
+
'id' => 'su-autolinks-troubleshooting'
|
161 |
+
, 'title' => __('Troubleshooting', 'seo-ultimate')
|
162 |
+
, 'content' => __("
|
163 |
+
<ul>
|
164 |
+
<li><strong>I configured a Content Link, but the anchor text isn’t being linked on my site.</strong><br />You likely enabled a setting on the “Content Link Settings” tab that is preventing the autolink from being applied.</li>
|
165 |
+
<li><strong>I have Content Links configured for “widgets” and “blue widgets,” but when the phrase “blue widgets” appears on my site, only the word “widgets” is being linked. Why is that?</strong><br />Deeplink Juggernaut always links longer anchor texts first, so if this is happening, then the “blue widgets” autolink must have been disabled in that particular instance due to a Quantity Restriction or the Dampener effect being applied.</li>
|
166 |
+
<li><strong>Why aren’t my footer links appearing?</strong><br />Check to make sure your theme is <a href='http://johnlamansky.com/wordpress/theme-plugin-hooks/' target='_blank'>plugin-friendly</a>. Also, check the “Footer Link Settings” tab and make sure that the “Link Section Format” field includes the <code>{links}</code> variable and that the “Link Format” field includes the <code>{link}</code> variable.</li>
|
167 |
+
</ul>
|
168 |
+
", 'seo-ultimate')));
|
169 |
+
|
170 |
+
}
|
171 |
}
|
172 |
|
173 |
}
|
modules/autolinks/content-autolinks-settings.php
CHANGED
@@ -17,13 +17,15 @@ class SU_ContentAutolinksSettings extends SU_Module {
|
|
17 |
function get_module_subtitle() { return __('Content Link Settings', 'seo-ultimate'); }
|
18 |
|
19 |
function get_default_settings() {
|
|
|
20 |
$defaults = array(
|
21 |
-
'
|
|
|
|
|
22 |
, 'enable_current_url_links' => $this->get_setting('enable_self_links', false)
|
23 |
, 'limit_lpp_value' => 5
|
24 |
, 'limit_lpa_value' => 2
|
25 |
, 'limit_lpu_value' => 1
|
26 |
-
, 'limit_sitewide_lpa_value' => 50
|
27 |
, 'linkfree_tags' => 'code,pre,kbd,h1,h2,h3,h4,h5,h6'
|
28 |
);
|
29 |
|
@@ -40,18 +42,26 @@ class SU_ContentAutolinksSettings extends SU_Module {
|
|
40 |
, __('Add Autolinks to...', 'seo-ultimate'));
|
41 |
|
42 |
$this->checkboxes(array(
|
43 |
-
'enable_self_links' => __('Allow posts to link to themselves
|
44 |
-
, 'enable_current_url_links' => __('Allow posts to link to the URL by which the visitor is accessing the post
|
45 |
), __('Self-Linking', 'seo-ultimate'));
|
46 |
|
47 |
$this->checkboxes(array(
|
48 |
-
'
|
49 |
-
, 'limit_lpp' => __('Don’t add any more than %d autolinks per post/page/etc.', 'seo-ultimate')
|
50 |
, 'limit_lpa' => __('Don’t link the same anchor text any more than %d times per post/page/etc.', 'seo-ultimate')
|
51 |
-
, 'limit_sitewide_lpa' => __('Don’t link the same anchor text any more than %d times across my entire site.', 'seo-ultimate')
|
52 |
, 'limit_lpu' => __('Don’t link to the same destination any more than %d times per post/page/etc.', 'seo-ultimate')
|
53 |
), __('Quantity Restrictions', 'seo-ultimate'));
|
54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
$this->textbox('linkfree_tags', __('Don’t add autolinks to text within these HTML tags <em>(separate with commas)</em>:', 'seo-ultimate'), $this->get_default_setting('linkfree_tags'), __('Tag Restrictions', 'seo-ultimate'));
|
56 |
|
57 |
$siloing_checkboxes = array();
|
17 |
function get_module_subtitle() { return __('Content Link Settings', 'seo-ultimate'); }
|
18 |
|
19 |
function get_default_settings() {
|
20 |
+
|
21 |
$defaults = array(
|
22 |
+
'dampen_sitewide_lpa_value' => 50
|
23 |
+
, 'enable_perlink_dampen_sitewide_lpa' => ($this->get_setting('enable_link_limits') !== null)
|
24 |
+
, 'enable_self_links' => false
|
25 |
, 'enable_current_url_links' => $this->get_setting('enable_self_links', false)
|
26 |
, 'limit_lpp_value' => 5
|
27 |
, 'limit_lpa_value' => 2
|
28 |
, 'limit_lpu_value' => 1
|
|
|
29 |
, 'linkfree_tags' => 'code,pre,kbd,h1,h2,h3,h4,h5,h6'
|
30 |
);
|
31 |
|
42 |
, __('Add Autolinks to...', 'seo-ultimate'));
|
43 |
|
44 |
$this->checkboxes(array(
|
45 |
+
'enable_self_links' => __('Allow posts to link to themselves', 'seo-ultimate')
|
46 |
+
, 'enable_current_url_links' => __('Allow posts to link to the URL by which the visitor is accessing the post', 'seo-ultimate')
|
47 |
), __('Self-Linking', 'seo-ultimate'));
|
48 |
|
49 |
$this->checkboxes(array(
|
50 |
+
'limit_lpp' => __('Don’t add any more than %d autolinks per post/page/etc.', 'seo-ultimate')
|
|
|
51 |
, 'limit_lpa' => __('Don’t link the same anchor text any more than %d times per post/page/etc.', 'seo-ultimate')
|
|
|
52 |
, 'limit_lpu' => __('Don’t link to the same destination any more than %d times per post/page/etc.', 'seo-ultimate')
|
53 |
), __('Quantity Restrictions', 'seo-ultimate'));
|
54 |
|
55 |
+
$legacy_sitewide_lpa_in_use = $this->plugin->get_module_var('content-autolinks', 'legacy_sitewide_lpa_in_use', false);
|
56 |
+
$this->checkboxes(array(
|
57 |
+
'dampen_sitewide_lpa' => __('Globally decrease autolinking frequency by %d%', 'seo-ultimate')
|
58 |
+
, 'enable_perlink_dampen_sitewide_lpa' => array(
|
59 |
+
'description' => __('Add a “Dampener” column to the Content Links editor to let me customize frequency dampening on a per-link basis', 'seo-ultimate')
|
60 |
+
, 'disabled' => $legacy_sitewide_lpa_in_use
|
61 |
+
, 'checked' => $legacy_sitewide_lpa_in_use ? true : null
|
62 |
+
)
|
63 |
+
), __('Additional Dampening Effect', 'seo-ultimate'));
|
64 |
+
|
65 |
$this->textbox('linkfree_tags', __('Don’t add autolinks to text within these HTML tags <em>(separate with commas)</em>:', 'seo-ultimate'), $this->get_default_setting('linkfree_tags'), __('Tag Restrictions', 'seo-ultimate'));
|
66 |
|
67 |
$siloing_checkboxes = array();
|
modules/autolinks/content-autolinks.php
CHANGED
@@ -9,6 +9,8 @@ if (class_exists('SU_Module')) {
|
|
9 |
|
10 |
class SU_ContentAutolinks extends SU_Module {
|
11 |
|
|
|
|
|
12 |
function get_parent_module() { return 'autolinks'; }
|
13 |
function get_child_order() { return 10; }
|
14 |
function is_independent_module() { return false; }
|
@@ -23,18 +25,20 @@ class SU_ContentAutolinks extends SU_Module {
|
|
23 |
add_filter('su_get_postmeta-autolinks', array(&$this, 'get_post_autolinks'), 10, 3);
|
24 |
add_filter('su_custom_update_postmeta-autolinks', array(&$this, 'save_post_autolinks'), 10, 4);
|
25 |
|
26 |
-
if ($this->is_action('update'))
|
27 |
-
add_action('admin_footer', array(&$this, 'outdate_max_post_dates'));
|
28 |
-
add_action('save_post', array(&$this, 'outdate_max_post_dates'));
|
29 |
-
$this->cron('update_max_post_dates', 'hourly');
|
30 |
-
|
31 |
add_filter('su_get_setting-autolinks-linkfree_tags', array(&$this, 'filter_linkfree_tags'));
|
|
|
32 |
}
|
33 |
|
34 |
function filter_linkfree_tags($tags) {
|
35 |
return sustr::preg_filter('a-z0-9,', strtolower($tags));
|
36 |
}
|
37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
function autolink_content($content) {
|
39 |
|
40 |
$links = $this->get_setting('links', array());
|
@@ -101,8 +105,40 @@ class SU_ContentAutolinks extends SU_Module {
|
|
101 |
|
102 |
if (strlen(trim($anchor)) && $to_id !== 0 && $to_id != 'http://') {
|
103 |
|
104 |
-
|
105 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
|
107 |
$type = $data['to_type'];
|
108 |
|
@@ -201,79 +237,6 @@ class SU_ContentAutolinks extends SU_Module {
|
|
201 |
return $linkfree_tags;
|
202 |
}
|
203 |
|
204 |
-
function outdate_max_post_dates() {
|
205 |
-
$links = $this->get_setting('links', array());
|
206 |
-
$new_links = array();
|
207 |
-
foreach ($links as $link_data) {
|
208 |
-
$link_data['max_post_date_outdated'] = true;
|
209 |
-
$new_links[] = $link_data;
|
210 |
-
}
|
211 |
-
$this->update_setting('links', $new_links);
|
212 |
-
}
|
213 |
-
|
214 |
-
function update_max_post_dates() {
|
215 |
-
|
216 |
-
$processing_limit = 1;
|
217 |
-
|
218 |
-
$sitewide_lpa_enabled = $this->get_setting('limit_sitewide_lpa', false);
|
219 |
-
$sitewide_lpa = intval($this->get_setting('limit_sitewide_lpa_value', false));
|
220 |
-
$lpp = $this->get_setting('limit_lpp_value', 5); //No need to check limit_lpp, as _autolink_content already does this
|
221 |
-
|
222 |
-
global $wpdb;
|
223 |
-
|
224 |
-
$links = $this->get_setting('links', array());
|
225 |
-
suarr::vklrsort($links, 'anchor');
|
226 |
-
$links = array_values($links);
|
227 |
-
|
228 |
-
$new_links = array();
|
229 |
-
|
230 |
-
$i=0;
|
231 |
-
foreach ($links as $link_data) {
|
232 |
-
|
233 |
-
if ($link_data['max_post_date_outdated'] && $processing_limit > 0) {
|
234 |
-
$link_data['max_post_date_outdated'] = false;
|
235 |
-
|
236 |
-
if ($this->get_setting('enable_link_limits', false) && isset($link_data['sitewide_lpa']) && $link_data['sitewide_lpa'] !== false)
|
237 |
-
$link_sitewide_lpa = intval($link_data['sitewide_lpa']);
|
238 |
-
elseif ($sitewide_lpa_enabled)
|
239 |
-
$link_sitewide_lpa = $sitewide_lpa;
|
240 |
-
else
|
241 |
-
$link_sitewide_lpa = false;
|
242 |
-
|
243 |
-
if ($link_sitewide_lpa !== false) {
|
244 |
-
$link_data['max_post_date'] = false;
|
245 |
-
|
246 |
-
$posts_with_anchor = $wpdb->get_results( $wpdb->prepare(
|
247 |
-
"SELECT ID, post_content, post_date_gmt FROM $wpdb->posts WHERE post_status = 'publish' AND LOWER(post_content) LIKE %s ORDER BY post_date_gmt ASC"
|
248 |
-
, '%' . like_escape(strtolower($link_data['anchor'])) . '%'
|
249 |
-
));
|
250 |
-
|
251 |
-
$count = 0;
|
252 |
-
foreach ($posts_with_anchor as $post_with_anchor) {
|
253 |
-
|
254 |
-
$total_count = 0; //Not used
|
255 |
-
$link_count = array();
|
256 |
-
$this->_autolink_content($post_with_anchor->ID, $post_with_anchor->post_content, $links, $lpp, $total_count, $link_count, 1, array(), 'update_max_post_dates');
|
257 |
-
|
258 |
-
$count += $link_count[$i];
|
259 |
-
|
260 |
-
if ($count >= $link_sitewide_lpa) {
|
261 |
-
$link_data['max_post_date'] = $post_with_anchor->post_date_gmt;
|
262 |
-
break;
|
263 |
-
}
|
264 |
-
}
|
265 |
-
|
266 |
-
$processing_limit--;
|
267 |
-
}
|
268 |
-
}
|
269 |
-
|
270 |
-
$new_links[] = $link_data;
|
271 |
-
$i++;
|
272 |
-
}
|
273 |
-
|
274 |
-
$this->update_setting('links', $new_links);
|
275 |
-
}
|
276 |
-
|
277 |
function admin_page_init() {
|
278 |
$this->jlsuggest_init();
|
279 |
}
|
@@ -316,24 +279,37 @@ class SU_ContentAutolinks extends SU_Module {
|
|
316 |
|
317 |
$title = stripslashes($_POST["link_{$i}_title"]);
|
318 |
|
|
|
|
|
|
|
319 |
$sitewide_lpa = sustr::preg_filter('0-9', strval($_POST["link_{$i}_sitewide_lpa"]));
|
320 |
$sitewide_lpa = ($sitewide_lpa === '') ? false : intval($sitewide_lpa);
|
321 |
|
322 |
-
$max_post_date = sustr::preg_filter('0-9-: ', strval($_POST["link_{$i}_max_post_date"]));
|
323 |
-
|
324 |
$target = empty($_POST["link_{$i}_target"]) ? 'self' : 'blank';
|
325 |
|
326 |
$nofollow = isset($_POST["link_{$i}_nofollow"]) ? (intval($_POST["link_{$i}_nofollow"]) == 1) : false;
|
327 |
$delete = isset($_POST["link_{$i}_delete"]) ? (intval($_POST["link_{$i}_delete"]) == 1) : false;
|
328 |
|
329 |
if (!$delete && (strlen($anchor) || $to_id))
|
330 |
-
$links[] = compact('anchor', 'to_type', 'to_id', 'title', '
|
331 |
}
|
332 |
$this->update_setting('links', $links);
|
333 |
|
334 |
$num_links = count($links);
|
335 |
}
|
336 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
337 |
$guid = substr(md5(time()), 0, 10);
|
338 |
|
339 |
if ($num_links > 0) {
|
@@ -347,15 +323,19 @@ class SU_ContentAutolinks extends SU_Module {
|
|
347 |
|
348 |
function content_links_form($guid, $start_id = 0, $links, $delete_option = true) {
|
349 |
|
350 |
-
|
351 |
-
$
|
|
|
|
|
352 |
|
353 |
//Set headers
|
354 |
$headers = array();
|
355 |
$headers['link-anchor'] = __('Anchor Text', 'seo-ultimate');
|
356 |
$headers['link-to'] = __('Destination', 'seo-ultimate');
|
357 |
-
$headers['link-title'] = __('Title Attribute', 'seo-ultimate');
|
358 |
-
if ($
|
|
|
|
|
359 |
$headers['link-sitewide-lpa'] = __('Site Cap', 'seo-ultimate');
|
360 |
$headers['link-options'] = __('Options', 'seo-ultimate');
|
361 |
if ($delete_option)
|
@@ -372,8 +352,8 @@ class SU_ContentAutolinks extends SU_Module {
|
|
372 |
if (!isset($link['to_id'])) $link['to_id'] = '';
|
373 |
if (!isset($link['to_type'])) $link['to_type'] = 'url';
|
374 |
if (!isset($link['title'])) $link['title'] = '';
|
|
|
375 |
if (!isset($link['sitewide_lpa'])) $link['sitewide_lpa'] = '';
|
376 |
-
if (!isset($link['max_post_date'])) $link['max_post_date'] = '';
|
377 |
if (!isset($link['nofollow'])) $link['nofollow'] = false;
|
378 |
if (!isset($link['target'])) $link['target'] = '';
|
379 |
|
@@ -385,15 +365,13 @@ class SU_ContentAutolinks extends SU_Module {
|
|
385 |
$cells['link-to'] = $this->get_jlsuggest_box("link_{$i}_to", $jlsuggest_box_params);
|
386 |
$cells['link-title'] = $this->get_input_element('textbox', "link_{$i}_title", $link['title']);
|
387 |
|
388 |
-
if ($
|
389 |
-
$cells['link-sitewide-lpa'] = $this->get_input_element('textbox', "link_{$i}
|
390 |
-
$cells['link-options'] = '';
|
391 |
-
} else
|
392 |
-
$cells['link-options'] = $this->get_input_element('hidden', "link_{$i}_sitewide_lpa", $link['sitewide_lpa']);
|
393 |
|
394 |
-
|
|
|
395 |
|
396 |
-
$cells['link-options']
|
397 |
$this->get_input_element('checkbox', "link_{$i}_nofollow", $link['nofollow'], str_replace(' ', ' ', __('Nofollow', 'seo-ultimate')))
|
398 |
.'<br />'
|
399 |
.$this->get_input_element('checkbox', "link_{$i}_target", $link['target'] == 'blank', str_replace(' ', ' ', __('New window', 'seo-ultimate')));
|
9 |
|
10 |
class SU_ContentAutolinks extends SU_Module {
|
11 |
|
12 |
+
var $legacy_sitewide_lpa_in_use = false;
|
13 |
+
|
14 |
function get_parent_module() { return 'autolinks'; }
|
15 |
function get_child_order() { return 10; }
|
16 |
function is_independent_module() { return false; }
|
25 |
add_filter('su_get_postmeta-autolinks', array(&$this, 'get_post_autolinks'), 10, 3);
|
26 |
add_filter('su_custom_update_postmeta-autolinks', array(&$this, 'save_post_autolinks'), 10, 4);
|
27 |
|
|
|
|
|
|
|
|
|
|
|
28 |
add_filter('su_get_setting-autolinks-linkfree_tags', array(&$this, 'filter_linkfree_tags'));
|
29 |
+
add_filter('su_get_setting-autolinks-dampen_sitewide_lpa_value', array(&$this, 'filter_dampen_sitewide_lpa_value'));
|
30 |
}
|
31 |
|
32 |
function filter_linkfree_tags($tags) {
|
33 |
return sustr::preg_filter('a-z0-9,', strtolower($tags));
|
34 |
}
|
35 |
|
36 |
+
function filter_dampen_sitewide_lpa_value($value) {
|
37 |
+
$value = sustr::to_int($value);
|
38 |
+
if ($value > 100) $value = 100;
|
39 |
+
return $value;
|
40 |
+
}
|
41 |
+
|
42 |
function autolink_content($content) {
|
43 |
|
44 |
$links = $this->get_setting('links', array());
|
105 |
|
106 |
if (strlen(trim($anchor)) && $to_id !== 0 && $to_id != 'http://') {
|
107 |
|
108 |
+
//*** Begin sitewide links-per-anchor dampening effect ***
|
109 |
+
|
110 |
+
//Get the dampening percentage for this link, but only if per-link values are enabled
|
111 |
+
if ($this->get_setting('enable_perlink_dampen_sitewide_lpa', false))
|
112 |
+
$link_dswlpa = $data['dampen_sitewide_lpa']; //Should be a number (0 to 100 inclusive) or bool(false)
|
113 |
+
else
|
114 |
+
$link_dswlpa = false;
|
115 |
+
|
116 |
+
if (false === $link_dswlpa) { //We need the === operator here so we don't match a zero
|
117 |
+
|
118 |
+
//There's no per-link value, so get the default, if a default value is specified and enabled
|
119 |
+
if ($this->get_setting('dampen_sitewide_lpa', false))
|
120 |
+
$link_dswlpa = $this->get_setting('dampen_sitewide_lpa_value', 0);
|
121 |
+
else
|
122 |
+
$link_dswlpa = false; //Indicates there's neither a per-link value or a default value available
|
123 |
+
}
|
124 |
+
|
125 |
+
if (false !== $link_dswlpa) {
|
126 |
+
$link_dswlpa = absint($link_dswlpa);
|
127 |
+
if ($link_dswlpa == 0) break;
|
128 |
+
if ($link_dswlpa > 100) $link_dswlpa = 100;
|
129 |
+
|
130 |
+
//Rather than generating a random number, we use the MD5s of the anchor and the post's ID.
|
131 |
+
//This gives us a quasi-random dampening effect that will turn out the same way for any given post each time the dampener is applied.
|
132 |
+
//We don't want a post's autolinks changing every time the post is viewed.
|
133 |
+
$md5starts = array_slice(array_unique(str_split(md5($anchor))), 0, intval(round(16*(1-($link_dswlpa / 100)))));
|
134 |
+
|
135 |
+
//Only apply this autolink if the MD5 of the post's ID starts with one of the allowed characters
|
136 |
+
if (!in_array(substr(md5($id), 0, 1), $md5starts))
|
137 |
+
continue; //Don't apply autolink; continue to next item in the $links foreach loop
|
138 |
+
}
|
139 |
+
|
140 |
+
//*** End sitewide LPA dampener ***
|
141 |
+
|
142 |
|
143 |
$type = $data['to_type'];
|
144 |
|
237 |
return $linkfree_tags;
|
238 |
}
|
239 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
240 |
function admin_page_init() {
|
241 |
$this->jlsuggest_init();
|
242 |
}
|
279 |
|
280 |
$title = stripslashes($_POST["link_{$i}_title"]);
|
281 |
|
282 |
+
$dampen_sitewide_lpa = sustr::preg_filter('0-9', strval($_POST["link_{$i}_dampen_sitewide_lpa"]));
|
283 |
+
$dampen_sitewide_lpa = ($dampen_sitewide_lpa === '') ? false : intval($dampen_sitewide_lpa);
|
284 |
+
|
285 |
$sitewide_lpa = sustr::preg_filter('0-9', strval($_POST["link_{$i}_sitewide_lpa"]));
|
286 |
$sitewide_lpa = ($sitewide_lpa === '') ? false : intval($sitewide_lpa);
|
287 |
|
|
|
|
|
288 |
$target = empty($_POST["link_{$i}_target"]) ? 'self' : 'blank';
|
289 |
|
290 |
$nofollow = isset($_POST["link_{$i}_nofollow"]) ? (intval($_POST["link_{$i}_nofollow"]) == 1) : false;
|
291 |
$delete = isset($_POST["link_{$i}_delete"]) ? (intval($_POST["link_{$i}_delete"]) == 1) : false;
|
292 |
|
293 |
if (!$delete && (strlen($anchor) || $to_id))
|
294 |
+
$links[] = compact('anchor', 'to_type', 'to_id', 'title', 'dampen_sitewide_lpa', 'sitewide_lpa', 'nofollow', 'target');
|
295 |
}
|
296 |
$this->update_setting('links', $links);
|
297 |
|
298 |
$num_links = count($links);
|
299 |
}
|
300 |
|
301 |
+
$this->legacy_sitewide_lpa_in_use = false;
|
302 |
+
foreach ($links as $link) {
|
303 |
+
if (isset($link['sitewide_lpa']) && $link['sitewide_lpa']) {
|
304 |
+
$this->legacy_sitewide_lpa_in_use = true;
|
305 |
+
break;
|
306 |
+
}
|
307 |
+
}
|
308 |
+
|
309 |
+
if ($this->legacy_sitewide_lpa_in_use) {
|
310 |
+
$this->print_message('warning', __('<strong>Functionality Change Notice:</strong> The “Site Cap” feature (which allowed you set a per-link sitewide quantity limit) has been replaced with a more efficient “Dampener” feature that lets you reduce autolinking frequency by a percentage. Although the Site Cap feature has been replaced, we retained the “Site Cap” column for you in the table below, since it looks like you’ve used the Site Cap feature in the past. We retained the column to help you remember which links used the old feature, so that you know to which links to apply the new “Dampener” feature. Once you’re done migrating the Site Cap values to Dampener percentages, just clear the “Site Cap” boxes to make those boxes (and this message) go away.', 'seo-ultimate'));
|
311 |
+
}
|
312 |
+
|
313 |
$guid = substr(md5(time()), 0, 10);
|
314 |
|
315 |
if ($num_links > 0) {
|
323 |
|
324 |
function content_links_form($guid, $start_id = 0, $links, $delete_option = true) {
|
325 |
|
326 |
+
//Get settings
|
327 |
+
$default_dampen_sitewide_lpa = $this->get_setting('dampen_sitewide_lpa', false, null, true)
|
328 |
+
? $this->get_setting('dampen_sitewide_lpa_value', 0, null, true)
|
329 |
+
: false;
|
330 |
|
331 |
//Set headers
|
332 |
$headers = array();
|
333 |
$headers['link-anchor'] = __('Anchor Text', 'seo-ultimate');
|
334 |
$headers['link-to'] = __('Destination', 'seo-ultimate');
|
335 |
+
$headers['link-title'] = __('Title Attribute <em>(optional)</em>', 'seo-ultimate');
|
336 |
+
if ($this->get_setting('enable_perlink_sitewide_lpa_limit', false) || $this->legacy_sitewide_lpa_in_use)
|
337 |
+
$headers['link-dampen-sitewide-lpa'] = __('Dampener', 'seo-ultimate');
|
338 |
+
if ($this->legacy_sitewide_lpa_in_use)
|
339 |
$headers['link-sitewide-lpa'] = __('Site Cap', 'seo-ultimate');
|
340 |
$headers['link-options'] = __('Options', 'seo-ultimate');
|
341 |
if ($delete_option)
|
352 |
if (!isset($link['to_id'])) $link['to_id'] = '';
|
353 |
if (!isset($link['to_type'])) $link['to_type'] = 'url';
|
354 |
if (!isset($link['title'])) $link['title'] = '';
|
355 |
+
if (!isset($link['dampen_sitewide_lpa'])) $link['dampen_sitewide_lpa'] = '';
|
356 |
if (!isset($link['sitewide_lpa'])) $link['sitewide_lpa'] = '';
|
|
|
357 |
if (!isset($link['nofollow'])) $link['nofollow'] = false;
|
358 |
if (!isset($link['target'])) $link['target'] = '';
|
359 |
|
365 |
$cells['link-to'] = $this->get_jlsuggest_box("link_{$i}_to", $jlsuggest_box_params);
|
366 |
$cells['link-title'] = $this->get_input_element('textbox', "link_{$i}_title", $link['title']);
|
367 |
|
368 |
+
if ($this->get_setting('enable_perlink_sitewide_lpa_limit', false) || $this->legacy_sitewide_lpa_in_use)
|
369 |
+
$cells['link-dampen-sitewide-lpa'] = $this->get_input_element('textbox', "link_{$i}_dampen_sitewide_lpa", $link['dampen_sitewide_lpa'], $default_dampen_sitewide_lpa) . '%';
|
|
|
|
|
|
|
370 |
|
371 |
+
if ($this->legacy_sitewide_lpa_in_use)
|
372 |
+
$cells['link-sitewide-lpa'] = $this->get_input_element('textbox', "link_{$i}_sitewide_lpa", $link['sitewide_lpa']);
|
373 |
|
374 |
+
$cells['link-options'] =
|
375 |
$this->get_input_element('checkbox', "link_{$i}_nofollow", $link['nofollow'], str_replace(' ', ' ', __('Nofollow', 'seo-ultimate')))
|
376 |
.'<br />'
|
377 |
.$this->get_input_element('checkbox', "link_{$i}_target", $link['target'] == 'blank', str_replace(' ', ' ', __('New window', 'seo-ultimate')));
|
modules/autolinks/footer-autolinks.php
CHANGED
@@ -166,11 +166,11 @@ class SU_FooterAutolinks extends SU_Module {
|
|
166 |
|
167 |
//Set headers
|
168 |
$headers = array(
|
169 |
-
'link-from' => __('Link Location (optional)', 'seo-ultimate')
|
170 |
, 'link-from-match' => ''
|
171 |
, 'link-anchor' => __('Anchor Text', 'seo-ultimate')
|
172 |
, 'link-to' => __('Destination', 'seo-ultimate')
|
173 |
-
, 'link-title' => __('Title Attribute', 'seo-ultimate')
|
174 |
, 'link-options' => __('Options', 'seo-ultimate')
|
175 |
);
|
176 |
if ($delete_option) $headers['link-delete'] = __('Delete', 'seo-ultimate');
|
166 |
|
167 |
//Set headers
|
168 |
$headers = array(
|
169 |
+
'link-from' => __('Link Location <em>(optional)</em>', 'seo-ultimate')
|
170 |
, 'link-from-match' => ''
|
171 |
, 'link-anchor' => __('Anchor Text', 'seo-ultimate')
|
172 |
, 'link-to' => __('Destination', 'seo-ultimate')
|
173 |
+
, 'link-title' => __('Title Attribute <em>(optional)</em>', 'seo-ultimate')
|
174 |
, 'link-options' => __('Options', 'seo-ultimate')
|
175 |
);
|
176 |
if ($delete_option) $headers['link-delete'] = __('Delete', 'seo-ultimate');
|
modules/canonical/canonical.php
CHANGED
@@ -207,20 +207,29 @@ class SU_Canonical extends SU_Module {
|
|
207 |
|
208 |
function add_help_tabs($screen) {
|
209 |
|
210 |
-
$
|
211 |
-
'id' => 'su-canonical-overview'
|
212 |
-
, 'title' => $this->has_enabled_parent() ? __('Canonicalizer', 'seo-ultimate') : __('Overview', 'seo-ultimate')
|
213 |
-
, 'content' => __("
|
214 |
<ul>
|
215 |
-
<li>
|
216 |
-
|
217 |
-
|
218 |
-
</li>
|
219 |
-
<li><strong>Why it helps:</strong> These features will point Google to the correct URL for your homepage and each of your posts, Pages, categories, tags, date archives, and author archives. That way, if Google comes across an alternate URL by which one of those items can be accessed, it will be able to find the correct URL and won't penalize you for having two identical pages on your site.</li>
|
220 |
-
<li><strong>How to use it:</strong> Just check all three checkboxes and click Save Changes. SEO Ultimate will do the rest.</li>
|
221 |
</ul>
|
222 |
-
", 'seo-ultimate')
|
223 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
224 |
}
|
225 |
}
|
226 |
|
207 |
|
208 |
function add_help_tabs($screen) {
|
209 |
|
210 |
+
$overview = __("
|
|
|
|
|
|
|
211 |
<ul>
|
212 |
+
<li><strong>What it does:</strong> Canonicalizer will point Google to the correct URL for your homepage and each of your posts, Pages, categories, tags, date archives, and author archives.</li>
|
213 |
+
<li><strong>Why it helps:</strong> If Google comes across an alternate URL by which one of those items can be accessed, it will be able to find the correct URL and won’t penalize you for having two identical pages on your site.</li>
|
214 |
+
<li><strong>How to use it:</strong> Just check the three checkboxes. If your site is accessible using both <code>http://</code> and <code>https://</code>, be sure to set the preferred one under “Canonical URL Scheme.”</li>
|
|
|
|
|
|
|
215 |
</ul>
|
216 |
+
", 'seo-ultimate');
|
217 |
+
|
218 |
+
if ($this->has_enabled_parent()) {
|
219 |
+
$screen->add_help_tab(array(
|
220 |
+
'id' => 'su-canonical-help'
|
221 |
+
, 'title' => __('Canonicalizer', 'seo-ultimate')
|
222 |
+
, 'content' =>
|
223 |
+
'<h3>' . __('Overview', 'seo-ultimate') . '</h3>' . $overview
|
224 |
+
));
|
225 |
+
} else {
|
226 |
+
|
227 |
+
$screen->add_help_tab(array(
|
228 |
+
'id' => 'su-canonical-overview'
|
229 |
+
, 'title' => __('Overview', 'seo-ultimate')
|
230 |
+
, 'content' => $overview));
|
231 |
+
|
232 |
+
}
|
233 |
}
|
234 |
}
|
235 |
|
modules/class.su-module.php
CHANGED
@@ -16,7 +16,7 @@ class SU_Module {
|
|
16 |
var $module_key;
|
17 |
|
18 |
/**
|
19 |
-
* Stores the parent module if
|
20 |
*
|
21 |
* @since 1.5
|
22 |
* @var SU_Module
|
@@ -24,7 +24,7 @@ class SU_Module {
|
|
24 |
var $parent_module = null;
|
25 |
|
26 |
/**
|
27 |
-
* Stores any child modules.
|
28 |
*
|
29 |
* @since 1.5
|
30 |
* @var array
|
@@ -327,13 +327,14 @@ class SU_Module {
|
|
327 |
|
328 |
/**
|
329 |
* Called under 3 circumstances:
|
330 |
-
* 1. When the SEO Ultimate plugin is activated
|
331 |
* 2. When a module is newly registered in the database, which can happen for two reasons:
|
332 |
-
* a. The plugin is activated for the first time
|
333 |
* b. The module has been newly added via a plugin upgrade
|
334 |
* 3. When the module is re-enabled in the Module Manager after being disabled.
|
335 |
*
|
336 |
* Note that this function will be called twice when the plugin is activated for the first time, since this will make #1 and #2 both true.
|
|
|
337 |
*
|
338 |
* WARNING: Do not use "$this" in the activate() function. It will not work under condition #3. Check for isset($this) and if false, use self:: instead.
|
339 |
*
|
@@ -401,11 +402,12 @@ class SU_Module {
|
|
401 |
}
|
402 |
|
403 |
/**
|
|
|
|
|
404 |
* @since 7.0
|
405 |
*/
|
406 |
function load_hook() {
|
407 |
-
|
408 |
-
$this->add_help_tabs(get_current_screen());
|
409 |
}
|
410 |
|
411 |
/**
|
@@ -458,7 +460,8 @@ class SU_Module {
|
|
458 |
if ($this->module_key)
|
459 |
return $this->module_key;
|
460 |
else
|
461 |
-
|
|
|
462 |
}
|
463 |
|
464 |
/**
|
@@ -473,7 +476,11 @@ class SU_Module {
|
|
473 |
}
|
474 |
|
475 |
/**
|
|
|
|
|
476 |
* @since 7.0
|
|
|
|
|
477 |
*/
|
478 |
function has_enabled_parent() {
|
479 |
return (strlen($p = $this->get_parent_module()) && $this->plugin->module_exists($p));
|
@@ -483,9 +490,6 @@ class SU_Module {
|
|
483 |
* Returns the absolute URL of the module's admin page.
|
484 |
*
|
485 |
* @since 0.7
|
486 |
-
* @uses get_parent_module()
|
487 |
-
* @uses get_module_key()
|
488 |
-
* @uses SEO_Ultimate::key_to_hook()
|
489 |
*
|
490 |
* @param string|false $key The key of the module for which to generate the admin URL. Optional.
|
491 |
* @return string The absolute URL to the admin page.
|
@@ -777,32 +781,6 @@ class SU_Module {
|
|
777 |
update_option("seo_ultimate_module_$module", $msdata);
|
778 |
}
|
779 |
|
780 |
-
/**
|
781 |
-
* Adds 1 to the value of an integer setting in the module's settings array.
|
782 |
-
*
|
783 |
-
* @since 0.1
|
784 |
-
* @uses get_setting()
|
785 |
-
* @uses update_setting()
|
786 |
-
*
|
787 |
-
* @param string $key The key of the setting to be incremented.
|
788 |
-
*/
|
789 |
-
function increment_setting($key) {
|
790 |
-
$value = $this->get_setting($key);
|
791 |
-
$this->update_setting($key, $value+1);
|
792 |
-
}
|
793 |
-
|
794 |
-
/**
|
795 |
-
* Assigns a value of zero to a setting in the module's settings array.
|
796 |
-
*
|
797 |
-
* @since 0.1
|
798 |
-
* @uses update_setting()
|
799 |
-
*
|
800 |
-
* @param string $key The key of the setting to be reset.
|
801 |
-
*/
|
802 |
-
function reset_setting($key) {
|
803 |
-
$this->update_setting($key, 0);
|
804 |
-
}
|
805 |
-
|
806 |
/**
|
807 |
* Gets a setting's value, deletes the setting, and returns the value.
|
808 |
*
|
@@ -835,26 +813,15 @@ class SU_Module {
|
|
835 |
$msdata = (array)get_option("seo_ultimate_module_$module", array());
|
836 |
|
837 |
if (isset($msdata[$key])) {
|
838 |
-
if ($array_key)
|
839 |
-
|
840 |
-
|
|
|
841 |
unset($msdata[$key]);
|
|
|
842 |
}
|
843 |
}
|
844 |
|
845 |
-
/**
|
846 |
-
* Updates the value of more than one setting at a time.
|
847 |
-
*
|
848 |
-
* @since 0.1
|
849 |
-
* @uses update_setting()
|
850 |
-
*
|
851 |
-
* @param array $settings The names (keys) and values of settings to be updated.
|
852 |
-
*/
|
853 |
-
function update_settings($settings) {
|
854 |
-
foreach ($settings as $key => $value)
|
855 |
-
update_setting($key, $value, null, null);
|
856 |
-
}
|
857 |
-
|
858 |
/**
|
859 |
* Returns a default setting. Only use this function if a default is indeed provided!
|
860 |
*
|
@@ -1026,7 +993,7 @@ class SU_Module {
|
|
1026 |
*/
|
1027 |
function get_postmeta_edit_tabs($fields) {
|
1028 |
|
1029 |
-
$types =
|
1030 |
|
1031 |
//Turn the types array into a tabs array
|
1032 |
$tabs = array();
|
@@ -1547,55 +1514,6 @@ class SU_Module {
|
|
1547 |
echo "\t</tr>\n";
|
1548 |
}
|
1549 |
|
1550 |
-
/**
|
1551 |
-
* Outputs a <tr> tag with <td> children, and consolidates adjacent, identical <td> elements with the rowspan attribute.
|
1552 |
-
*
|
1553 |
-
* @since 2.9
|
1554 |
-
*/
|
1555 |
-
function table_rows_consolidated($rows, $cols_to_consolidate = 999) {
|
1556 |
-
$mk = $this->get_module_key();
|
1557 |
-
|
1558 |
-
$rowspans = array();
|
1559 |
-
|
1560 |
-
//Cycle through each row
|
1561 |
-
foreach ($rows as $rowid => $row) {
|
1562 |
-
|
1563 |
-
echo "<tr>";
|
1564 |
-
|
1565 |
-
//Cycle through the row's cells
|
1566 |
-
$cellid = 0;
|
1567 |
-
foreach ($row as $class => $cell) {
|
1568 |
-
|
1569 |
-
//If a rowspan is already in process for this cell...
|
1570 |
-
if ($rowspans[$cellid] > 1)
|
1571 |
-
$rowspans[$cellid]--;
|
1572 |
-
else {
|
1573 |
-
|
1574 |
-
//Find out if we should start a rowspan
|
1575 |
-
$rowspanhtml = '';
|
1576 |
-
if ($cellid < $cols_to_consolidate) {
|
1577 |
-
$rowspan = 1;
|
1578 |
-
for ($larowid = $rowid+1; $larowid < count($rows); $larowid++) {
|
1579 |
-
$lacell = $rows[$larowid][$class];
|
1580 |
-
if (strlen($lacell) && $cell == $lacell) $rowspan++; else break;
|
1581 |
-
}
|
1582 |
-
|
1583 |
-
if ($rowspan > 1) {
|
1584 |
-
$rowspans[$cellid] = $rowspan;
|
1585 |
-
$rowspanhtml = " rowspan='$rowspan'";
|
1586 |
-
}
|
1587 |
-
}
|
1588 |
-
|
1589 |
-
echo "<td class='su-$mk-$class'$rowspanhtml>$cell</td>";
|
1590 |
-
}
|
1591 |
-
|
1592 |
-
$cellid++;
|
1593 |
-
}
|
1594 |
-
|
1595 |
-
echo "</tr>";
|
1596 |
-
}
|
1597 |
-
}
|
1598 |
-
|
1599 |
/**
|
1600 |
* Ends a "widefat" WordPress table.
|
1601 |
*
|
@@ -1639,22 +1557,6 @@ class SU_Module {
|
|
1639 |
echo "</table></td></tr>";
|
1640 |
}
|
1641 |
|
1642 |
-
/**
|
1643 |
-
* Applies the necessary HTML so that certain content is displayed only when the mouse hovers over the including table row.
|
1644 |
-
*
|
1645 |
-
* @since 0.1
|
1646 |
-
*
|
1647 |
-
* @param string $text The always-visible text.
|
1648 |
-
* @param string $hovertext The text that only displays upon row hover.
|
1649 |
-
* @return string The HTML to put in a hover-supporting table row.
|
1650 |
-
*/
|
1651 |
-
function hover_row($text, $hovertext, $inline = false) {
|
1652 |
-
if ($inline)
|
1653 |
-
return "<span>$text</span>\n<span class='row-actions'> — $hovertext</span>";
|
1654 |
-
else
|
1655 |
-
return "<div>$text</div>\n<div class='row-actions'>$hovertext</div>";
|
1656 |
-
}
|
1657 |
-
|
1658 |
/**
|
1659 |
* Outputs a text block into an admin form.
|
1660 |
*
|
@@ -1690,13 +1592,20 @@ class SU_Module {
|
|
1690 |
if ($this->is_action('update')) {
|
1691 |
foreach ($checkboxes as $name => $desc) {
|
1692 |
$new_value = isset($_POST[$name]) ? ($_POST[$name] == '1') : false;
|
1693 |
-
$this->update_setting($name, $new_value);
|
1694 |
|
1695 |
-
if (is_array($desc))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1696 |
|
1697 |
if (strpos($desc, '%d') !== false) {
|
1698 |
$name .= '_value';
|
1699 |
-
$this->update_setting($name,
|
1700 |
}
|
1701 |
}
|
1702 |
}
|
@@ -1711,28 +1620,33 @@ class SU_Module {
|
|
1711 |
|
1712 |
if (is_array($desc)) {
|
1713 |
$indent = isset($desc['indent']) ? $desc['indent'] : false;
|
|
|
|
|
1714 |
$desc = $desc['description'];
|
1715 |
} else {
|
1716 |
$indent = false;
|
|
|
|
|
1717 |
}
|
1718 |
|
1719 |
-
register_setting($this->get_module_key(), $name, '
|
1720 |
$name = su_esc_attr($name);
|
1721 |
|
1722 |
if (strpos($desc, '%d') === false) {
|
1723 |
$onclick = '';
|
1724 |
} else {
|
1725 |
$int_var_name = $name.'_value';
|
1726 |
-
$int_var_value =
|
1727 |
-
if ($this->get_setting($name) === true) $
|
1728 |
-
$desc = str_replace('%d', "</label><input name='$int_var_name' id='$int_var_name' type='text' value='$int_var_value' size='2' maxlength='3' $
|
1729 |
$desc = str_replace("<label for='$name'></label>", '', $desc);
|
1730 |
$onclick = " onclick=\"javascript:document.getElementById('$int_var_name').readOnly=!this.checked;\"";
|
1731 |
}
|
1732 |
|
1733 |
if ($indent) $labelclass = " class='su-indent'"; else $labelclass = '';
|
1734 |
echo "<label for='$name'$labelclass><input name='$name' id='$name' type='checkbox' value='1'";
|
1735 |
-
if ($this->get_setting($name) === true) echo " checked='checked'";
|
|
|
1736 |
echo "$onclick /> $desc</label><br />\n";
|
1737 |
}
|
1738 |
}
|
@@ -1810,7 +1724,6 @@ class SU_Module {
|
|
1810 |
echo " /> $label";
|
1811 |
|
1812 |
if (!sustr::has($label, '</label>')) echo '</label>';
|
1813 |
-
//if (!sustr::has($desc, '</label>')) echo '<br />';
|
1814 |
echo "</div>\n";
|
1815 |
}
|
1816 |
}
|
@@ -1819,20 +1732,6 @@ class SU_Module {
|
|
1819 |
echo "</td>\n</tr>\n";
|
1820 |
}
|
1821 |
|
1822 |
-
/**
|
1823 |
-
* Outputs a single radio button into an admin form and saves the set's value into the database after form submission.
|
1824 |
-
*
|
1825 |
-
* @since 3.0
|
1826 |
-
* @uses radiobuttons()
|
1827 |
-
*
|
1828 |
-
* @param string $name The name of the set of radio buttons.
|
1829 |
-
* @param string $value The value of this radio button.
|
1830 |
-
* @param string $label The label for this radio button.
|
1831 |
-
*/
|
1832 |
-
function radiobutton($name, $value, $label) {
|
1833 |
-
$this->radiobuttons($name, array($value => $label));
|
1834 |
-
}
|
1835 |
-
|
1836 |
/**
|
1837 |
* Outputs a dropdown into an admin form and saves the dropdown's value into the database after form submission.
|
1838 |
*
|
@@ -1888,22 +1787,26 @@ class SU_Module {
|
|
1888 |
|
1889 |
if (preg_match($pattern, $label, $matches)) {
|
1890 |
$is_int_field = ($matches[1] == 'd');
|
1891 |
-
$sfname = $
|
1892 |
-
|
|
|
|
|
1893 |
|
1894 |
-
if ($this->is_action('update'))
|
1895 |
$sfvalue = stripslashes($_POST[$sfname]);
|
1896 |
-
|
1897 |
-
$this->update_setting($sfname, $sfvalue);
|
1898 |
-
} else {
|
1899 |
$sfvalue = $this->get_setting($sfname);
|
1900 |
-
|
1901 |
-
|
|
|
|
|
|
|
|
|
1902 |
|
1903 |
if ($enabled) $disabled = ''; else $disabled = " readonly='readonly'";
|
1904 |
|
1905 |
$esfvalue = su_esc_attr($sfvalue);
|
1906 |
-
$field_html = "</label><input class='
|
1907 |
if ($is_int_field) $field_html .= " size='2' maxlength='3'";
|
1908 |
$field_html .= " /><label for='$name'>";
|
1909 |
|
@@ -2595,7 +2498,7 @@ class SU_Module {
|
|
2595 |
|
2596 |
global $wp_query;
|
2597 |
|
2598 |
-
if (!$id &&
|
2599 |
$id = $wp_query->get_queried_object_id();
|
2600 |
|
2601 |
if (!$id)
|
16 |
var $module_key;
|
17 |
|
18 |
/**
|
19 |
+
* Stores the parent module (an SU_Module object) if this module has a parent.
|
20 |
*
|
21 |
* @since 1.5
|
22 |
* @var SU_Module
|
24 |
var $parent_module = null;
|
25 |
|
26 |
/**
|
27 |
+
* Stores any child modules as an array of SU_Module objects.
|
28 |
*
|
29 |
* @since 1.5
|
30 |
* @var array
|
327 |
|
328 |
/**
|
329 |
* Called under 3 circumstances:
|
330 |
+
* 1. When the SEO Ultimate plugin is activated (not necessarily for the first time)
|
331 |
* 2. When a module is newly registered in the database, which can happen for two reasons:
|
332 |
+
* a. The plugin is activated *for the first time*
|
333 |
* b. The module has been newly added via a plugin upgrade
|
334 |
* 3. When the module is re-enabled in the Module Manager after being disabled.
|
335 |
*
|
336 |
* Note that this function will be called twice when the plugin is activated for the first time, since this will make #1 and #2 both true.
|
337 |
+
* If the plugin is deactivated and then reactivated, only #1 will be true.
|
338 |
*
|
339 |
* WARNING: Do not use "$this" in the activate() function. It will not work under condition #3. Check for isset($this) and if false, use self:: instead.
|
340 |
*
|
402 |
}
|
403 |
|
404 |
/**
|
405 |
+
* Called at WordPress's load-{page} hook for this module's admin page.
|
406 |
+
*
|
407 |
* @since 7.0
|
408 |
*/
|
409 |
function load_hook() {
|
410 |
+
$this->add_help_tabs(get_current_screen());
|
|
|
411 |
}
|
412 |
|
413 |
/**
|
460 |
if ($this->module_key)
|
461 |
return $this->module_key;
|
462 |
else
|
463 |
+
//This error will only be triggered if someone has seriously messed with the plugin architecture
|
464 |
+
die("An SEO Ultimate module did not initialize properly. Perhaps you're trying to load an SEO Ultimate module independent of the plugin?");
|
465 |
}
|
466 |
|
467 |
/**
|
476 |
}
|
477 |
|
478 |
/**
|
479 |
+
* Returns true only if this module has a parent AND that parent is enabled.
|
480 |
+
*
|
481 |
* @since 7.0
|
482 |
+
*
|
483 |
+
* @return bool
|
484 |
*/
|
485 |
function has_enabled_parent() {
|
486 |
return (strlen($p = $this->get_parent_module()) && $this->plugin->module_exists($p));
|
490 |
* Returns the absolute URL of the module's admin page.
|
491 |
*
|
492 |
* @since 0.7
|
|
|
|
|
|
|
493 |
*
|
494 |
* @param string|false $key The key of the module for which to generate the admin URL. Optional.
|
495 |
* @return string The absolute URL to the admin page.
|
781 |
update_option("seo_ultimate_module_$module", $msdata);
|
782 |
}
|
783 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
784 |
/**
|
785 |
* Gets a setting's value, deletes the setting, and returns the value.
|
786 |
*
|
813 |
$msdata = (array)get_option("seo_ultimate_module_$module", array());
|
814 |
|
815 |
if (isset($msdata[$key])) {
|
816 |
+
if ($array_key) {
|
817 |
+
if (isset($msdata[$key][$array_key]))
|
818 |
+
unset($msdata[$key][$array_key]);
|
819 |
+
} else {
|
820 |
unset($msdata[$key]);
|
821 |
+
}
|
822 |
}
|
823 |
}
|
824 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
825 |
/**
|
826 |
* Returns a default setting. Only use this function if a default is indeed provided!
|
827 |
*
|
993 |
*/
|
994 |
function get_postmeta_edit_tabs($fields) {
|
995 |
|
996 |
+
$types = get_post_types(array('public' => true), 'objects');
|
997 |
|
998 |
//Turn the types array into a tabs array
|
999 |
$tabs = array();
|
1514 |
echo "\t</tr>\n";
|
1515 |
}
|
1516 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1517 |
/**
|
1518 |
* Ends a "widefat" WordPress table.
|
1519 |
*
|
1557 |
echo "</table></td></tr>";
|
1558 |
}
|
1559 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1560 |
/**
|
1561 |
* Outputs a text block into an admin form.
|
1562 |
*
|
1592 |
if ($this->is_action('update')) {
|
1593 |
foreach ($checkboxes as $name => $desc) {
|
1594 |
$new_value = isset($_POST[$name]) ? ($_POST[$name] == '1') : false;
|
|
|
1595 |
|
1596 |
+
if (is_array($desc)) {
|
1597 |
+
$disabled = isset($desc['disabled']) ? $desc['disabled'] : false;
|
1598 |
+
$desc = isset($desc['description']) ? $desc['description'] : '';
|
1599 |
+
} else {
|
1600 |
+
$disabled = false;
|
1601 |
+
}
|
1602 |
+
|
1603 |
+
if (!$disabled)
|
1604 |
+
$this->update_setting($name, $new_value);
|
1605 |
|
1606 |
if (strpos($desc, '%d') !== false) {
|
1607 |
$name .= '_value';
|
1608 |
+
$this->update_setting($name, sustr::to_int($_POST[$name]));
|
1609 |
}
|
1610 |
}
|
1611 |
}
|
1620 |
|
1621 |
if (is_array($desc)) {
|
1622 |
$indent = isset($desc['indent']) ? $desc['indent'] : false;
|
1623 |
+
$disabled = isset($desc['disabled']) ? $desc['disabled'] : false;
|
1624 |
+
$checked = isset($desc['checked']) ? $desc['checked'] : null;
|
1625 |
$desc = $desc['description'];
|
1626 |
} else {
|
1627 |
$indent = false;
|
1628 |
+
$disabled = false;
|
1629 |
+
$checked = null;
|
1630 |
}
|
1631 |
|
1632 |
+
register_setting($this->get_module_key(), $name, array('sustr', 'to_int'));
|
1633 |
$name = su_esc_attr($name);
|
1634 |
|
1635 |
if (strpos($desc, '%d') === false) {
|
1636 |
$onclick = '';
|
1637 |
} else {
|
1638 |
$int_var_name = $name.'_value';
|
1639 |
+
$int_var_value = sustr::to_int($this->get_setting($int_var_name));
|
1640 |
+
if ($this->get_setting($name) === true) $sfdisabled = ''; else $sfdisabled = "readonly='readonly' ";
|
1641 |
+
$desc = str_replace('%d', "</label><input name='$int_var_name' id='$int_var_name' type='text' value='$int_var_value' size='2' maxlength='3' $sfdisabled/><label for='$name'>", $desc);
|
1642 |
$desc = str_replace("<label for='$name'></label>", '', $desc);
|
1643 |
$onclick = " onclick=\"javascript:document.getElementById('$int_var_name').readOnly=!this.checked;\"";
|
1644 |
}
|
1645 |
|
1646 |
if ($indent) $labelclass = " class='su-indent'"; else $labelclass = '';
|
1647 |
echo "<label for='$name'$labelclass><input name='$name' id='$name' type='checkbox' value='1'";
|
1648 |
+
if ($checked !== false && ($checked === true || $this->get_setting($name) === true)) echo " checked='checked'";
|
1649 |
+
if ($disabled) echo " disabled='disabled'";
|
1650 |
echo "$onclick /> $desc</label><br />\n";
|
1651 |
}
|
1652 |
}
|
1724 |
echo " /> $label";
|
1725 |
|
1726 |
if (!sustr::has($label, '</label>')) echo '</label>';
|
|
|
1727 |
echo "</div>\n";
|
1728 |
}
|
1729 |
}
|
1732 |
echo "</td>\n</tr>\n";
|
1733 |
}
|
1734 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1735 |
/**
|
1736 |
* Outputs a dropdown into an admin form and saves the dropdown's value into the database after form submission.
|
1737 |
*
|
1787 |
|
1788 |
if (preg_match($pattern, $label, $matches)) {
|
1789 |
$is_int_field = ($matches[1] == 'd');
|
1790 |
+
$sfname = $name.'_value';
|
1791 |
+
|
1792 |
+
if (isset($matches[3]))
|
1793 |
+
$sfname = $matches[3];
|
1794 |
|
1795 |
+
if ($this->is_action('update'))
|
1796 |
$sfvalue = stripslashes($_POST[$sfname]);
|
1797 |
+
else
|
|
|
|
|
1798 |
$sfvalue = $this->get_setting($sfname);
|
1799 |
+
|
1800 |
+
if ($is_int_field)
|
1801 |
+
$sfvalue = sustr::to_int($sfvalue);
|
1802 |
+
|
1803 |
+
if ($this->is_action('update'))
|
1804 |
+
$this->update_setting($sfname, $sfvalue);
|
1805 |
|
1806 |
if ($enabled) $disabled = ''; else $disabled = " readonly='readonly'";
|
1807 |
|
1808 |
$esfvalue = su_esc_attr($sfvalue);
|
1809 |
+
$field_html = "</label><input class='textbox subfield' name='$sfname' id='$sfname' type='text' value='$esfvalue'$disabled";
|
1810 |
if ($is_int_field) $field_html .= " size='2' maxlength='3'";
|
1811 |
$field_html .= " /><label for='$name'>";
|
1812 |
|
2498 |
|
2499 |
global $wp_query;
|
2500 |
|
2501 |
+
if (!$id && suwp::is_tax())
|
2502 |
$id = $wp_query->get_queried_object_id();
|
2503 |
|
2504 |
if (!$id)
|
modules/files/files.php
CHANGED
@@ -129,9 +129,9 @@ class SU_Files extends SU_Module {
|
|
129 |
|
130 |
function privacy_options_notice() {
|
131 |
global $pagenow;
|
132 |
-
if ($pagenow == 'options-
|
133 |
$this->print_message('info', sprintf(
|
134 |
-
__('Please note that
|
135 |
admin_url('admin.php?page='.$this->plugin->key_to_hook($this->get_module_key()))
|
136 |
));
|
137 |
}
|
129 |
|
130 |
function privacy_options_notice() {
|
131 |
global $pagenow;
|
132 |
+
if ($pagenow == 'options-reading.php') { //Shows on the "Settings > Reading" page
|
133 |
$this->print_message('info', sprintf(
|
134 |
+
__('Please note that the “discourage search engines” setting won’t have any effect on your robots.txt file, since you’re using <a href="%s">a custom one</a>.', 'seo-ultimate'),
|
135 |
admin_url('admin.php?page='.$this->plugin->key_to_hook($this->get_module_key()))
|
136 |
));
|
137 |
}
|
modules/internal-link-aliases/internal-link-aliases.php
CHANGED
@@ -10,11 +10,14 @@ class SU_InternalLinkAliases extends SU_Module {
|
|
10 |
|
11 |
function init() {
|
12 |
add_filter('su_custom_update_postmeta-aliases', array(&$this, 'save_post_aliases'), 10, 4);
|
13 |
-
add_filter('the_content', array(&$this, 'apply_aliases'), 9); //Run before wp_texturize etc.
|
14 |
-
add_action('template_redirect', array(&$this, 'redirect_aliases'), 0);
|
15 |
-
add_action('do_robotstxt', array(&$this, 'block_aliases_dir'));
|
16 |
-
add_action('su_do_robotstxt', array(&$this, 'block_aliases_dir'));
|
17 |
add_filter('su_get_setting-internal-link-aliases-alias_dir', array(&$this, 'filter_alias_dir'));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
}
|
19 |
|
20 |
function admin_page_init() {
|
@@ -25,6 +28,14 @@ class SU_InternalLinkAliases extends SU_Module {
|
|
25 |
|
26 |
function get_settings_key() { return 'internal-link-aliases'; }
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
function get_admin_page_tabs() {
|
29 |
return array(
|
30 |
array('id' => 'aliases', 'title' => __('Aliases', 'seo-ultimate'), 'callback' => 'editor_tab')
|
@@ -86,7 +97,7 @@ class SU_InternalLinkAliases extends SU_Module {
|
|
86 |
$headers = array(
|
87 |
'alias-from' => __('Actual URL', 'seo-ultimate')
|
88 |
, 'alias-to' => __('Alias URL', 'seo-ultimate')
|
89 |
-
, 'alias-posts' => __('Only on This Post… (optional)', 'seo-ultimate')
|
90 |
);
|
91 |
if ($existing_item) $headers['alias-delete'] = __('Delete', 'seo-ultimate');
|
92 |
|
@@ -111,8 +122,7 @@ class SU_InternalLinkAliases extends SU_Module {
|
|
111 |
$alias_dir = $this->get_setting('alias_dir', 'go', null, true);
|
112 |
$alias_url = get_bloginfo('url') . "/$alias_dir/$u_alias_to/";
|
113 |
|
114 |
-
|
115 |
-
$test_link = "<td class='su-alias-to-test'>[<a href='$alias_url' target='_blank'>" . __('Test', 'seo-ultimate') . "</a>]</td>";
|
116 |
|
117 |
$cells = array(
|
118 |
'alias-from' =>
|
@@ -141,7 +151,7 @@ class SU_InternalLinkAliases extends SU_Module {
|
|
141 |
$this->admin_form_table_start();
|
142 |
$this->textbox('alias_dir', __('Alias Directory', 'seo-ultimate'), $this->get_default_setting('alias_dir'));
|
143 |
if ($this->plugin->module_exists('link-nofollow'))
|
144 |
-
$this->checkbox('nofollow_aliased_links', __('Nofollow
|
145 |
$this->admin_form_table_end();
|
146 |
}
|
147 |
|
@@ -306,5 +316,57 @@ class SU_InternalLinkAliases extends SU_Module {
|
|
306 |
_e('End Link Mask Generator output', 'seo-ultimate');
|
307 |
echo "\n\n";
|
308 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
309 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
310 |
}
|
10 |
|
11 |
function init() {
|
12 |
add_filter('su_custom_update_postmeta-aliases', array(&$this, 'save_post_aliases'), 10, 4);
|
|
|
|
|
|
|
|
|
13 |
add_filter('su_get_setting-internal-link-aliases-alias_dir', array(&$this, 'filter_alias_dir'));
|
14 |
+
|
15 |
+
if (suwp::permalink_mode() == SUWP_PRETTY_PERMALINKS) {
|
16 |
+
add_filter('the_content', array(&$this, 'apply_aliases'), 9); //Run before wp_texturize etc.
|
17 |
+
add_action('template_redirect', array(&$this, 'redirect_aliases'), 0);
|
18 |
+
add_action('do_robotstxt', array(&$this, 'block_aliases_dir'));
|
19 |
+
add_action('su_do_robotstxt', array(&$this, 'block_aliases_dir'));
|
20 |
+
}
|
21 |
}
|
22 |
|
23 |
function admin_page_init() {
|
28 |
|
29 |
function get_settings_key() { return 'internal-link-aliases'; }
|
30 |
|
31 |
+
function admin_page_contents() {
|
32 |
+
|
33 |
+
if (suwp::permalink_mode() != SUWP_PRETTY_PERMALINKS)
|
34 |
+
$this->print_message('error', sprintf(__('Link Mask Generator won’t work with default or “pathinfo” permalinks. Please change your <a href="%s">permalink structure</a> to enable this module’s functionality.', 'seo-ultimate'), 'options-permalink.php'));
|
35 |
+
|
36 |
+
$this->children_admin_page_tabs_form();
|
37 |
+
}
|
38 |
+
|
39 |
function get_admin_page_tabs() {
|
40 |
return array(
|
41 |
array('id' => 'aliases', 'title' => __('Aliases', 'seo-ultimate'), 'callback' => 'editor_tab')
|
97 |
$headers = array(
|
98 |
'alias-from' => __('Actual URL', 'seo-ultimate')
|
99 |
, 'alias-to' => __('Alias URL', 'seo-ultimate')
|
100 |
+
, 'alias-posts' => __('Only on This Post… <em>(optional)</em>', 'seo-ultimate')
|
101 |
);
|
102 |
if ($existing_item) $headers['alias-delete'] = __('Delete', 'seo-ultimate');
|
103 |
|
122 |
$alias_dir = $this->get_setting('alias_dir', 'go', null, true);
|
123 |
$alias_url = get_bloginfo('url') . "/$alias_dir/$u_alias_to/";
|
124 |
|
125 |
+
$test_link = $existing_item ? "<td class='su-alias-to-test'>[<a href='$alias_url' target='_blank'>" . __('Test', 'seo-ultimate') . "</a>]</td>" : '';
|
|
|
126 |
|
127 |
$cells = array(
|
128 |
'alias-from' =>
|
151 |
$this->admin_form_table_start();
|
152 |
$this->textbox('alias_dir', __('Alias Directory', 'seo-ultimate'), $this->get_default_setting('alias_dir'));
|
153 |
if ($this->plugin->module_exists('link-nofollow'))
|
154 |
+
$this->checkbox('nofollow_aliased_links', __('Nofollow masked links', 'seo-ultimate'), __('Link Attributes', 'seo-ultimate'));
|
155 |
$this->admin_form_table_end();
|
156 |
}
|
157 |
|
316 |
_e('End Link Mask Generator output', 'seo-ultimate');
|
317 |
echo "\n\n";
|
318 |
}
|
319 |
+
|
320 |
+
|
321 |
+
function add_help_tabs($screen) {
|
322 |
+
|
323 |
+
$screen->add_help_tab(array(
|
324 |
+
'id' => 'su-internal-link-aliases-overview'
|
325 |
+
, 'title' => __('Overview', 'seo-ultimate')
|
326 |
+
, 'content' => __("
|
327 |
+
<ul>
|
328 |
+
<li><strong>What it does:</strong> Link Mask Generator lets you replace ugly affiliate links with clean-looking link aliases that redirect to the real URLs. Link Mask Generator will scan your posts for the links to the actual URLs and replace them with links to the alias URLs. When a visitor clicks on the link to the alias URL, Link Mask Generator will redirect the visitor to the actual URL.</li>
|
329 |
+
<li><strong>Why it helps:</strong> This type of functionality is a staple in an affiliate marketer’s toolkit. Link Mask Generator helps you by doing it in an SEO-friendly way: by funneling your affiliate links through a directory (e.g. <code>/go/</code>) which is blocked with <code>robots.txt</code> rules, effectively sealing off link juice flow to your affiliate links.</li>
|
330 |
+
<li><strong>How to use it:</strong> Type in the real URL, type in an alias URL, and click “Save Changes” — that’s it!</li>
|
331 |
+
</ul>
|
332 |
+
", 'seo-ultimate')));
|
333 |
+
|
334 |
+
$screen->add_help_tab(array(
|
335 |
+
'id' => 'su-internal-link-aliases-aliases'
|
336 |
+
, 'title' => __('Aliases Tab', 'seo-ultimate')
|
337 |
+
, 'content' => __("
|
338 |
+
<p>To add a link alias, fill in the fields and then click “Save Changes.” Once you do so, you can edit your newly masked link or add another one.</p>
|
339 |
+
|
340 |
+
<ul>
|
341 |
+
<li><strong>Actual URL</strong> — This box is where you put your affiliate URL (or other URL that you want to mask).</li>
|
342 |
+
<li><strong>Alias URL</strong> — This box is where you specify the new URL that will replace the actual one.</li>
|
343 |
+
<li><strong>Only on This Post</strong> — If you want to mask the actual URL across your entire site, leave this box blank. If you only want to mask the actual URL within an individual post, then type its name into this box and select it from the dropdown.</li>
|
344 |
+
<li><strong>Delete</strong> — To delete a link mask, tick its “Delete” checkbox and then click “Save Changes.”</li>
|
345 |
+
</ul>
|
346 |
+
", 'seo-ultimate')));
|
347 |
+
|
348 |
+
$screen->add_help_tab(array(
|
349 |
+
'id' => 'su-internal-link-aliases-settings'
|
350 |
+
, 'title' => __('Settings Tab', 'seo-ultimate')
|
351 |
+
, 'content' => __("
|
352 |
+
<p>The following options are available on the Settings tab:</p>
|
353 |
|
354 |
+
<ul>
|
355 |
+
<li><strong>Alias Directory</strong> — If you’d like, you can change the name of the directory that contains all your alias URLs. (Don’t worry, you won’t break any links by changing this.)</li>
|
356 |
+
<li><strong>Nofollow masked links</strong> — Checking this will add the <code>rel="nofollow"</code> attribute to any masked links on your site. This makes it super-easy to nofollow all your affiliate links automatically.</li>
|
357 |
+
</ul>
|
358 |
+
", 'seo-ultimate')));
|
359 |
+
|
360 |
+
$screen->add_help_tab(array(
|
361 |
+
'id' => 'su-autolinks-faq'
|
362 |
+
, 'title' => __('FAQ', 'seo-ultimate')
|
363 |
+
, 'content' => __("
|
364 |
+
<ul>
|
365 |
+
<li><strong>Can I automatically link a phrase on my site to one of my alias URLs?</strong><br />Yes. Once you’ve created your link mask, go to Deeplink Juggernaut’s “Content Links” section, type the contents of your link mask’s “Alias URL” field into Deeplink Juggernaut’s “Destination” field, and select your link mask from the dropdown that appears.</li>
|
366 |
+
<li><strong>Will Link Mask Generator still add the <code>robots.txt</code> rules if I’m using the File Editor module to create a custom <code>robots.txt</code>?</strong><br />Yes.</li>
|
367 |
+
</ul>
|
368 |
+
", 'seo-ultimate')));
|
369 |
+
|
370 |
+
}
|
371 |
+
|
372 |
}
|
modules/meta/meta-descriptions.php
CHANGED
@@ -200,13 +200,13 @@ class SU_MetaDescriptions extends SU_Module {
|
|
200 |
", 'seo-ultimate')));
|
201 |
|
202 |
$screen->add_help_tab(array(
|
203 |
-
'id' => 'su-meta-descriptions-
|
204 |
-
, 'title' => __('
|
205 |
, 'content' => __("
|
206 |
<p>Here’s information on the various settings:</p>
|
207 |
|
208 |
<ul>
|
209 |
-
<li><strong>Blog Homepage Meta Description</strong> — When your blog homepage appears in search results, it’ll have a title and a description. When you
|
210 |
<li><strong>Use this blog’s tagline as the default homepage description.</strong> — If this box is checked and if the Blog Homepage Meta Description field is empty, Meta Editor will use your blog’s tagline as the meta description. You can edit the blog’s tagline under <a href='options-general.php'>Settings ⇒ General</a>.</li>
|
211 |
</ul>
|
212 |
", 'seo-ultimate')));
|
@@ -216,7 +216,7 @@ class SU_MetaDescriptions extends SU_Module {
|
|
216 |
, 'title' => __('FAQ', 'seo-ultimate')
|
217 |
, 'content' => __("
|
218 |
<ul>
|
219 |
-
<li><strong>How do I edit the meta description of my homepage?</strong><br />If you
|
220 |
</ul>
|
221 |
", 'seo-ultimate')));
|
222 |
|
@@ -228,7 +228,7 @@ class SU_MetaDescriptions extends SU_Module {
|
|
228 |
<li>
|
229 |
<p><strong>What do I do if my site has multiple meta tags?</strong><br />First, try removing your theme’s built-in meta tags if it has them. Go to <a href='theme-editor.php' target='_blank'>Appearance ⇒ Editor</a> and edit <code>header.php</code>. Delete or comment-out any <code><meta></code> tags.</p>
|
230 |
<p>If the problem persists, try disabling other SEO plugins that may be generating meta tags.</p>
|
231 |
-
<p>Troubleshooting tip: Go to <a href='options-general.php?page=seo-ultimate'>Settings ⇒ SEO Ultimate</a> and enable the “
|
232 |
</li>
|
233 |
</ul>
|
234 |
", 'seo-ultimate')));
|
200 |
", 'seo-ultimate')));
|
201 |
|
202 |
$screen->add_help_tab(array(
|
203 |
+
'id' => 'su-meta-descriptions-blog-homepage'
|
204 |
+
, 'title' => __('Blog Homepage Tab', 'seo-ultimate')
|
205 |
, 'content' => __("
|
206 |
<p>Here’s information on the various settings:</p>
|
207 |
|
208 |
<ul>
|
209 |
+
<li><strong>Blog Homepage Meta Description</strong> — When your blog homepage appears in search results, it’ll have a title and a description. When you type a description into this box, the Meta Editor will add code to your blog homepage (the <code><meta name="description" /></code> tag) that asks search engines to use what you’ve entered as the homepage’s search results description.</li>
|
210 |
<li><strong>Use this blog’s tagline as the default homepage description.</strong> — If this box is checked and if the Blog Homepage Meta Description field is empty, Meta Editor will use your blog’s tagline as the meta description. You can edit the blog’s tagline under <a href='options-general.php'>Settings ⇒ General</a>.</li>
|
211 |
</ul>
|
212 |
", 'seo-ultimate')));
|
216 |
, 'title' => __('FAQ', 'seo-ultimate')
|
217 |
, 'content' => __("
|
218 |
<ul>
|
219 |
+
<li><strong>How do I edit the meta description of my homepage?</strong><br />If you have configured your <a href='options-reading.php'>Settings ⇒ Reading</a> section to use a “front page” and/or a “posts page,” just edit those pages’s meta descriptions on the “Pages” tab. Otherwise, just use the Blog Homepage field.</li>
|
220 |
</ul>
|
221 |
", 'seo-ultimate')));
|
222 |
|
228 |
<li>
|
229 |
<p><strong>What do I do if my site has multiple meta tags?</strong><br />First, try removing your theme’s built-in meta tags if it has them. Go to <a href='theme-editor.php' target='_blank'>Appearance ⇒ Editor</a> and edit <code>header.php</code>. Delete or comment-out any <code><meta></code> tags.</p>
|
230 |
<p>If the problem persists, try disabling other SEO plugins that may be generating meta tags.</p>
|
231 |
+
<p>Troubleshooting tip: Go to <a href='options-general.php?page=seo-ultimate'>Settings ⇒ SEO Ultimate</a> and enable the “Identify the plugin’s HTML code insertions with HTML comment tags” option. This will mark SEO Ultimate’s meta tags with comments, allowing you to see which meta tags are generated by SEO Ultimate and which aren’t.</p>
|
232 |
</li>
|
233 |
</ul>
|
234 |
", 'seo-ultimate')));
|
modules/meta/meta-keywords.php
CHANGED
@@ -57,7 +57,7 @@ class SU_MetaKeywords extends SU_Module {
|
|
57 |
function defaults_tab() {
|
58 |
$this->admin_form_table_start();
|
59 |
|
60 |
-
$posttypenames =
|
61 |
foreach ($posttypenames as $posttypename) {
|
62 |
$posttype = get_post_type_object($posttypename);
|
63 |
$posttypelabel = $posttype->labels->name;
|
@@ -135,7 +135,12 @@ class SU_MetaKeywords extends SU_Module {
|
|
135 |
} elseif (suwp::is_tax()) {
|
136 |
global $wp_query;
|
137 |
$tax_keywords = $this->get_setting('taxonomy_keywords');
|
138 |
-
|
|
|
|
|
|
|
|
|
|
|
139 |
}
|
140 |
|
141 |
if ($globals = $this->get_setting('global_keywords')) {
|
@@ -172,15 +177,23 @@ class SU_MetaKeywords extends SU_Module {
|
|
172 |
'id' => 'su-meta-keywords-overview'
|
173 |
, 'title' => __('Overview', 'seo-ultimate')
|
174 |
, 'content' => __("
|
175 |
-
<p>Meta Keywords Editor lets you tell search engines what keywords are associated with the various pages on your site. Modern search engines don’t give meta keywords much weight, but the option is there if you want to use it
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
176 |
", 'seo-ultimate')));
|
177 |
|
178 |
$screen->add_help_tab(array(
|
179 |
-
'id' => 'su-meta-keywords-
|
180 |
-
, 'title' => __('
|
181 |
, 'content' => __("
|
182 |
<ul>
|
183 |
-
<li><strong>Sitewide Keywords</strong> — Here you can enter keywords that describe the overall subject matter of your entire blog. Use ommas to separate keywords. These keywords will be put in the <code>>meta name="keywords" /></code> tags of all webpages on the site (homepage, posts, pages, archives, etc.).</li>
|
184 |
<li><strong>Blog Homepage Meta Keywords</strong> — These keywords will be applied only to the <em>blog</em> homepage. Note that if you’ve specified a “front page” under <a href='options-reading.php'>Settings ⇒ Reading</a>, you’ll need to edit your frontpage and set your frontpage keywords there.</li>
|
185 |
</ul>
|
186 |
", 'seo-ultimate')));
|
@@ -190,10 +203,7 @@ class SU_MetaKeywords extends SU_Module {
|
|
190 |
, 'title' => __('FAQ', 'seo-ultimate')
|
191 |
, 'content' => __("
|
192 |
<ul>
|
193 |
-
<li>
|
194 |
-
<p><strong>How do I edit the meta keywords of my homepage?</strong><br />If you are using a “blog homepage” (the default option of showing your blog posts on your homepage), just use the Blog Homepage field.</p>
|
195 |
-
<p>If you have configured your <a href='options-reading.php'>Settings ⇒ Reading</a> section to use a “frontpage” (i.e. a Page as your homepage), just edit that Page and use the “Meta Keywords” field in the “SEO Settings” box.</p>
|
196 |
-
</li>
|
197 |
<li><strong>What happens if I add a global keyword that I previously assigned to individual posts or pages?</strong><br />Don’t worry; Meta Keywords Editor will remove duplicate keywords automatically.</li>
|
198 |
</ul>
|
199 |
", 'seo-ultimate')));
|
57 |
function defaults_tab() {
|
58 |
$this->admin_form_table_start();
|
59 |
|
60 |
+
$posttypenames = get_post_types(array('public' => true), 'names');
|
61 |
foreach ($posttypenames as $posttypename) {
|
62 |
$posttype = get_post_type_object($posttypename);
|
63 |
$posttypelabel = $posttype->labels->name;
|
135 |
} elseif (suwp::is_tax()) {
|
136 |
global $wp_query;
|
137 |
$tax_keywords = $this->get_setting('taxonomy_keywords');
|
138 |
+
|
139 |
+
$term_id = $wp_query->get_queried_object_id();
|
140 |
+
if (isset($tax_keywords[$term_id]))
|
141 |
+
$kw = $tax_keywords[$term_id];
|
142 |
+
else
|
143 |
+
$kw = '';
|
144 |
}
|
145 |
|
146 |
if ($globals = $this->get_setting('global_keywords')) {
|
177 |
'id' => 'su-meta-keywords-overview'
|
178 |
, 'title' => __('Overview', 'seo-ultimate')
|
179 |
, 'content' => __("
|
180 |
+
<p>Meta Keywords Editor lets you tell search engines what keywords are associated with the various pages on your site. Modern search engines don’t give meta keywords much weight, if any at all, but the option is there if you want to use it.</p>
|
181 |
+
", 'seo-ultimate')));
|
182 |
+
|
183 |
+
$screen->add_help_tab(array(
|
184 |
+
'id' => 'su-meta-keywords-global'
|
185 |
+
, 'title' => __('Sitewide Settings Tab', 'seo-ultimate')
|
186 |
+
, 'content' => __("
|
187 |
+
<ul>
|
188 |
+
<li><strong>Sitewide Keywords</strong> — Here you can enter keywords that describe the overall subject matter of your entire blog. Use commas to separate keywords. These keywords will be put in the <code>>meta name="keywords" /></code> tags of all webpages on the site (homepage, posts, pages, archives, etc.).</li>
|
189 |
+
</ul>
|
190 |
", 'seo-ultimate')));
|
191 |
|
192 |
$screen->add_help_tab(array(
|
193 |
+
'id' => 'su-meta-keywords-home'
|
194 |
+
, 'title' => __('Blog Homepage Tab', 'seo-ultimate')
|
195 |
, 'content' => __("
|
196 |
<ul>
|
|
|
197 |
<li><strong>Blog Homepage Meta Keywords</strong> — These keywords will be applied only to the <em>blog</em> homepage. Note that if you’ve specified a “front page” under <a href='options-reading.php'>Settings ⇒ Reading</a>, you’ll need to edit your frontpage and set your frontpage keywords there.</li>
|
198 |
</ul>
|
199 |
", 'seo-ultimate')));
|
203 |
, 'title' => __('FAQ', 'seo-ultimate')
|
204 |
, 'content' => __("
|
205 |
<ul>
|
206 |
+
<li><strong>How do I edit the meta keywords of my homepage?</strong><br />If you have configured your <a href='options-reading.php'>Settings ⇒ Reading</a> section to use a “front page” and/or a “posts page,” just edit those pages’s meta keywords on the “Pages” tab. Otherwise, just use the Blog Homepage field.</li>
|
|
|
|
|
|
|
207 |
<li><strong>What happens if I add a global keyword that I previously assigned to individual posts or pages?</strong><br />Don’t worry; Meta Keywords Editor will remove duplicate keywords automatically.</li>
|
208 |
</ul>
|
209 |
", 'seo-ultimate')));
|
modules/meta/meta-robots.php
CHANGED
@@ -57,43 +57,43 @@ class SU_MetaRobots extends SU_Module {
|
|
57 |
<li><strong>How to use it:</strong> Adjust the settings as desired, and then click Save Changes. You can refer to the “Settings Help” tab for information on the settings available. You can also use the editor tabs to deindex individual content items on your site as well as enable the “nofollow” meta parameter that will nullify all outgoing links on a specific webpage.</li>
|
58 |
</ul>
|
59 |
", 'seo-ultimate')));
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
<p>Here’s information on the various settings:</p>
|
66 |
-
|
67 |
<ul>
|
68 |
-
<li>
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
|
|
|
|
97 |
</ul>
|
98 |
", 'seo-ultimate')));
|
99 |
|
@@ -110,7 +110,6 @@ class SU_MetaRobots extends SU_Module {
|
|
110 |
</ul>
|
111 |
", 'seo-ultimate')));
|
112 |
|
113 |
-
|
114 |
}
|
115 |
}
|
116 |
|
57 |
<li><strong>How to use it:</strong> Adjust the settings as desired, and then click Save Changes. You can refer to the “Settings Help” tab for information on the settings available. You can also use the editor tabs to deindex individual content items on your site as well as enable the “nofollow” meta parameter that will nullify all outgoing links on a specific webpage.</li>
|
58 |
</ul>
|
59 |
", 'seo-ultimate')));
|
60 |
+
|
61 |
+
$screen->add_help_tab(array(
|
62 |
+
'id' => 'su-meta-robots-global'
|
63 |
+
, 'title' => __('Sitewide Settings Tab', 'seo-ultimate')
|
64 |
+
, 'content' => __("
|
|
|
|
|
65 |
<ul>
|
66 |
+
<li><strong>Don’t use this site’s Open Directory / Yahoo! Directory description in search results</strong> — If your site is listed in the <a href='http://www.dmoz.org/' target='_blank'>Open Directory (DMOZ)</a> or the <a href='http://dir.yahoo.com/' target='_blank'>Yahoo! Directory</a>, some search engines may use your directory listing as the meta description. These boxes tell search engines not to do that and will give you full control over your meta descriptions. These settings have no effect if your site isn’t listed in the Open Directory or Yahoo! Directory respectively.</li>
|
67 |
+
<li><strong>Don’t cache or archive this site</strong> — When you check this box, Meta Editor will ask search engines (Google, Yahoo!, Bing, etc.) and archivers (Archive.org, etc.) to <em>not</em> make cached or archived “copies” of your site.</li>
|
68 |
+
</ul>
|
69 |
+
", 'seo-ultimate')));
|
70 |
+
|
71 |
+
$screen->add_help_tab(array(
|
72 |
+
'id' => 'su-meta-robots-defaults'
|
73 |
+
, 'title' => __('Default Values Tab', 'seo-ultimate')
|
74 |
+
, 'content' => __("
|
75 |
+
<p><strong>Prevent indexing of…</strong></p>
|
76 |
+
<ul>
|
77 |
+
<li><strong>Administration back-end pages</strong> — Tells spiders not to index the administration area (the part you’re in now), in the unlikely event a spider somehow gains access to the administration. Recommended.</li>
|
78 |
+
<li><strong>Author archives</strong> — Tells spiders not to index author archives. Useful if your blog only has one author.</li>
|
79 |
+
<li><strong>Blog search pages</strong> — Tells spiders not to index the result pages of WordPress's blog search function. Recommended.</li>
|
80 |
+
<li><strong>Category archives</strong> — Tells spiders not to index category archives. Recommended only if you don't use categories.</li>
|
81 |
+
<li><strong>Comment feeds</strong> — Tells spiders not to index the RSS feeds that exist for every post's comments. (These comment feeds are totally separate from your normal blog feeds.)</li>
|
82 |
+
<li><strong>Comment subpages</strong> — Tells spiders not to index posts' comment subpages.</li>
|
83 |
+
<li><strong>Date-based archives</strong> — Tells spiders not to index day/month/year archives. Recommended, since these pages have little keyword value.</li>
|
84 |
+
<li><strong>Subpages of the homepage</strong> — Tells spiders not to index the homepage's subpages (page 2, page 3, etc). Recommended.</li>
|
85 |
+
<li><strong>Tag archives</strong> — Tells spiders not to index tag archives. Recommended only if you don't use tags.</li>
|
86 |
+
<li><strong>User login/registration pages</strong> — Tells spiders not to index WordPress's user login and registration pages. Recommended.</li>
|
87 |
+
</ul>
|
88 |
+
", 'seo-ultimate')));
|
89 |
+
|
90 |
+
$screen->add_help_tab(array(
|
91 |
+
'id' => 'su-meta-robots-metaedit'
|
92 |
+
, 'title' => __('Bulk Editor Tabs', 'seo-ultimate')
|
93 |
+
, 'content' => __("
|
94 |
+
<ul>
|
95 |
+
<li><strong>Noindex</strong> — Checking this for an item will ask search engines to remove that item’s webpage from their indices. Use this to remove pages that you don’t want showing up in search results (such as a Privacy Policy page, for example).</li>
|
96 |
+
<li><strong>Nofollow</strong> — Checking this for an item will tell search engines to ignore the links to other webpages that are on that item’s webpage. Note: this is page-level “meta nofollow,” not to be confused with link-level “rel nofollow.”</li>
|
97 |
</ul>
|
98 |
", 'seo-ultimate')));
|
99 |
|
110 |
</ul>
|
111 |
", 'seo-ultimate')));
|
112 |
|
|
|
113 |
}
|
114 |
}
|
115 |
|
modules/meta/webmaster-verify.php
CHANGED
@@ -79,16 +79,29 @@ class SU_WebmasterVerify extends SU_Module {
|
|
79 |
|
80 |
function add_help_tabs($screen) {
|
81 |
|
82 |
-
$
|
83 |
-
'id' => 'su-webmaster-verify-overview'
|
84 |
-
, 'title' => $this->has_enabled_parent() ? __('Webmaster Verification Assistant', 'seo-ultimate') : __('Overview', 'seo-ultimate')
|
85 |
-
, 'content' => __("
|
86 |
<ul>
|
87 |
<li><strong>What it does:</strong> Webmaster Verification Assistant lets you enter in verification codes for the webmaster portals of leading search engines.</li>
|
88 |
<li><strong>Why it helps:</strong> Webmaster Verification Assistant assists you in obtaining access to webmaster portals, which can provide you with valuable SEO tools.</li>
|
89 |
<li><strong>How to use it:</strong> Use a search engine to locate the webmaster portal you’re interested in, sign up at the portal, and then obtain a verification code. Once you have the code, you can paste it in here, click Save Changes, then return to the portal to verify that you own the site. Once that’s done, you'll have access to the portal’s SEO tools.</li>
|
90 |
</ul>
|
91 |
-
", 'seo-ultimate')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
}
|
93 |
|
94 |
}
|
79 |
|
80 |
function add_help_tabs($screen) {
|
81 |
|
82 |
+
$overview = __("
|
|
|
|
|
|
|
83 |
<ul>
|
84 |
<li><strong>What it does:</strong> Webmaster Verification Assistant lets you enter in verification codes for the webmaster portals of leading search engines.</li>
|
85 |
<li><strong>Why it helps:</strong> Webmaster Verification Assistant assists you in obtaining access to webmaster portals, which can provide you with valuable SEO tools.</li>
|
86 |
<li><strong>How to use it:</strong> Use a search engine to locate the webmaster portal you’re interested in, sign up at the portal, and then obtain a verification code. Once you have the code, you can paste it in here, click Save Changes, then return to the portal to verify that you own the site. Once that’s done, you'll have access to the portal’s SEO tools.</li>
|
87 |
</ul>
|
88 |
+
", 'seo-ultimate');
|
89 |
+
|
90 |
+
if ($this->has_enabled_parent()) {
|
91 |
+
$screen->add_help_tab(array(
|
92 |
+
'id' => 'su-webmaster-verify-help'
|
93 |
+
, 'title' => __('Webmaster Verification Assistant', 'seo-ultimate')
|
94 |
+
, 'content' =>
|
95 |
+
'<h3>' . __('Overview', 'seo-ultimate') . '</h3>' . $overview
|
96 |
+
));
|
97 |
+
} else {
|
98 |
+
|
99 |
+
$screen->add_help_tab(array(
|
100 |
+
'id' => 'su-webmaster-verify-overview'
|
101 |
+
, 'title' => __('Overview', 'seo-ultimate')
|
102 |
+
, 'content' => $overview));
|
103 |
+
|
104 |
+
}
|
105 |
}
|
106 |
|
107 |
}
|
modules/modules.css
CHANGED
@@ -39,6 +39,10 @@ div.su-module .form-table .jls_text_dest {
|
|
39 |
width: 325px;
|
40 |
}
|
41 |
|
|
|
|
|
|
|
|
|
42 |
div.su-module .form-table td div.field {
|
43 |
padding-bottom: 1em;
|
44 |
}
|
39 |
width: 325px;
|
40 |
}
|
41 |
|
42 |
+
div.su-module .form-table .subfield {
|
43 |
+
width: auto;
|
44 |
+
}
|
45 |
+
|
46 |
div.su-module .form-table td div.field {
|
47 |
padding-bottom: 1em;
|
48 |
}
|
modules/modules/modules.css
CHANGED
@@ -1,5 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
#su-modules td.module-status {
|
2 |
padding-right: 2em;
|
|
|
|
|
3 |
}
|
4 |
|
5 |
#su-modules td.module-status input {
|
@@ -26,4 +36,9 @@
|
|
26 |
#su-modules td.module-status .status-10 a.current { color: green; }
|
27 |
#su-modules td.module-status .status-5 a.current { color: black; }
|
28 |
#su-modules td.module-status .status-0 a.current { color: darkorange; }
|
29 |
-
#su-modules td.module-status .status-n10 a.current{ color: red; }
|
|
|
|
|
|
|
|
|
|
1 |
+
#su-modules table.widefat {
|
2 |
+
clear: left;
|
3 |
+
}
|
4 |
+
|
5 |
+
#su-modules td {
|
6 |
+
vertical-align: middle;
|
7 |
+
}
|
8 |
+
|
9 |
#su-modules td.module-status {
|
10 |
padding-right: 2em;
|
11 |
+
white-space: nowrap;
|
12 |
+
min-width: 25em;
|
13 |
}
|
14 |
|
15 |
#su-modules td.module-status input {
|
36 |
#su-modules td.module-status .status-10 a.current { color: green; }
|
37 |
#su-modules td.module-status .status-5 a.current { color: black; }
|
38 |
#su-modules td.module-status .status-0 a.current { color: darkorange; }
|
39 |
+
#su-modules td.module-status .status-n10 a.current{ color: red; }
|
40 |
+
|
41 |
+
#su-modules #wp-ultimate {
|
42 |
+
float: right;
|
43 |
+
margin: 0 1em 1em;
|
44 |
+
}
|
modules/modules/modules.php
CHANGED
@@ -46,11 +46,23 @@ class SU_Modules extends SU_Module {
|
|
46 |
}
|
47 |
|
48 |
function admin_page_contents() {
|
49 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
_e('SEO Ultimate’s features are located in groups called “modules.” By default, most of these modules are listed in the “SEO” menu on the left. Whenever you’re working with a module, you can view documentation by clicking the “Help” tab in the upper-right-hand corner of your administration screen.', 'seo-ultimate');
|
51 |
-
echo "</p
|
52 |
_e('The Module Manager lets you disable or hide modules you don’t use. You can also silence modules from displaying bubble alerts on the menu.', 'seo-ultimate');
|
53 |
-
echo "</p
|
54 |
|
55 |
if (!empty($_GET['su-modules-updated']))
|
56 |
$this->print_message('success', __('Modules updated.', 'seo-ultimate'));
|
@@ -176,6 +188,7 @@ STR;
|
|
176 |
'id' => 'su-modules-options'
|
177 |
, 'title' => __('Options Help', 'seo-ultimate')
|
178 |
, 'content' => __("
|
|
|
179 |
<p>The Module Manager lets you customize the visibility and accessibility of each module; here are the options available:</p>
|
180 |
<ul>
|
181 |
<li><strong>Enabled</strong> — The default option. The module will be fully enabled and accessible.</li>
|
46 |
}
|
47 |
|
48 |
function admin_page_contents() {
|
49 |
+
|
50 |
+
if ($this->plugin->should_show_wp_ultimate_promo()) {
|
51 |
+
?>
|
52 |
+
<div id="wp-ultimate">
|
53 |
+
<a href="http://www.wpultimatetheme.com/" target="_blank">
|
54 |
+
<img src="<?php echo $this->plugin->plugin_dir_url; ?>plugin/images/wp-ultimate.gif" alt="<?php esc_attr_e('Like SEO Ultimate? Check out the WP Ultimate theme from SEO Design Solutions.', 'seo-ultimate'); ?>" title="" />
|
55 |
+
</a>
|
56 |
+
</div>
|
57 |
+
|
58 |
+
<?php
|
59 |
+
}
|
60 |
+
|
61 |
+
echo '<p>';
|
62 |
_e('SEO Ultimate’s features are located in groups called “modules.” By default, most of these modules are listed in the “SEO” menu on the left. Whenever you’re working with a module, you can view documentation by clicking the “Help” tab in the upper-right-hand corner of your administration screen.', 'seo-ultimate');
|
63 |
+
echo "</p>\n<p>";
|
64 |
_e('The Module Manager lets you disable or hide modules you don’t use. You can also silence modules from displaying bubble alerts on the menu.', 'seo-ultimate');
|
65 |
+
echo "</p>\n";
|
66 |
|
67 |
if (!empty($_GET['su-modules-updated']))
|
68 |
$this->print_message('success', __('Modules updated.', 'seo-ultimate'));
|
188 |
'id' => 'su-modules-options'
|
189 |
, 'title' => __('Options Help', 'seo-ultimate')
|
190 |
, 'content' => __("
|
191 |
+
<p>SEO Ultimate’s features are located in groups called “modules.” By default, most of these modules are listed in the “SEO” menu on the left.</p>
|
192 |
<p>The Module Manager lets you customize the visibility and accessibility of each module; here are the options available:</p>
|
193 |
<ul>
|
194 |
<li><strong>Enabled</strong> — The default option. The module will be fully enabled and accessible.</li>
|
modules/noindex/noindex.php
CHANGED
@@ -93,7 +93,7 @@ class SU_Noindex extends SU_Module {
|
|
93 |
//If global noindex tags are enabled, these settings will be moot, so notify the user.
|
94 |
if (!get_option('blog_public'))
|
95 |
$this->queue_message('error',
|
96 |
-
__('Note: The
|
97 |
|
98 |
$this->admin_form_table_start();
|
99 |
$this->admin_form_subheader(__('Prevent indexing of...', 'seo-ultimate'));
|
93 |
//If global noindex tags are enabled, these settings will be moot, so notify the user.
|
94 |
if (!get_option('blog_public'))
|
95 |
$this->queue_message('error',
|
96 |
+
__('Note: The <a href="options-reading.php">“discourage search engines” checkbox</a> will block indexing of the entire site, regardless of which options are set below.', 'seo-ultimate') );
|
97 |
|
98 |
$this->admin_form_table_start();
|
99 |
$this->admin_form_subheader(__('Prevent indexing of...', 'seo-ultimate'));
|
modules/opengraph/opengraph.php
CHANGED
@@ -22,29 +22,56 @@ class SU_OpenGraph extends SU_Module {
|
|
22 |
, 'default_post_twitter_card' => 'summary'
|
23 |
, 'default_page_twitter_card' => 'summary'
|
24 |
, 'default_attachment_twitter_card' => 'photo'
|
|
|
25 |
);
|
26 |
}
|
27 |
|
28 |
function init() {
|
29 |
-
add_filter('language_attributes', array(&$this, '
|
30 |
add_action('su_head', array(&$this, 'head_tag_output'));
|
31 |
add_filter('su_get_setting-opengraph-twitter_site_handle', array(&$this, 'sanitize_twitter_handle'));
|
32 |
add_filter('user_contactmethods', array(&$this, 'add_twitter_field'));
|
33 |
}
|
34 |
|
35 |
-
function
|
36 |
$this->namespaces_declared = true;
|
37 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
}
|
39 |
|
40 |
-
function
|
41 |
return array(
|
42 |
-
'og' => '
|
43 |
-
, 'fb' => '
|
44 |
);
|
45 |
}
|
46 |
|
47 |
function head_tag_output() {
|
|
|
48 |
|
49 |
$tags = $twitter_tags = array();
|
50 |
|
@@ -65,14 +92,13 @@ class SU_OpenGraph extends SU_Module {
|
|
65 |
$tags['og:description'] = get_bloginfo('description');
|
66 |
|
67 |
//URL
|
68 |
-
$tags['og:url'] =
|
69 |
|
70 |
//Image
|
71 |
$tags['og:image'] = $this->get_setting('home_og_image');
|
72 |
|
73 |
} elseif (is_singular()) {
|
74 |
|
75 |
-
global $wp_query;
|
76 |
$post = $wp_query->get_queried_object();
|
77 |
|
78 |
if (is_object($post)) {
|
@@ -101,7 +127,7 @@ class SU_OpenGraph extends SU_Module {
|
|
101 |
if (!$tags['og:image']) {
|
102 |
if ('attachment' == $post->post_type)
|
103 |
$tags['og:image'] = wp_get_attachment_url();
|
104 |
-
elseif ($thumbnail_id = get_post_thumbnail_id($post->ID))
|
105 |
$tags['og:image'] = wp_get_attachment_url($thumbnail_id);
|
106 |
}
|
107 |
|
@@ -111,7 +137,10 @@ class SU_OpenGraph extends SU_Module {
|
|
111 |
|
112 |
$tags['article:published_time'] = get_the_date('Y-m-d');
|
113 |
$tags['article:modified_time'] = get_the_modified_date('Y-m-d');
|
114 |
-
|
|
|
|
|
|
|
115 |
|
116 |
$single_category = (count(get_the_category()) == 1);
|
117 |
|
@@ -140,7 +169,6 @@ class SU_OpenGraph extends SU_Module {
|
|
140 |
}
|
141 |
} elseif (is_author()) {
|
142 |
|
143 |
-
global $wp_query;
|
144 |
$author = $wp_query->get_queried_object();
|
145 |
|
146 |
if (is_object($author)) {
|
@@ -193,22 +221,50 @@ class SU_OpenGraph extends SU_Module {
|
|
193 |
$twitter_tags['twitter:site'] = $this->get_setting('twitter_site_handle');
|
194 |
|
195 |
//Output meta tags
|
196 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
|
198 |
-
$output_formats = array(
|
199 |
-
'<meta property="%1$s" content="%2$s" %3$s/>' => $tags
|
200 |
-
, '<meta name="%1$s" content="%2$s" />' => $twitter_tags
|
201 |
-
);
|
202 |
foreach ($output_formats as $html_format => $format_tags) {
|
203 |
foreach ($format_tags as $property => $values) {
|
204 |
foreach ((array)$values as $value) {
|
205 |
$property = su_esc_attr($property);
|
206 |
$value = su_esc_attr($value);
|
207 |
if (strlen(trim($property)) && strlen(trim($value))) {
|
208 |
-
|
209 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
echo "\t";
|
211 |
-
printf($html_format, $property, $value, $
|
212 |
echo "\n";
|
213 |
}
|
214 |
}
|
@@ -260,6 +316,7 @@ class SU_OpenGraph extends SU_Module {
|
|
260 |
array(
|
261 |
array('title' => __('Sitewide Values', 'seo-ultimate'), 'id' => 'su-sitewide-values', 'callback' => 'global_tab')
|
262 |
, array('title' => __('Default Values', 'seo-ultimate'), 'id' => 'su-default-values', 'callback' => 'defaults_tab')
|
|
|
263 |
, array('title' => __('Blog Homepage', 'seo-ultimate'), 'id' => 'su-homepage', 'callback' => 'home_tab')
|
264 |
)
|
265 |
, $postmeta_edit_tabs
|
@@ -275,7 +332,7 @@ class SU_OpenGraph extends SU_Module {
|
|
275 |
}
|
276 |
|
277 |
function defaults_tab() {
|
278 |
-
$posttypes =
|
279 |
|
280 |
$this->admin_subheader(__('Default Types', 'seo-ultimate'));
|
281 |
$this->admin_wftable_start(array(
|
@@ -306,6 +363,17 @@ class SU_OpenGraph extends SU_Module {
|
|
306 |
$this->admin_form_table_end();
|
307 |
}
|
308 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
309 |
function home_tab() {
|
310 |
$this->admin_form_table_start();
|
311 |
$this->textbox('home_og_title', __('Blog Homepage Title', 'seo-ultimate'), false, false, array(), array('placeholder' => get_bloginfo('name')));
|
@@ -343,7 +411,7 @@ class SU_OpenGraph extends SU_Module {
|
|
343 |
|
344 |
function get_jlsuggest_box($name, $value, $params='', $placeholder='') {
|
345 |
|
346 |
-
if (empty($value) && $this->jlsuggest_box_post_id && $thumbnail_id = get_post_thumbnail_id($this->jlsuggest_box_post_id)) {
|
347 |
$selected_post = get_post($thumbnail_id);
|
348 |
$placeholder = sprintf(__('Featured Image: %s', 'seo-ultimate'), $selected_post->post_title);
|
349 |
}
|
@@ -403,6 +471,21 @@ class SU_OpenGraph extends SU_Module {
|
|
403 |
$contactmethods['twitter'] = __('Twitter Handle', 'seo-ultimate');
|
404 |
return $contactmethods;
|
405 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
406 |
}
|
407 |
|
408 |
}
|
22 |
, 'default_post_twitter_card' => 'summary'
|
23 |
, 'default_page_twitter_card' => 'summary'
|
24 |
, 'default_attachment_twitter_card' => 'photo'
|
25 |
+
, 'enable_og_article_author' => true
|
26 |
);
|
27 |
}
|
28 |
|
29 |
function init() {
|
30 |
+
add_filter('language_attributes', array(&$this, 'html_tag_attrs'), 1000);
|
31 |
add_action('su_head', array(&$this, 'head_tag_output'));
|
32 |
add_filter('su_get_setting-opengraph-twitter_site_handle', array(&$this, 'sanitize_twitter_handle'));
|
33 |
add_filter('user_contactmethods', array(&$this, 'add_twitter_field'));
|
34 |
}
|
35 |
|
36 |
+
function html_tag_attrs($attrs) {
|
37 |
$this->namespaces_declared = true;
|
38 |
+
$namespace_urls = $this->get_namespace_urls();
|
39 |
+
|
40 |
+
$doctype = $this->get_setting('doctype', '');
|
41 |
+
switch ($doctype) {
|
42 |
+
case 'xhtml':
|
43 |
+
foreach ($namespace_urls as $namespace => $url) {
|
44 |
+
$namespace = su_esc_attr($namespace);
|
45 |
+
$url = su_esc_attr($url);
|
46 |
+
$attrs .= " xmlns:$namespace=\"$url\"";
|
47 |
+
}
|
48 |
+
break;
|
49 |
+
case 'html5':
|
50 |
+
default:
|
51 |
+
$attrs .= ' prefix="';
|
52 |
+
$whitespace = '';
|
53 |
+
foreach ($namespace_urls as $namespace => $url) {
|
54 |
+
$namespace = su_esc_attr($namespace);
|
55 |
+
$url = su_esc_attr($url);
|
56 |
+
$attrs .= "$whitespace$namespace: $url";
|
57 |
+
$whitespace = ' ';
|
58 |
+
}
|
59 |
+
$attrs .= '"';
|
60 |
+
break;
|
61 |
+
}
|
62 |
+
|
63 |
+
return $attrs;
|
64 |
}
|
65 |
|
66 |
+
function get_namespace_urls() {
|
67 |
return array(
|
68 |
+
'og' => 'http://ogp.me/ns#'
|
69 |
+
, 'fb' => 'http://ogp.me/ns/fb#'
|
70 |
);
|
71 |
}
|
72 |
|
73 |
function head_tag_output() {
|
74 |
+
global $wp_query;
|
75 |
|
76 |
$tags = $twitter_tags = array();
|
77 |
|
92 |
$tags['og:description'] = get_bloginfo('description');
|
93 |
|
94 |
//URL
|
95 |
+
$tags['og:url'] = suwp::get_blog_home_url();
|
96 |
|
97 |
//Image
|
98 |
$tags['og:image'] = $this->get_setting('home_og_image');
|
99 |
|
100 |
} elseif (is_singular()) {
|
101 |
|
|
|
102 |
$post = $wp_query->get_queried_object();
|
103 |
|
104 |
if (is_object($post)) {
|
127 |
if (!$tags['og:image']) {
|
128 |
if ('attachment' == $post->post_type)
|
129 |
$tags['og:image'] = wp_get_attachment_url();
|
130 |
+
elseif (current_theme_supports('post-thumbnails') && $thumbnail_id = get_post_thumbnail_id($post->ID))
|
131 |
$tags['og:image'] = wp_get_attachment_url($thumbnail_id);
|
132 |
}
|
133 |
|
137 |
|
138 |
$tags['article:published_time'] = get_the_date('Y-m-d');
|
139 |
$tags['article:modified_time'] = get_the_modified_date('Y-m-d');
|
140 |
+
|
141 |
+
//Authorship generally doesn't apply to pages
|
142 |
+
if (!is_page() && $this->get_setting('enable_og_article_author', true))
|
143 |
+
$tags['article:author'] = get_author_posts_url($post->post_author);
|
144 |
|
145 |
$single_category = (count(get_the_category()) == 1);
|
146 |
|
169 |
}
|
170 |
} elseif (is_author()) {
|
171 |
|
|
|
172 |
$author = $wp_query->get_queried_object();
|
173 |
|
174 |
if (is_object($author)) {
|
221 |
$twitter_tags['twitter:site'] = $this->get_setting('twitter_site_handle');
|
222 |
|
223 |
//Output meta tags
|
224 |
+
$namespace_urls = $this->namespaces_declared ? array() : $this->get_namespace_urls();
|
225 |
+
$doctype = $this->get_setting('doctype', '');
|
226 |
+
|
227 |
+
switch ($doctype) {
|
228 |
+
case 'xhtml':
|
229 |
+
$output_formats = array('<meta%3$s name="%1$s" content="%2$s" />' => array_merge($tags, $twitter_tags));
|
230 |
+
break;
|
231 |
+
case 'html5':
|
232 |
+
$output_formats = array('<meta%3$s property="%1$s" content="%2$s">' => array_merge($tags, $twitter_tags));
|
233 |
+
break;
|
234 |
+
default:
|
235 |
+
$output_formats = array(
|
236 |
+
'<meta%3$s property="%1$s" content="%2$s" />' => $tags
|
237 |
+
, '<meta%3$s name="%1$s" content="%2$s" />' => $twitter_tags
|
238 |
+
);
|
239 |
+
break;
|
240 |
+
}
|
241 |
|
|
|
|
|
|
|
|
|
242 |
foreach ($output_formats as $html_format => $format_tags) {
|
243 |
foreach ($format_tags as $property => $values) {
|
244 |
foreach ((array)$values as $value) {
|
245 |
$property = su_esc_attr($property);
|
246 |
$value = su_esc_attr($value);
|
247 |
if (strlen(trim($property)) && strlen(trim($value))) {
|
248 |
+
|
249 |
+
$namespace_attr = '';
|
250 |
+
$namespace = sustr::upto($property, ':');
|
251 |
+
if (!empty($namespace_urls[$namespace])) {
|
252 |
+
$a_namespace = su_esc_attr($namespace);
|
253 |
+
$a_namespace_url = su_esc_attr($namespace_urls[$namespace]);
|
254 |
+
|
255 |
+
switch ($doctype) {
|
256 |
+
case 'xhtml':
|
257 |
+
$namespace_attr = " xmlns:$a_namespace=\"$a_namespace_url\"";
|
258 |
+
break;
|
259 |
+
case 'html5':
|
260 |
+
default:
|
261 |
+
$namespace_attr = " prefix=\"$a_namespace: $a_namespace_url\"";
|
262 |
+
break;
|
263 |
+
}
|
264 |
+
}
|
265 |
+
|
266 |
echo "\t";
|
267 |
+
printf($html_format, $property, $value, $namespace_attr);
|
268 |
echo "\n";
|
269 |
}
|
270 |
}
|
316 |
array(
|
317 |
array('title' => __('Sitewide Values', 'seo-ultimate'), 'id' => 'su-sitewide-values', 'callback' => 'global_tab')
|
318 |
, array('title' => __('Default Values', 'seo-ultimate'), 'id' => 'su-default-values', 'callback' => 'defaults_tab')
|
319 |
+
, array('title' => __('Settings', 'seo-ultimate'), 'id' => 'su-settings', 'callback' => 'settings_tab')
|
320 |
, array('title' => __('Blog Homepage', 'seo-ultimate'), 'id' => 'su-homepage', 'callback' => 'home_tab')
|
321 |
)
|
322 |
, $postmeta_edit_tabs
|
332 |
}
|
333 |
|
334 |
function defaults_tab() {
|
335 |
+
$posttypes = get_post_types(array('public' => true), 'objects');
|
336 |
|
337 |
$this->admin_subheader(__('Default Types', 'seo-ultimate'));
|
338 |
$this->admin_wftable_start(array(
|
363 |
$this->admin_form_table_end();
|
364 |
}
|
365 |
|
366 |
+
function settings_tab() {
|
367 |
+
$this->admin_form_table_start();
|
368 |
+
$this->checkbox('enable_og_article_author', __('Include author data for posts', 'seo-ultimate'), __('Open Graph Data', 'seo-ultimate'));
|
369 |
+
$this->radiobuttons('doctype', array(
|
370 |
+
'' => __('Use the non-validating code prescribed by Open Graph and Twitter', 'seo-ultimate')
|
371 |
+
, 'xhtml' => __('Alter the code to validate as XHTML', 'seo-ultimate')
|
372 |
+
, 'html5' => __('Alter the code to validate as HTML5', 'seo-ultimate')
|
373 |
+
), __('HTML Validation', 'seo-ultimate'));
|
374 |
+
$this->admin_form_table_end();
|
375 |
+
}
|
376 |
+
|
377 |
function home_tab() {
|
378 |
$this->admin_form_table_start();
|
379 |
$this->textbox('home_og_title', __('Blog Homepage Title', 'seo-ultimate'), false, false, array(), array('placeholder' => get_bloginfo('name')));
|
411 |
|
412 |
function get_jlsuggest_box($name, $value, $params='', $placeholder='') {
|
413 |
|
414 |
+
if (empty($value) && $this->jlsuggest_box_post_id && current_theme_supports('post-thumbnails') && $thumbnail_id = get_post_thumbnail_id($this->jlsuggest_box_post_id)) {
|
415 |
$selected_post = get_post($thumbnail_id);
|
416 |
$placeholder = sprintf(__('Featured Image: %s', 'seo-ultimate'), $selected_post->post_title);
|
417 |
}
|
471 |
$contactmethods['twitter'] = __('Twitter Handle', 'seo-ultimate');
|
472 |
return $contactmethods;
|
473 |
}
|
474 |
+
|
475 |
+
function add_help_tabs($screen) {
|
476 |
+
|
477 |
+
$screen->add_help_tab(array(
|
478 |
+
'id' => 'su-opengraph-overview'
|
479 |
+
, 'title' => __('Overview', 'seo-ultimate')
|
480 |
+
, 'content' => __("
|
481 |
+
<ul>
|
482 |
+
<li><strong>What it does:</strong> Open Graph Integrator makes it easy for you to convey information about your site to social networks like Facebook, Twitter, and Google+.</li>
|
483 |
+
<li><strong>Why it helps:</strong> By providing this Open Graph data, you can customize how these social networks will present your site when people share it with their followers.</li>
|
484 |
+
<li><strong>How to use it:</strong> The “Sitewide Values” tab lets you specify data that applies to your entire site. The “Default Values” tab lets you specify default data for your posts, pages, etc. The bulk editor tabs let you override those defaults on individual posts and pages. If the authors on your site fill in the “Twitter Handle” field which Open Graph Integrator adds to the <a href='profile.php'>profile editor</a>, Open Graph Integrator will communicate that information to Twitter as well.</li>
|
485 |
+
</ul>
|
486 |
+
", 'seo-ultimate')));
|
487 |
+
|
488 |
+
}
|
489 |
}
|
490 |
|
491 |
}
|
modules/permalinks/permalinks.php
CHANGED
@@ -37,6 +37,7 @@ class SU_Permalinks extends SU_Module {
|
|
37 |
}
|
38 |
}
|
39 |
if ($nobase_enabled) {
|
|
|
40 |
add_filter('term_link', array(&$this, 'nobase_term_link'), 1000, 2);
|
41 |
add_filter('query_vars', array(&$this, 'nobase_query_vars'));
|
42 |
add_filter('request', array(&$this, 'nobase_old_base_redirect'));
|
@@ -58,6 +59,7 @@ class SU_Permalinks extends SU_Module {
|
|
58 |
}
|
59 |
}
|
60 |
if ($nobase_enabled) {
|
|
|
61 |
remove_filter('term_link', array(&$this, 'nobase_term_link'), 1000, 2);
|
62 |
remove_filter('query_vars', array(&$this, 'nobase_query_vars'));
|
63 |
remove_filter('request', array(&$this, 'nobase_old_base_redirect'));
|
@@ -162,6 +164,7 @@ class SU_Permalinks extends SU_Module {
|
|
162 |
$tax_name = sustr::rtrim_str(current_filter(), '_rewrite_rules');
|
163 |
$tax_obj = get_taxonomy($tax_name);
|
164 |
|
|
|
165 |
$terms = get_terms($tax_name);
|
166 |
if ($terms && !is_wp_error($terms)) {
|
167 |
foreach ($terms as $term_obj) {
|
37 |
}
|
38 |
}
|
39 |
if ($nobase_enabled) {
|
40 |
+
add_action('wp_insert_post', array(&$this, 'flush_rewrite_rules'));
|
41 |
add_filter('term_link', array(&$this, 'nobase_term_link'), 1000, 2);
|
42 |
add_filter('query_vars', array(&$this, 'nobase_query_vars'));
|
43 |
add_filter('request', array(&$this, 'nobase_old_base_redirect'));
|
59 |
}
|
60 |
}
|
61 |
if ($nobase_enabled) {
|
62 |
+
remove_action('wp_insert_post', array(&$this, 'flush_rewrite_rules'));
|
63 |
remove_filter('term_link', array(&$this, 'nobase_term_link'), 1000, 2);
|
64 |
remove_filter('query_vars', array(&$this, 'nobase_query_vars'));
|
65 |
remove_filter('request', array(&$this, 'nobase_old_base_redirect'));
|
164 |
$tax_name = sustr::rtrim_str(current_filter(), '_rewrite_rules');
|
165 |
$tax_obj = get_taxonomy($tax_name);
|
166 |
|
167 |
+
wp_cache_flush(); //Otherwise get_terms() won't include the term just added
|
168 |
$terms = get_terms($tax_name);
|
169 |
if ($terms && !is_wp_error($terms)) {
|
170 |
foreach ($terms as $term_obj) {
|
modules/rich-snippets/rich-snippets.php
CHANGED
@@ -12,19 +12,20 @@ class SU_RichSnippets extends SU_Module {
|
|
12 |
var $apply_subproperty_markup_args = array();
|
13 |
|
14 |
function get_module_title() { return __('Rich Snippet Creator', 'seo-ultimate'); }
|
15 |
-
function get_menu_title() { return false; }
|
16 |
|
17 |
-
function
|
18 |
-
|
19 |
-
return parent::get_admin_url($key);
|
20 |
-
|
21 |
-
return false;
|
22 |
-
}
|
23 |
|
24 |
function init() {
|
25 |
add_filter('the_content', array(&$this, 'apply_markup'));
|
26 |
}
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
function get_supported_snippet_formats() {
|
29 |
|
30 |
return array(
|
@@ -387,36 +388,44 @@ class SU_RichSnippets extends SU_Module {
|
|
387 |
return $fields;
|
388 |
}
|
389 |
|
|
|
390 |
function add_help_tabs($screen) {
|
391 |
|
392 |
-
$
|
393 |
-
'id' => 'su-rich-snippets-overview'
|
394 |
-
, 'title' => __('Overview', 'seo-ultimate')
|
395 |
-
, 'content' => __("
|
396 |
<ul>
|
397 |
-
<li><strong>What it does:</strong> Rich Snippet Creator adds special code to your posts that asks Google to display special pertinent information (known as
|
398 |
<li><strong>Why it helps:</strong> Rich Snippet Creator enhances the search engine results for your content by asking Google to add extra, eye-catching info that could help draw in more search engine visitors.</li>
|
399 |
-
<li><
|
400 |
</ul>
|
401 |
-
", 'seo-ultimate')
|
402 |
|
403 |
-
$
|
404 |
-
'id' => 'su-rich-snippets-settings'
|
405 |
-
, 'title' => __('Settings Help', 'seo-ultimate')
|
406 |
-
, 'content' => __("
|
407 |
<ul>
|
408 |
-
<li><strong>
|
409 |
</ul>
|
410 |
-
", 'seo-ultimate')
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
, '
|
416 |
-
|
417 |
-
|
418 |
-
</
|
419 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
420 |
}
|
421 |
}
|
422 |
|
12 |
var $apply_subproperty_markup_args = array();
|
13 |
|
14 |
function get_module_title() { return __('Rich Snippet Creator', 'seo-ultimate'); }
|
|
|
15 |
|
16 |
+
function get_parent_module() { return 'misc'; }
|
17 |
+
function get_settings_key() { return 'rich-snippets'; }
|
|
|
|
|
|
|
|
|
18 |
|
19 |
function init() {
|
20 |
add_filter('the_content', array(&$this, 'apply_markup'));
|
21 |
}
|
22 |
|
23 |
+
function admin_page_contents() {
|
24 |
+
$this->child_admin_form_start();
|
25 |
+
$this->textblock(__('Rich Snippet Creator adds a “Search Result Type” dropdown to the WordPress content editor screen. To add rich snippet data to a post, select “Review” or “Place” from a post’s “Search Result Type” dropdown and fill in the fields that appear.', 'seo-ultimate'));
|
26 |
+
$this->child_admin_form_end();
|
27 |
+
}
|
28 |
+
|
29 |
function get_supported_snippet_formats() {
|
30 |
|
31 |
return array(
|
388 |
return $fields;
|
389 |
}
|
390 |
|
391 |
+
|
392 |
function add_help_tabs($screen) {
|
393 |
|
394 |
+
$overview = __("
|
|
|
|
|
|
|
395 |
<ul>
|
396 |
+
<li><strong>What it does:</strong> Rich Snippet Creator adds special code (called Schema.org data) to your posts that asks Google and other major search engines to display special pertinent information (known as Rich Snippets) in search results for certain types of content. For example, if you’ve written a product review, you can use Rich Snippet Creator to ask Google to display the star rating that you gave the product in your review next to your review webpage when it appears in search results.</li>
|
397 |
<li><strong>Why it helps:</strong> Rich Snippet Creator enhances the search engine results for your content by asking Google to add extra, eye-catching info that could help draw in more search engine visitors.</li>
|
398 |
+
<li><strong>How it works:</strong> When editing one of your posts or pages, see if your content fits one of the available rich snippet types (for example, a review). If so, select that type from the “Search Result Type” dropdown box. Once you select the applicable type, additional options will appear that vary based on the type selected. For example, a “Star Rating for Reviewed Item” field will appear if you select the “Review” type. Once you save the post/page, Rich Snippet Creator will add the special code to it. You can remove this code at any time by selecting “Standard” from the “Search Result Type” dropdown and resaving the post/page.</li>
|
399 |
</ul>
|
400 |
+
", 'seo-ultimate');
|
401 |
|
402 |
+
$troubleshooting = __("
|
|
|
|
|
|
|
403 |
<ul>
|
404 |
+
<li><p><strong>Why aren’t rich snippets showing up in Google search results for my site?</strong><br />Enter the URL of your post/page into <a href='http://www.google.com/webmasters/tools/richsnippets' target='_blank'>Google’s testing tool</a> to make sure Google can find the rich snippet code on your site. If no code is found, check and make sure you’ve enabled rich snippets for that particular post/page.</p><p>Note that having the code on a post/page doesn’t guarantee that Google will actually use it to create a rich snippet. If Google is able to read your code but isn’t using it to generate rich snippets, you can ask Google to do so using <a href='http://www.google.com/support/webmasters/bin/request.py?contact_type=rich_snippets_feedback' target='_blank'>this form</a>.</p></li>
|
405 |
</ul>
|
406 |
+
", 'seo-ultimate');
|
407 |
+
|
408 |
+
if ($this->has_enabled_parent()) {
|
409 |
+
$screen->add_help_tab(array(
|
410 |
+
'id' => 'su-rich-snippets-help'
|
411 |
+
, 'title' => __('Rich Snippet Creator', 'seo-ultimate')
|
412 |
+
, 'content' =>
|
413 |
+
'<h3>' . __('Overview', 'seo-ultimate') . '</h3>' . $overview .
|
414 |
+
'<h3>' . __('Troubleshooting', 'seo-ultimate') . '</h3>' . $troubleshooting
|
415 |
+
));
|
416 |
+
} else {
|
417 |
+
|
418 |
+
$screen->add_help_tab(array(
|
419 |
+
'id' => 'su-rich-snippets-overview'
|
420 |
+
, 'title' => __('Overview', 'seo-ultimate')
|
421 |
+
, 'content' => $overview));
|
422 |
+
|
423 |
+
$screen->add_help_tab(array(
|
424 |
+
'id' => 'su-rich-snippets-troubleshooting'
|
425 |
+
, 'title' => __('Troubleshooting', 'seo-ultimate')
|
426 |
+
, 'content' => $troubleshooting));
|
427 |
+
}
|
428 |
+
|
429 |
}
|
430 |
}
|
431 |
|
modules/sds-blog/sds-blog.php
CHANGED
@@ -63,7 +63,7 @@ class SU_SdsBlog extends SU_Module {
|
|
63 |
function truncate_at_ellipsis($content) {
|
64 |
$end = '[...]';
|
65 |
if (sustr::has($content, $end)) {
|
66 |
-
$content = sustr::
|
67 |
$content = sustr::rtrim_substr($content, $end);
|
68 |
}
|
69 |
return sustr::endwith($content, '[…]');
|
63 |
function truncate_at_ellipsis($content) {
|
64 |
$end = '[...]';
|
65 |
if (sustr::has($content, $end)) {
|
66 |
+
$content = sustr::upto($content, $end);
|
67 |
$content = sustr::rtrim_substr($content, $end);
|
68 |
}
|
69 |
return sustr::endwith($content, '[…]');
|
modules/settings/global-settings.php
CHANGED
@@ -21,6 +21,7 @@ class SU_GlobalSettings extends SU_Module {
|
|
21 |
return array(
|
22 |
'attribution_link' => false
|
23 |
, 'mark_code' => true
|
|
|
24 |
);
|
25 |
}
|
26 |
|
@@ -34,13 +35,19 @@ class SU_GlobalSettings extends SU_Module {
|
|
34 |
|
35 |
function admin_page_contents() {
|
36 |
|
37 |
-
//Plugin Settings
|
38 |
$this->admin_form_start();
|
39 |
-
|
|
|
40 |
'mark_code' => __('Identify the plugin’s HTML code insertions with HTML comment tags', 'seo-ultimate')
|
41 |
, 'attribution_link' => __('Enable nofollow’d attribution link on my site', 'seo-ultimate')
|
42 |
, 'attribution_link_css' => array('description' => __('Add CSS styles to the attribution link', 'seo-ultimate'), 'indent' => true)
|
43 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
$this->admin_form_end();
|
45 |
}
|
46 |
|
21 |
return array(
|
22 |
'attribution_link' => false
|
23 |
, 'mark_code' => true
|
24 |
+
, 'wp_ultimate' => true
|
25 |
);
|
26 |
}
|
27 |
|
35 |
|
36 |
function admin_page_contents() {
|
37 |
|
|
|
38 |
$this->admin_form_start();
|
39 |
+
|
40 |
+
$checkboxes = array(
|
41 |
'mark_code' => __('Identify the plugin’s HTML code insertions with HTML comment tags', 'seo-ultimate')
|
42 |
, 'attribution_link' => __('Enable nofollow’d attribution link on my site', 'seo-ultimate')
|
43 |
, 'attribution_link_css' => array('description' => __('Add CSS styles to the attribution link', 'seo-ultimate'), 'indent' => true)
|
44 |
+
);
|
45 |
+
|
46 |
+
if ($this->plugin->is_wp_ultimate_promo_applicable())
|
47 |
+
$checkboxes['wp_ultimate'] = __('Show the promo image for WP Ultimate on the Module Manager page', 'seo-ultimate');
|
48 |
+
|
49 |
+
$this->checkboxes($checkboxes);
|
50 |
+
|
51 |
$this->admin_form_end();
|
52 |
}
|
53 |
|
modules/settings/install.php
CHANGED
@@ -109,7 +109,7 @@ class SU_Install extends SU_Module {
|
|
109 |
return;
|
110 |
}
|
111 |
|
112 |
-
$radiobuttons = $this->get_version_radiobuttons(SU_DOWNGRADE_LIMIT, SU_VERSION);
|
113 |
if (is_array($radiobuttons)) {
|
114 |
if (count($radiobuttons) > 1) {
|
115 |
|
@@ -125,7 +125,7 @@ class SU_Install extends SU_Module {
|
|
125 |
$this->admin_form_end(__('Downgrade', 'seo-ultimate'));
|
126 |
echo "</div>\n";
|
127 |
} else
|
128 |
-
$this->print_message('warning', sprintf(__('Downgrading to versions earlier than %s is not supported because doing so will result
|
129 |
} else
|
130 |
$this->print_message('error', __('There was an error retrieving the list of available versions. Please try again later.', 'seo-ultimate'));
|
131 |
}
|
@@ -146,7 +146,7 @@ class SU_Install extends SU_Module {
|
|
146 |
$this->admin_form_end(__('Reinstall', 'seo-ultimate'), false);
|
147 |
}
|
148 |
|
149 |
-
function get_version_radiobuttons($min, $max) {
|
150 |
|
151 |
$this->update_setting('version', SU_VERSION);
|
152 |
|
@@ -155,7 +155,7 @@ class SU_Install extends SU_Module {
|
|
155 |
if (is_array($versions) && count($versions)) {
|
156 |
|
157 |
$radiobuttons = array();
|
158 |
-
$
|
159 |
foreach ($versions as $title => $changes) {
|
160 |
if (preg_match('|Version ([0-9.]{3,9}) |', $title, $matches)) {
|
161 |
$version = $matches[1];
|
@@ -166,7 +166,7 @@ class SU_Install extends SU_Module {
|
|
166 |
$changes = wptexturize($changes);
|
167 |
if ($version == SU_VERSION)
|
168 |
$message = __('Your Current Version', 'seo-ultimate');
|
169 |
-
elseif ($
|
170 |
$message = __('Latest Version', 'seo-ultimate');
|
171 |
else
|
172 |
$message = '';
|
@@ -174,7 +174,7 @@ class SU_Install extends SU_Module {
|
|
174 |
|
175 |
$radiobuttons[$version] = "<strong>$title</strong>$message</label>\n$changes\n";
|
176 |
|
177 |
-
$
|
178 |
}
|
179 |
}
|
180 |
|
@@ -186,6 +186,8 @@ class SU_Install extends SU_Module {
|
|
186 |
|
187 |
function do_installation() {
|
188 |
|
|
|
|
|
189 |
$nv = sustr::preg_filter('0-9a-zA-Z .', $_POST['version']);
|
190 |
if (!strlen($nv)) return false;
|
191 |
|
109 |
return;
|
110 |
}
|
111 |
|
112 |
+
$radiobuttons = $this->get_version_radiobuttons(SU_DOWNGRADE_LIMIT, SU_VERSION, 5);
|
113 |
if (is_array($radiobuttons)) {
|
114 |
if (count($radiobuttons) > 1) {
|
115 |
|
125 |
$this->admin_form_end(__('Downgrade', 'seo-ultimate'));
|
126 |
echo "</div>\n";
|
127 |
} else
|
128 |
+
$this->print_message('warning', sprintf(__('Downgrading to versions earlier than %s is not supported because doing so will result the loss of some or all of your SEO Ultimate settings.', 'seo-ultimate'), SU_DOWNGRADE_LIMIT));
|
129 |
} else
|
130 |
$this->print_message('error', __('There was an error retrieving the list of available versions. Please try again later.', 'seo-ultimate'));
|
131 |
}
|
146 |
$this->admin_form_end(__('Reinstall', 'seo-ultimate'), false);
|
147 |
}
|
148 |
|
149 |
+
function get_version_radiobuttons($min, $max, $limit=false) {
|
150 |
|
151 |
$this->update_setting('version', SU_VERSION);
|
152 |
|
155 |
if (is_array($versions) && count($versions)) {
|
156 |
|
157 |
$radiobuttons = array();
|
158 |
+
$i = 0;
|
159 |
foreach ($versions as $title => $changes) {
|
160 |
if (preg_match('|Version ([0-9.]{3,9}) |', $title, $matches)) {
|
161 |
$version = $matches[1];
|
166 |
$changes = wptexturize($changes);
|
167 |
if ($version == SU_VERSION)
|
168 |
$message = __('Your Current Version', 'seo-ultimate');
|
169 |
+
elseif (0 == $i)
|
170 |
$message = __('Latest Version', 'seo-ultimate');
|
171 |
else
|
172 |
$message = '';
|
174 |
|
175 |
$radiobuttons[$version] = "<strong>$title</strong>$message</label>\n$changes\n";
|
176 |
|
177 |
+
if ($limit !== false && $limit > 0 && ++$i >= $limit) break;
|
178 |
}
|
179 |
}
|
180 |
|
186 |
|
187 |
function do_installation() {
|
188 |
|
189 |
+
if (!isset($_POST['version'])) return false;
|
190 |
+
|
191 |
$nv = sustr::preg_filter('0-9a-zA-Z .', $_POST['version']);
|
192 |
if (!strlen($nv)) return false;
|
193 |
|
modules/sharing-buttons/sharing-buttons.php
CHANGED
@@ -66,16 +66,29 @@ class SU_SharingButtons extends SU_Module {
|
|
66 |
|
67 |
function add_help_tabs($screen) {
|
68 |
|
69 |
-
$
|
70 |
-
'id' => 'su-sharing-buttons-overview'
|
71 |
-
, 'title' => $this->has_enabled_parent() ? __('Sharing Facilitator', 'seo-ultimate') : __('Overview', 'seo-ultimate')
|
72 |
-
, 'content' => __("
|
73 |
<ul>
|
74 |
<li><strong>What it does:</strong> Sharing Facilitator adds buttons to your posts/pages that make it easy for visitors to share your content.</li>
|
75 |
<li><strong>Why it helps:</strong> When visitors share your content on social networking sites, this can build links to your site. Sharing Facilitator makes it easy for visitors to do this.</li>
|
76 |
<li><strong>How to use it:</strong> Pick which button type you’d like to use (ShareThis or AddThis) and click Save Changes. Try enabling each button on your site and see which one you like better.</li>
|
77 |
</ul>
|
78 |
-
", 'seo-ultimate')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
}
|
80 |
|
81 |
}
|
66 |
|
67 |
function add_help_tabs($screen) {
|
68 |
|
69 |
+
$overview = __("
|
|
|
|
|
|
|
70 |
<ul>
|
71 |
<li><strong>What it does:</strong> Sharing Facilitator adds buttons to your posts/pages that make it easy for visitors to share your content.</li>
|
72 |
<li><strong>Why it helps:</strong> When visitors share your content on social networking sites, this can build links to your site. Sharing Facilitator makes it easy for visitors to do this.</li>
|
73 |
<li><strong>How to use it:</strong> Pick which button type you’d like to use (ShareThis or AddThis) and click Save Changes. Try enabling each button on your site and see which one you like better.</li>
|
74 |
</ul>
|
75 |
+
", 'seo-ultimate');
|
76 |
+
|
77 |
+
if ($this->has_enabled_parent()) {
|
78 |
+
$screen->add_help_tab(array(
|
79 |
+
'id' => 'su-sharing-buttons-help'
|
80 |
+
, 'title' => __('Sharing Facilitator', 'seo-ultimate')
|
81 |
+
, 'content' =>
|
82 |
+
'<h3>' . __('Overview', 'seo-ultimate') . '</h3>' . $overview
|
83 |
+
));
|
84 |
+
} else {
|
85 |
+
|
86 |
+
$screen->add_help_tab(array(
|
87 |
+
'id' => 'su-sharing-buttons-overview'
|
88 |
+
, 'title' => __('Overview', 'seo-ultimate')
|
89 |
+
, 'content' => $overview));
|
90 |
+
|
91 |
+
}
|
92 |
}
|
93 |
|
94 |
}
|
modules/titles/titles.php
CHANGED
@@ -159,7 +159,7 @@ class SU_Titles extends SU_Module {
|
|
159 |
return htmlspecialchars($this->get_title_paged($post_title));
|
160 |
|
161 |
//Custom taxonomy title?
|
162 |
-
if (
|
163 |
$tax_titles = $this->get_setting('taxonomy_titles');
|
164 |
if ($tax_title = $tax_titles[$wp_query->get_queried_object_id()])
|
165 |
return htmlspecialchars($this->get_title_paged($tax_title));
|
@@ -432,6 +432,7 @@ class SU_Titles extends SU_Module {
|
|
432 |
, 'content' => __("
|
433 |
<p>Here’s documentation for the options on the “Settings” tab.</p>
|
434 |
<ul>
|
|
|
435 |
<li>
|
436 |
<p><strong>Rewrite Method</strong> — This setting controls the method by which Title Tag Rewriter edits your site’s <code><title></code> tags.</p>
|
437 |
<ul>
|
159 |
return htmlspecialchars($this->get_title_paged($post_title));
|
160 |
|
161 |
//Custom taxonomy title?
|
162 |
+
if (suwp::is_tax()) {
|
163 |
$tax_titles = $this->get_setting('taxonomy_titles');
|
164 |
if ($tax_title = $tax_titles[$wp_query->get_queried_object_id()])
|
165 |
return htmlspecialchars($this->get_title_paged($tax_title));
|
432 |
, 'content' => __("
|
433 |
<p>Here’s documentation for the options on the “Settings” tab.</p>
|
434 |
<ul>
|
435 |
+
<li><strong>Convert lowercase category/tag names to title case when used in title tags</strong> — If your Tag Title Format is set to <code>{tag} | {blog}</code> and you have a tag called “blue widgets,” your title tag would be <code>blue widgets | My WordPress Blog</code>. Enabling this setting would capitalize the words in “blue widgets” so that the title tag would be <code>Blue Widgets | My WordPress Blog</code> instead.</li>
|
436 |
<li>
|
437 |
<p><strong>Rewrite Method</strong> — This setting controls the method by which Title Tag Rewriter edits your site’s <code><title></code> tags.</p>
|
438 |
<ul>
|
modules/wp-settings/wp-settings.php
CHANGED
@@ -10,9 +10,8 @@ if (class_exists('SU_Module')) {
|
|
10 |
class SU_WpSettings extends SU_Module {
|
11 |
|
12 |
var $results = array();
|
13 |
-
|
14 |
-
function get_module_title() { return __('Settings Monitor
|
15 |
-
function get_menu_title() { return __('Settings Monitor', 'seo-ultimate'); }
|
16 |
|
17 |
function has_menu_count() { return true; }
|
18 |
function get_menu_count() {
|
@@ -31,7 +30,7 @@ class SU_WpSettings extends SU_Module {
|
|
31 |
__('WordPress will allow search engines to visit your site.', 'seo-ultimate'));
|
32 |
else
|
33 |
$this->results[] = array(SU_RESULT_ERROR, __('Blog is hidden from search engines', 'seo-ultimate'),
|
34 |
-
__('WordPress is configured to
|
35 |
|
36 |
switch (suwp::permalink_mode()) {
|
37 |
case SUWP_QUERY_PERMALINKS:
|
10 |
class SU_WpSettings extends SU_Module {
|
11 |
|
12 |
var $results = array();
|
13 |
+
|
14 |
+
function get_module_title() { return __('Settings Monitor', 'seo-ultimate'); }
|
|
|
15 |
|
16 |
function has_menu_count() { return true; }
|
17 |
function get_menu_count() {
|
30 |
__('WordPress will allow search engines to visit your site.', 'seo-ultimate'));
|
31 |
else
|
32 |
$this->results[] = array(SU_RESULT_ERROR, __('Blog is hidden from search engines', 'seo-ultimate'),
|
33 |
+
__('WordPress is configured to discourage search engines. This will nullify your site’s SEO and should be resolved immediately.', 'seo-ultimate'), 'options-reading.php');
|
34 |
|
35 |
switch (suwp::permalink_mode()) {
|
36 |
case SUWP_QUERY_PERMALINKS:
|
plugin/class.seo-ultimate.php
CHANGED
@@ -208,9 +208,6 @@ class SEO_Ultimate {
|
|
208 |
if (!get_option('blog_public')) {
|
209 |
//Add admin-wide notice
|
210 |
add_action('admin_notices', array(&$this, 'private_blog_admin_notice'));
|
211 |
-
|
212 |
-
//Remove duplicate Robots Meta notice
|
213 |
-
suwp::remove_instance_action('admin_footer', 'RobotsMeta_Admin', 'blog_public_warning');
|
214 |
}
|
215 |
|
216 |
add_action('admin_init', array(&$this, 'admin_init'));
|
@@ -1402,17 +1399,31 @@ class SEO_Ultimate {
|
|
1402 |
}
|
1403 |
|
1404 |
/**
|
1405 |
-
* Outputs a WordPress-esque admin notice regarding the
|
1406 |
-
* The setting must be
|
1407 |
*
|
1408 |
* @since 1.7
|
1409 |
*/
|
1410 |
function private_blog_admin_notice() {
|
1411 |
echo "\n<div class='error'><p>";
|
1412 |
-
_e('<strong>SEO Ultimate Notice:</strong> Your blog is configured to block search engine spiders. To resolve this, <a href="options-
|
1413 |
echo "</p></div>";
|
1414 |
}
|
1415 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1416 |
|
1417 |
/********** MODULE FUNCTIONS ***********/
|
1418 |
|
@@ -1461,6 +1472,17 @@ class SEO_Ultimate {
|
|
1461 |
return false;
|
1462 |
}
|
1463 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1464 |
/**
|
1465 |
* @since 6.4
|
1466 |
*/
|
@@ -1519,8 +1541,8 @@ class SEO_Ultimate {
|
|
1519 |
if (!isset($fields['misc'][$tab])) $fields['misc'][$tab] = array();
|
1520 |
$fields['misc'][$tab] += $tab_fields;
|
1521 |
} else {
|
1522 |
-
list($pos, $
|
1523 |
-
$fields['misc'][$pos][$
|
1524 |
}
|
1525 |
}
|
1526 |
}
|
@@ -1544,7 +1566,7 @@ class SEO_Ultimate {
|
|
1544 |
function add_postmeta_box() {
|
1545 |
|
1546 |
//Add the metabox to posts and pages.
|
1547 |
-
$posttypes =
|
1548 |
foreach ($posttypes as $screen) {
|
1549 |
|
1550 |
if (strpos($screen, '"') !== false)
|
@@ -1774,7 +1796,7 @@ class SEO_Ultimate {
|
|
1774 |
}
|
1775 |
|
1776 |
|
1777 |
-
$posttypeobjs =
|
1778 |
foreach ($posttypeobjs as $posttypeobj) {
|
1779 |
|
1780 |
if ($include && !in_array('posttype', $include) && !in_array('posttype_' . $posttypeobj->name, $include))
|
208 |
if (!get_option('blog_public')) {
|
209 |
//Add admin-wide notice
|
210 |
add_action('admin_notices', array(&$this, 'private_blog_admin_notice'));
|
|
|
|
|
|
|
211 |
}
|
212 |
|
213 |
add_action('admin_init', array(&$this, 'admin_init'));
|
1399 |
}
|
1400 |
|
1401 |
/**
|
1402 |
+
* Outputs a WordPress-esque admin notice regarding the "discourage search engines" setting.
|
1403 |
+
* The value of this setting must be assessed *before* this function is hooked into WordPress.
|
1404 |
*
|
1405 |
* @since 1.7
|
1406 |
*/
|
1407 |
function private_blog_admin_notice() {
|
1408 |
echo "\n<div class='error'><p>";
|
1409 |
+
_e('<strong>SEO Ultimate Notice:</strong> Your blog is configured to block search engine spiders. To resolve this, <a href="options-reading.php" target="_blank">go to your Reading settings</a> and disable the “discourage search engines” option.', 'seo-ultimate');
|
1410 |
echo "</p></div>";
|
1411 |
}
|
1412 |
|
1413 |
+
/**
|
1414 |
+
* @since 7.6
|
1415 |
+
*/
|
1416 |
+
function should_show_wp_ultimate_promo() {
|
1417 |
+
return $this->is_wp_ultimate_promo_applicable() && $this->get_setting('wp_ultimate', true, 'settings');
|
1418 |
+
}
|
1419 |
+
|
1420 |
+
/**
|
1421 |
+
* @since 7.6
|
1422 |
+
*/
|
1423 |
+
function is_wp_ultimate_promo_applicable() {
|
1424 |
+
//If the current user can install themes and if WP Ultimate isn't already uploaded...
|
1425 |
+
return current_user_can('install_themes') && (wp_get_theme('wpultimate')->errors() !== false);
|
1426 |
+
}
|
1427 |
|
1428 |
/********** MODULE FUNCTIONS ***********/
|
1429 |
|
1472 |
return false;
|
1473 |
}
|
1474 |
|
1475 |
+
/**
|
1476 |
+
* @since 7.6
|
1477 |
+
*/
|
1478 |
+
function get_module_var($key, $var, $default) {
|
1479 |
+
|
1480 |
+
if (isset($this->modules[$key]) && property_exists($this->modules[$key], $var))
|
1481 |
+
return $this->modules[$key]->$var;
|
1482 |
+
|
1483 |
+
return $default;
|
1484 |
+
}
|
1485 |
+
|
1486 |
/**
|
1487 |
* @since 6.4
|
1488 |
*/
|
1541 |
if (!isset($fields['misc'][$tab])) $fields['misc'][$tab] = array();
|
1542 |
$fields['misc'][$tab] += $tab_fields;
|
1543 |
} else {
|
1544 |
+
list($pos, $keys) = explode('|', $tab, 2);
|
1545 |
+
$fields['misc'][$pos][$keys] = $tab_fields;
|
1546 |
}
|
1547 |
}
|
1548 |
}
|
1566 |
function add_postmeta_box() {
|
1567 |
|
1568 |
//Add the metabox to posts and pages.
|
1569 |
+
$posttypes = get_post_types(array('public' => true), 'names');
|
1570 |
foreach ($posttypes as $screen) {
|
1571 |
|
1572 |
if (strpos($screen, '"') !== false)
|
1796 |
}
|
1797 |
|
1798 |
|
1799 |
+
$posttypeobjs = get_post_types(array('public' => true), 'objects');
|
1800 |
foreach ($posttypeobjs as $posttypeobj) {
|
1801 |
|
1802 |
if ($include && !in_array('posttype', $include) && !in_array('posttype_' . $posttypeobj->name, $include))
|
plugin/global.css
CHANGED
@@ -237,7 +237,7 @@ div.su-module select optgroup option {
|
|
237 |
text-decoration: none;
|
238 |
}
|
239 |
|
240 |
-
.su-tabs ul.ui-tabs-nav li.ui-
|
241 |
-moz-border-radius-topleft: 4px;
|
242 |
-moz-border-radius-topright: 4px;
|
243 |
-webkit-border-top-left-radius: 4px;
|
@@ -250,11 +250,11 @@ div.su-module select optgroup option {
|
|
250 |
padding: 0 9px;
|
251 |
}
|
252 |
|
253 |
-
.su-tabs ul.ui-tabs-nav li.ui-
|
254 |
border-bottom-color: #fff;
|
255 |
}
|
256 |
|
257 |
-
#su-postmeta-box .su-tabs ul.ui-tabs-nav li.ui-
|
258 |
background-color: white;
|
259 |
}
|
260 |
|
237 |
text-decoration: none;
|
238 |
}
|
239 |
|
240 |
+
.su-tabs ul.ui-tabs-nav li.ui-state-active a {
|
241 |
-moz-border-radius-topleft: 4px;
|
242 |
-moz-border-radius-topright: 4px;
|
243 |
-webkit-border-top-left-radius: 4px;
|
250 |
padding: 0 9px;
|
251 |
}
|
252 |
|
253 |
+
.su-tabs ul.ui-tabs-nav li.ui-state-active a {
|
254 |
border-bottom-color: #fff;
|
255 |
}
|
256 |
|
257 |
+
#su-postmeta-box .su-tabs ul.ui-tabs-nav li.ui-state-active a {
|
258 |
background-color: white;
|
259 |
}
|
260 |
|
plugin/images/wp-ultimate.gif
ADDED
Binary file
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== SEO Ultimate ===
|
2 |
Contributors: SEO Design Solutions, JohnLamansky
|
3 |
Tags: seo, SEO Ultimate, suite, google, yahoo, bing, search engines, admin, post, page, custom post types, categories, tags, terms, custom taxonomies, base, title, title tag, wp_title, meta, robots, noindex, nofollow, canonical, HTTP headers, 404, robots.txt, htaccess, slugs, url, anchor, more, link, excerpt, permalink, links, autolinks, code, footer, settings, redirect, 301, 302, 307, modules, uninstallable, reinstallable, downgradable, import, export, CSV, affiliate, Open Graph, og, microdata, Facebook, Twitter, Schema.org
|
4 |
-
Requires at least: 3.
|
5 |
-
Tested up to: 3.
|
6 |
-
Stable tag: 7.
|
7 |
|
8 |
This all-in-one SEO plugin gives you control over title tags, noindex, meta tags, Open Graph, slugs, canonical, autolinks, 404 errors, rich snippets, and more.
|
9 |
|
@@ -11,11 +11,11 @@ This all-in-one SEO plugin gives you control over title tags, noindex, meta tags
|
|
11 |
|
12 |
= Recent Releases =
|
13 |
|
|
|
14 |
* Version 7.5 adds support for Twitter Cards, Schema.org, and place snippets
|
15 |
* Version 7.4 adds the Author Highlighter module
|
16 |
* Version 7.3 adds the Open Graph Integrator module
|
17 |
* Version 7.2 updates Permalink Tweaker
|
18 |
-
* Version 7.1 adds new Link Mask Generator features
|
19 |
|
20 |
= Features =
|
21 |
|
@@ -28,24 +28,12 @@ SEO Ultimate is an all-in-one [SEO](http://www.seodesignsolutions.com/) plugin w
|
|
28 |
* Format the `<title>` tags of posts, pages, categories, tags, archives, search results, and more!
|
29 |
* Choose between two rewrite methods: "output buffering" or "filtering"
|
30 |
|
31 |
-
* **Meta Description Editor**
|
32 |
* Edit the `<meta>` description tags for posts, pages, attachments, categories, tags, post format archives, and the homepage.
|
33 |
* Increase SERP clickthrough rates by influencing search engine result snippets.
|
34 |
* Mass-editor makes it a cinch to go back and add descriptions to old posts.
|
35 |
* Use the `{excerpt::autogen}` variable to auto-generate meta descriptions if desired.
|
36 |
|
37 |
-
* **Meta Keywords Editor**
|
38 |
-
* Edit the `<meta>` keyword tags for posts, pages, categories, terms, and the homepage.
|
39 |
-
* Easily specify global keywords that are applied across the entire site.
|
40 |
-
* Go back and edit old posts' and pages' keywords with the mass-editor.
|
41 |
-
* Automatically generate meta keywords based on categories, tags, custom taxonomy terms, and frequently-used words.
|
42 |
-
|
43 |
-
* **Meta Robot Tags Editor**
|
44 |
-
* Add the `<meta name="robots" content="noindex,follow" />` tag to archives, comment feeds, the login page, and more.
|
45 |
-
* Set meta robots tags (index/noindex and follow/nofollow) for each individual post, page, category, tag, and post type archive on your blog. Also supports custom post types and custom taxonomies.
|
46 |
-
* Avoid duplicate content SEO issues with the recommended noindex settings (see built-in module documentation for details).
|
47 |
-
* Give instructions to search engine spiders if desired (`noodp`, `noydir`, and `noarchive`).
|
48 |
-
|
49 |
* **Deeplink Juggernaut**
|
50 |
* Use the power of anchor text to boost your internal ranking SEO paradigm.
|
51 |
* Searches your site's content for anchor texts you specify and automatically links them to a destination of your choosing. Lets you easily build internal links to URLs, posts, pages, attachments, custom post type items, categories, terms, post format archives, and custom taxonomy term archives.
|
@@ -53,7 +41,7 @@ SEO Ultimate is an all-in-one [SEO](http://www.seodesignsolutions.com/) plugin w
|
|
53 |
* Easily select autolink destinations using autocomplete textboxes that scour your site's content and taxonomy terms to find the link destination you're looking for.
|
54 |
* Autolinks point to the objects themselves, not to their URLs, so if you change the URL of a post or category on your site, the autolinks automatically adjust.
|
55 |
* Avoid over-optimization penalties by controlling the maximum number of autolinks added to each post/page, the maximum number of times an anchor is linked per post/page, and/or the maximum number of times a post/page can link to the same destination.
|
56 |
-
*
|
57 |
* Choose whether or not posts can link to themselves and/or to the current URL with a few simple checkboxes.
|
58 |
* Apply the nofollow attribute on a per-link basis. (Perfect for automatic affiliate links.)
|
59 |
* Exclude specific posts/pages from having links added to them, if desired (e.g. contact pages, the homepage, etc.).
|
@@ -62,52 +50,25 @@ SEO Ultimate is an all-in-one [SEO](http://www.seodesignsolutions.com/) plugin w
|
|
62 |
* Build internal links to your posts from within the WordPress post editor! Use "Instant Post Propulsion" technology to automatically link your old posts to new ones.
|
63 |
* Lets you enable "Silo Linking" mode so that posts only link to other posts in the same category.
|
64 |
|
65 |
-
* **
|
66 |
-
*
|
67 |
-
*
|
68 |
-
*
|
69 |
-
|
70 |
-
*
|
71 |
-
* Improve the visiting experience of users and spiders by keeping tabs on "page not found" errors. (Use a redirection plugin to point dead-end URLs to your content.)
|
72 |
-
* Find out what URLs are referring visitors to 404 errors.
|
73 |
-
* The default settings hone in on the most important errors by only logging 404s that either have a referring URL or are generated by a search engine spider.
|
74 |
-
* If desired, ignore 404s generated from specific URLs or wildcard URL patterns.
|
75 |
-
|
76 |
-
* **Linkbox Inserter**
|
77 |
-
* Encourage natural linkbuilding activity by adding textboxes to the end of your posts/pages that contain automatically-generated link HTML.
|
78 |
-
|
79 |
-
* **File Editor**
|
80 |
-
* Implement advanced SEO strategies with the `.htaccess` editor.
|
81 |
-
* Give instructions to search engines via the `robots.txt` editor.
|
82 |
-
|
83 |
-
* **Slug Optimizer**
|
84 |
-
* Increase in-URL keyword potency by removing "filler words" (like "the," "with," "and," etc.) from post/page URLs.
|
85 |
-
* Lets you customize the "filler words" list as desired.
|
86 |
-
|
87 |
-
* **More Link Customizer**
|
88 |
-
* SEO your posts' "read more" links by including the posts' keyword-rich titles in the anchor text.
|
89 |
-
* Override the "read more" link on a per-post basis.
|
90 |
-
* Include `<strong>` or `<em>` tags in the anchor text if so desired.
|
91 |
-
|
92 |
-
* **Code Inserter**
|
93 |
-
* Easily insert custom HTML into your site's `<head>` tag, footer, or item content.
|
94 |
-
* Use to add Google Analytics, Feedburner FeedFlare, Google AdSense section targeting, and other SEO/SEM-enhancing code snippets.
|
95 |
-
* Code remains even when switching themes.
|
96 |
|
97 |
-
* **Rich Snippet Creator**
|
98 |
* Easily add rich snippet code for reviews and places.
|
99 |
* Attract more search traffic with eye-catching supplementary SERP data.
|
100 |
* Supports the new Schema.org format used by Google, Bing, Yahoo, and Yandex.
|
101 |
|
102 |
-
* **
|
103 |
-
*
|
104 |
-
*
|
105 |
-
*
|
106 |
-
|
107 |
-
* **Webmaster Verification Assistant**
|
108 |
-
* Enter verification codes in the provided fields to access search engine webmaster tools.
|
109 |
|
110 |
-
* **Link Mask Generator**
|
111 |
* Generate robots.txt-blocked "link masks" (e.g. `www.example.com/go/google/`) that pass-through to an external URL.
|
112 |
* Mask links on a per-link, per-post basis so you can exert fine-tuned control over your posts' linkflow.
|
113 |
* Create global link masks that apply across your entire site.
|
@@ -115,56 +76,62 @@ SEO Ultimate is an all-in-one [SEO](http://www.seodesignsolutions.com/) plugin w
|
|
115 |
* Link masks provide a modern replacement for the deprecated, nofollow-based "PageRank Sculpting" technique.
|
116 |
* Perfect for affiliate marketers and SEO-savvy bloggers.
|
117 |
|
118 |
-
* **
|
119 |
-
*
|
|
|
|
|
120 |
|
121 |
-
* **
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
* Lets you remove the permalink base for categories, tags, and/or custom taxonomies.
|
123 |
* For example, enable category base removal to convert `http://example.com/category/example` into `http://example.com/example`, and then pair that with a `/%category%/%postname%/` permalink to enable some serious SEO siloing action.
|
124 |
* The "URL Conflict Resolution" setting lets you arbitrate between pages/terms when taxonomy base removal causes their URLs to conflict
|
125 |
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
* **SEO Ultimate Widgets**
|
127 |
* Lets you output your Deeplink Juggernaut Footer Links in a widget.
|
128 |
* The Siloed Categories widget makes it drag-and-drop-easy to construct siloed navigation on your site.
|
129 |
|
130 |
-
* **Settings Monitor**
|
131 |
-
* Keep tabs on the SEO-friendliness of your site's settings with a dashboard of green/yellow/red indicators.
|
132 |
-
|
133 |
-
* **Open Graph Integrator** -- UPDATED in Version 7.5
|
134 |
-
* Out-of-the-box functionality autogenerates Open Graph data for your homepage, posts, pages, attachments, custom post type objects, and user profile pages.
|
135 |
-
* Fine-grained controls allow you to customize the Open Graph title, image, and content type for every single post, page, attachment, and custom post type object on your site.
|
136 |
-
* Mass-editors let you specify Open Graph data for multiple posts and pages at a time.
|
137 |
-
* Includes support for summary-style and photo-style Twitter Cards.
|
138 |
-
|
139 |
-
* **Author Highlighter** -- NEW in Version 7.4
|
140 |
-
* Generates code so that when one of your site's posts appears in Google search results, the Google+ profile picture of the post's author will appear alongside it.
|
141 |
-
* Includes support for both single-author and multi-author site setups.
|
142 |
-
* Supports author highlighting for posts, pages, attachments, custom post types, the homepage, archive pages, and author pages.
|
143 |
-
* Inserts a "Google+ Profile URL" field on the WordPress user profile editor, so that users can insert their Google+ URL and enable author highlighting on their posts.
|
144 |
-
|
145 |
* **Plugin Settings Manager** (located under Settings > SEO Ultimate)
|
146 |
* Export your SEO Ultimate settings to a file and re-import later if desired.
|
147 |
* Use the export/import functionality to move SEO Ultimate settings between WordPress sites.
|
148 |
* Reset all settings back to "factory defaults" if something goes wrong.
|
149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
* **Additional features**
|
|
|
|
|
|
|
151 |
* Lets you import post meta from All in One SEO Pack.
|
152 |
-
*
|
|
|
153 |
* Supports [WordPress plugin translation](http://urbangiraffe.com/articles/translating-wordpress-themes-and-plugins/). POT file is included in the zip file.
|
154 |
-
* SEO Ultimate documentation is seamlessly integrated into the contextual help system of WordPress 2.7+ and is accessible via the dropdowns in the upper-right-hand corner of the admin screen. In-depth info, explanations, and FAQ are just a click away.
|
155 |
-
* Unlike certain other SEO plugins, SEO Ultimate sports a clean, simple, aesthetically-pleasing interface, with no ads or donation nags.
|
156 |
-
* SEO Ultimate cleanly integrates itself into WordPress without plastering its name all over the interface.
|
157 |
-
* Includes icon integration with the WordPress 2.7+ menu and the Ozh Admin Drop Down Menu plugin.
|
158 |
-
* Uses WordPress plugin security features like nonces, etc.
|
159 |
* Includes an uninstaller that can delete the plugin's files and database entries if desired.
|
160 |
-
* Lets you upgrade/downgrade the plugin to versions of your choosing.
|
161 |
-
|
162 |
-
* **More Features In the Works**
|
163 |
-
There are many additional features in development. Install SEO Ultimate today and use WordPress's automatic plugin updater to get new features as they're released.
|
164 |
|
165 |
[**Download**](http://downloads.wordpress.org/plugin/seo-ultimate.zip) **your free copy of SEO Ultimate today.**
|
166 |
|
167 |
-
[youtube http://www.youtube.com/watch?v=
|
168 |
|
169 |
== Installation ==
|
170 |
|
@@ -277,6 +244,22 @@ Frequently asked questions, settings help, and troubleshooting tips for SEO Ulti
|
|
277 |
|
278 |
== Changelog ==
|
279 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
280 |
= Version 7.5.7 (August 17, 2012) =
|
281 |
* Removed Feature: Open Graph Integrator no longer falls back to using webpage screenshot images from the WordPress.com mShots service, as this was causing "Generating Image" placeholders to be cached by Facebook
|
282 |
|
1 |
=== SEO Ultimate ===
|
2 |
Contributors: SEO Design Solutions, JohnLamansky
|
3 |
Tags: seo, SEO Ultimate, suite, google, yahoo, bing, search engines, admin, post, page, custom post types, categories, tags, terms, custom taxonomies, base, title, title tag, wp_title, meta, robots, noindex, nofollow, canonical, HTTP headers, 404, robots.txt, htaccess, slugs, url, anchor, more, link, excerpt, permalink, links, autolinks, code, footer, settings, redirect, 301, 302, 307, modules, uninstallable, reinstallable, downgradable, import, export, CSV, affiliate, Open Graph, og, microdata, Facebook, Twitter, Schema.org
|
4 |
+
Requires at least: 3.5
|
5 |
+
Tested up to: 3.5
|
6 |
+
Stable tag: 7.6
|
7 |
|
8 |
This all-in-one SEO plugin gives you control over title tags, noindex, meta tags, Open Graph, slugs, canonical, autolinks, 404 errors, rich snippets, and more.
|
9 |
|
11 |
|
12 |
= Recent Releases =
|
13 |
|
14 |
+
* Version 7.6 adds Deeplink Juggernaut autolink dampening
|
15 |
* Version 7.5 adds support for Twitter Cards, Schema.org, and place snippets
|
16 |
* Version 7.4 adds the Author Highlighter module
|
17 |
* Version 7.3 adds the Open Graph Integrator module
|
18 |
* Version 7.2 updates Permalink Tweaker
|
|
|
19 |
|
20 |
= Features =
|
21 |
|
28 |
* Format the `<title>` tags of posts, pages, categories, tags, archives, search results, and more!
|
29 |
* Choose between two rewrite methods: "output buffering" or "filtering"
|
30 |
|
31 |
+
* **Meta Description Editor**
|
32 |
* Edit the `<meta>` description tags for posts, pages, attachments, categories, tags, post format archives, and the homepage.
|
33 |
* Increase SERP clickthrough rates by influencing search engine result snippets.
|
34 |
* Mass-editor makes it a cinch to go back and add descriptions to old posts.
|
35 |
* Use the `{excerpt::autogen}` variable to auto-generate meta descriptions if desired.
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
* **Deeplink Juggernaut**
|
38 |
* Use the power of anchor text to boost your internal ranking SEO paradigm.
|
39 |
* Searches your site's content for anchor texts you specify and automatically links them to a destination of your choosing. Lets you easily build internal links to URLs, posts, pages, attachments, custom post type items, categories, terms, post format archives, and custom taxonomy term archives.
|
41 |
* Easily select autolink destinations using autocomplete textboxes that scour your site's content and taxonomy terms to find the link destination you're looking for.
|
42 |
* Autolinks point to the objects themselves, not to their URLs, so if you change the URL of a post or category on your site, the autolinks automatically adjust.
|
43 |
* Avoid over-optimization penalties by controlling the maximum number of autolinks added to each post/page, the maximum number of times an anchor is linked per post/page, and/or the maximum number of times a post/page can link to the same destination.
|
44 |
+
* Reduce autolink frequency by a given percentage (globally or per-link) with the frequency dampener feature. (Useful for large sites.)
|
45 |
* Choose whether or not posts can link to themselves and/or to the current URL with a few simple checkboxes.
|
46 |
* Apply the nofollow attribute on a per-link basis. (Perfect for automatic affiliate links.)
|
47 |
* Exclude specific posts/pages from having links added to them, if desired (e.g. contact pages, the homepage, etc.).
|
50 |
* Build internal links to your posts from within the WordPress post editor! Use "Instant Post Propulsion" technology to automatically link your old posts to new ones.
|
51 |
* Lets you enable "Silo Linking" mode so that posts only link to other posts in the same category.
|
52 |
|
53 |
+
* **Open Graph Integrator**
|
54 |
+
* Out-of-the-box functionality autogenerates Open Graph data for your homepage, posts, pages, attachments, custom post type objects, and user profile pages.
|
55 |
+
* Fine-grained controls allow you to customize the Open Graph title, image, and content type for every single post, page, attachment, and custom post type object on your site.
|
56 |
+
* Mass-editors let you specify Open Graph data for multiple posts and pages at a time.
|
57 |
+
* Includes support for summary-style and photo-style Twitter Cards.
|
58 |
+
* Lets you fix the official Facebook/Twitter HTML so that it validates as XHTML or HTML5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
|
60 |
+
* **Rich Snippet Creator**
|
61 |
* Easily add rich snippet code for reviews and places.
|
62 |
* Attract more search traffic with eye-catching supplementary SERP data.
|
63 |
* Supports the new Schema.org format used by Google, Bing, Yahoo, and Yandex.
|
64 |
|
65 |
+
* **Author Highlighter**
|
66 |
+
* Generates code so that when one of your site's posts appears in Google search results, the Google+ profile picture of the post's author will appear alongside it.
|
67 |
+
* Includes support for both single-author and multi-author site setups.
|
68 |
+
* Supports author highlighting for posts, pages, attachments, custom post types, the homepage, archive pages, and author pages.
|
69 |
+
* Inserts a "Google+ Profile URL" field on the WordPress user profile editor, so that users can insert their Google+ URL and enable author highlighting on their posts.
|
|
|
|
|
70 |
|
71 |
+
* **Link Mask Generator**
|
72 |
* Generate robots.txt-blocked "link masks" (e.g. `www.example.com/go/google/`) that pass-through to an external URL.
|
73 |
* Mask links on a per-link, per-post basis so you can exert fine-tuned control over your posts' linkflow.
|
74 |
* Create global link masks that apply across your entire site.
|
76 |
* Link masks provide a modern replacement for the deprecated, nofollow-based "PageRank Sculpting" technique.
|
77 |
* Perfect for affiliate marketers and SEO-savvy bloggers.
|
78 |
|
79 |
+
* **Canonicalizer**
|
80 |
+
* Point search engines to preferred content access points with `<link rel="canonical" />` head tags and/or `Link: <url>; rel="canonical"` HTTP headers.
|
81 |
+
* Go beyond WordPress's basic canonical tag functionality with SEO Ultimate's support for category/tag/date/author archives.
|
82 |
+
* Redirect requests for non-existent pagination with a simple checkbox.
|
83 |
|
84 |
+
* **404 Monitor**
|
85 |
+
* Improve the visiting experience of users and spiders by keeping tabs on "page not found" errors. (Use a redirection plugin to point dead-end URLs to your content.)
|
86 |
+
* Find out what URLs are referring visitors to 404 errors.
|
87 |
+
* The default settings hone in on the most important errors by only logging 404s that either have a referring URL or are generated by a search engine spider.
|
88 |
+
* If desired, ignore 404s generated from specific URLs or wildcard URL patterns.
|
89 |
+
|
90 |
+
* **Permalink Tweaker**
|
91 |
* Lets you remove the permalink base for categories, tags, and/or custom taxonomies.
|
92 |
* For example, enable category base removal to convert `http://example.com/category/example` into `http://example.com/example`, and then pair that with a `/%category%/%postname%/` permalink to enable some serious SEO siloing action.
|
93 |
* The "URL Conflict Resolution" setting lets you arbitrate between pages/terms when taxonomy base removal causes their URLs to conflict
|
94 |
|
95 |
+
* **Meta Robot Tags Editor**
|
96 |
+
* Add the `<meta name="robots" content="noindex,follow" />` tag to archives, comment feeds, the login page, and more.
|
97 |
+
* Set meta robots tags (index/noindex and follow/nofollow) for each individual post, page, category, tag, and post type archive on your blog. Also supports custom post types and custom taxonomies.
|
98 |
+
* Avoid duplicate content SEO issues with the recommended noindex settings (see built-in module documentation for details).
|
99 |
+
* Give instructions to search engine spiders if desired (`noodp`, `noydir`, and `noarchive`).
|
100 |
+
|
101 |
* **SEO Ultimate Widgets**
|
102 |
* Lets you output your Deeplink Juggernaut Footer Links in a widget.
|
103 |
* The Siloed Categories widget makes it drag-and-drop-easy to construct siloed navigation on your site.
|
104 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
* **Plugin Settings Manager** (located under Settings > SEO Ultimate)
|
106 |
* Export your SEO Ultimate settings to a file and re-import later if desired.
|
107 |
* Use the export/import functionality to move SEO Ultimate settings between WordPress sites.
|
108 |
* Reset all settings back to "factory defaults" if something goes wrong.
|
109 |
|
110 |
+
* And much more...
|
111 |
+
* **Code Inserter**: Easily insert SEO/SEM-enhancing custom HTML into your site's `<head>` tag, footer, or item content. Code remains even when switching themes.
|
112 |
+
* **File Editor**: Implement advanced SEO strategies with the `.htaccess` editor, and give instructions to search engines via the `robots.txt` editor.
|
113 |
+
* **Linkbox Inserter**: Encourage natural linkbuilding activity by adding textboxes to the end of your posts/pages that contain automatically-generated link HTML.
|
114 |
+
* **Meta Keywords Editor**: Auto-generate and edit `<meta>` keywords for posts, pages, categories, tags, terms, and the homepage.
|
115 |
+
* **More Link Customizer**: Optimize your posts' "read more" links by including the posts' keyword-rich titles in the anchor text.
|
116 |
+
* **Nofollow Manager**: Lets you maintain `rel="nofollow"` settings when migrating from other SEO plugins
|
117 |
+
* **Settings Monitor**: Keep tabs on the SEO-friendliness of your site's settings with a dashboard of green/yellow/red indicators.
|
118 |
+
* **Sharing Facilitator**: Adds buttons that make it easy for visitors to share your content on social networking sites (thus building links to your site).
|
119 |
+
* **Slug Optimizer**: Increase in-URL keyword potency by removing customizeable "filler words" (like "the," "with," "and," etc.) from post/page URLs.
|
120 |
+
* **Webmaster Verification Assistant**: Enter verification codes in the provided fields to access search engine webmaster tools.
|
121 |
+
|
122 |
* **Additional features**
|
123 |
+
* Features a clean, aesthetically-pleasing interface, with no donation nags.
|
124 |
+
* Cleanly integrates into the admin interface with minimal branding.
|
125 |
+
* Includes seamlessly-integrated documentation, accessible via the "Help" dropdown in the upper-right-hand corner of the admin screen. In-depth info, explanations, and FAQs are just a click away.
|
126 |
* Lets you import post meta from All in One SEO Pack.
|
127 |
+
* Lets you downgrade to the previous version of the plugin in case an upgrade goes awry.
|
128 |
+
* Displays admin notices if WordPress settings are configured to discourage search engines.
|
129 |
* Supports [WordPress plugin translation](http://urbangiraffe.com/articles/translating-wordpress-themes-and-plugins/). POT file is included in the zip file.
|
|
|
|
|
|
|
|
|
|
|
130 |
* Includes an uninstaller that can delete the plugin's files and database entries if desired.
|
|
|
|
|
|
|
|
|
131 |
|
132 |
[**Download**](http://downloads.wordpress.org/plugin/seo-ultimate.zip) **your free copy of SEO Ultimate today.**
|
133 |
|
134 |
+
[youtube http://www.youtube.com/watch?v=CZwZuUPCAto]
|
135 |
|
136 |
== Installation ==
|
137 |
|
244 |
|
245 |
== Changelog ==
|
246 |
|
247 |
+
= Version 7.6 (December 31, 2012) =
|
248 |
+
* Feature: Open Graph Integrator now lets you output W3C-valid XHTML or HTML5 instead of the non-validating code prescribed by Open Graph and Twitter
|
249 |
+
* Improvement: Deeplink Juggernaut's "Site Cap" feauture has been replaced with a more efficient "Dampener" feature
|
250 |
+
* Improvement: Open Graph Integrator no longer outputs author data for pages, and lets you turn it off for posts
|
251 |
+
* Improvement: Rich Snippet Creator now has an admin section that gives a brief explanation of how to use it, since some users were confused by the module's lack of an admin page and assumed it wasn't working
|
252 |
+
* Improvement: Link Mask Generator now disables itself and displays a warning if you're not using a compatible permalink structure
|
253 |
+
* Improvement: Added lots of missing documentation
|
254 |
+
* Improvement: Removed unused code throughout the plugin
|
255 |
+
* Bugfix: Open Graph Integrator no longer generates a fatal error when the active theme doesn't support post thumbnails
|
256 |
+
* Bugfix: Open Graph Integrator now outputs the correct URL on the "Posts page" when the "Front page displays" option (under Settings > Reading) is set to "A static page"
|
257 |
+
* Bugfix: Fixed errors that would appear when Meta Keywords Editor and the WP_DEBUG mode were both enabled
|
258 |
+
* Bugfix: Archive pages for new terms no longer generate 404 errors when Permalink Tweaker's base removal feature is in use
|
259 |
+
* Bugfix: The "Nofollow" checkbox on the "Miscellaneous" tab of the "SEO Settings" post editor box no longer reverts to an unchecked state when the post is saved
|
260 |
+
* Bugfix: The plugin no longer generates a "WordPress Database Error" after upgrading the plugin on sites with the WP_DEBUG mode enabled
|
261 |
+
* Compatibility: Fixed minor WordPress 3.5 compatibility issues
|
262 |
+
|
263 |
= Version 7.5.7 (August 17, 2012) =
|
264 |
* Removed Feature: Open Graph Integrator no longer falls back to using webpage screenshot images from the WordPress.com mShots service, as this was causing "Generating Image" placeholders to be cached by Facebook
|
265 |
|
seo-ultimate.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: SEO Ultimate
|
4 |
Plugin URI: http://www.seodesignsolutions.com/wordpress-seo/
|
5 |
Description: This all-in-one SEO plugin gives you control over title tags, noindex/nofollow, meta tags, rich snippets, slugs, canonical tags, autolinks, 404 errors, rich snippets, and more.
|
6 |
-
Version: 7.
|
7 |
Author: SEO Design Solutions
|
8 |
Author URI: http://www.seodesignsolutions.com/
|
9 |
Text Domain: seo-ultimate
|
@@ -12,7 +12,7 @@ Text Domain: seo-ultimate
|
|
12 |
/**
|
13 |
* The main SEO Ultimate plugin file.
|
14 |
* @package SeoUltimate
|
15 |
-
* @version 7.
|
16 |
* @link http://www.seodesignsolutions.com/wordpress-seo/ SEO Ultimate Homepage
|
17 |
*/
|
18 |
|
@@ -41,21 +41,21 @@ if (!defined('ABSPATH')) {
|
|
41 |
|
42 |
/********** CONSTANTS **********/
|
43 |
|
44 |
-
//The minimum version of WordPress required
|
|
|
45 |
define('SU_MINIMUM_WP_VER', '3.3');
|
46 |
|
47 |
//Reading plugin info from constants is faster than trying to parse it from the header above.
|
48 |
define('SU_PLUGIN_NAME', 'SEO Ultimate');
|
49 |
define('SU_PLUGIN_URI', 'http://www.seodesignsolutions.com/wordpress-seo/');
|
50 |
-
define('SU_VERSION', '7.
|
51 |
define('SU_AUTHOR', 'SEO Design Solutions');
|
52 |
define('SU_AUTHOR_URI', 'http://www.seodesignsolutions.com/');
|
53 |
-
define('SU_USER_AGENT', 'SeoUltimate/7.
|
54 |
|
55 |
/********** INCLUDES **********/
|
56 |
|
57 |
//Libraries
|
58 |
-
include 'includes/backcompat.php';
|
59 |
include 'includes/jlfunctions/jlfunctions.php';
|
60 |
include 'includes/jlwp/jlwp.php';
|
61 |
|
@@ -69,7 +69,7 @@ include 'modules/class.su-module.php';
|
|
69 |
include 'modules/class.su-importmodule.php';
|
70 |
|
71 |
|
72 |
-
/**********
|
73 |
|
74 |
global $wp_version;
|
75 |
if (version_compare($wp_version, SU_MINIMUM_WP_VER, '>=')) {
|
3 |
Plugin Name: SEO Ultimate
|
4 |
Plugin URI: http://www.seodesignsolutions.com/wordpress-seo/
|
5 |
Description: This all-in-one SEO plugin gives you control over title tags, noindex/nofollow, meta tags, rich snippets, slugs, canonical tags, autolinks, 404 errors, rich snippets, and more.
|
6 |
+
Version: 7.6
|
7 |
Author: SEO Design Solutions
|
8 |
Author URI: http://www.seodesignsolutions.com/
|
9 |
Text Domain: seo-ultimate
|
12 |
/**
|
13 |
* The main SEO Ultimate plugin file.
|
14 |
* @package SeoUltimate
|
15 |
+
* @version 7.6
|
16 |
* @link http://www.seodesignsolutions.com/wordpress-seo/ SEO Ultimate Homepage
|
17 |
*/
|
18 |
|
41 |
|
42 |
/********** CONSTANTS **********/
|
43 |
|
44 |
+
//The bare minimum version of WordPress required to run without generating a fatal error.
|
45 |
+
//SEO Ultimate will refuse to run if activated on a lower version of WP.
|
46 |
define('SU_MINIMUM_WP_VER', '3.3');
|
47 |
|
48 |
//Reading plugin info from constants is faster than trying to parse it from the header above.
|
49 |
define('SU_PLUGIN_NAME', 'SEO Ultimate');
|
50 |
define('SU_PLUGIN_URI', 'http://www.seodesignsolutions.com/wordpress-seo/');
|
51 |
+
define('SU_VERSION', '7.6');
|
52 |
define('SU_AUTHOR', 'SEO Design Solutions');
|
53 |
define('SU_AUTHOR_URI', 'http://www.seodesignsolutions.com/');
|
54 |
+
define('SU_USER_AGENT', 'SeoUltimate/7.6');
|
55 |
|
56 |
/********** INCLUDES **********/
|
57 |
|
58 |
//Libraries
|
|
|
59 |
include 'includes/jlfunctions/jlfunctions.php';
|
60 |
include 'includes/jlwp/jlwp.php';
|
61 |
|
69 |
include 'modules/class.su-importmodule.php';
|
70 |
|
71 |
|
72 |
+
/********** VERSION CHECK & INITIALIZATION **********/
|
73 |
|
74 |
global $wp_version;
|
75 |
if (version_compare($wp_version, SU_MINIMUM_WP_VER, '>=')) {
|
translations/seo-ultimate.pot
CHANGED
@@ -1,63 +1,39 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the same license as the SEO Ultimate package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: SEO Ultimate 7.
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/seo-ultimate\n"
|
7 |
-
"POT-Creation-Date:
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date:
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
|
15 |
-
#: includes/jlfunctions/str.php:
|
16 |
msgid "%s and %s"
|
17 |
msgstr ""
|
18 |
|
19 |
-
#: includes/jlfunctions/str.php:
|
20 |
msgid ", "
|
21 |
msgstr ""
|
22 |
|
23 |
-
#: includes/jlfunctions/str.php:
|
24 |
msgid "%s, and %s"
|
25 |
msgstr ""
|
26 |
|
27 |
-
#: includes/jlwp/functions.php:
|
28 |
-
msgid "Posts"
|
29 |
-
msgstr ""
|
30 |
-
|
31 |
-
#: includes/jlwp/functions.php:65
|
32 |
-
msgid "Post"
|
33 |
-
msgstr ""
|
34 |
-
|
35 |
-
#: includes/jlwp/functions.php:66
|
36 |
-
msgid "Pages"
|
37 |
-
msgstr ""
|
38 |
-
|
39 |
-
#: includes/jlwp/functions.php:66
|
40 |
-
msgid "Page"
|
41 |
-
msgstr ""
|
42 |
-
|
43 |
-
#: includes/jlwp/functions.php:67
|
44 |
-
msgid "Attachments"
|
45 |
-
msgstr ""
|
46 |
-
|
47 |
-
#: includes/jlwp/functions.php:67
|
48 |
-
msgid "Attachment"
|
49 |
-
msgstr ""
|
50 |
-
|
51 |
-
#: includes/jlwp/functions.php:96
|
52 |
msgctxt "post format"
|
53 |
msgid "Format"
|
54 |
msgstr ""
|
55 |
|
56 |
-
#: includes/jlwp/functions.php:
|
57 |
msgid "Post Format Archives"
|
58 |
msgstr ""
|
59 |
|
60 |
-
#: includes/jlwp/functions.php:
|
61 |
msgid "backup your database"
|
62 |
msgstr ""
|
63 |
|
@@ -69,89 +45,89 @@ msgstr ""
|
|
69 |
msgid "Log"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: modules/404s/fofs-log.php:
|
73 |
msgid "Actions"
|
74 |
msgstr ""
|
75 |
|
76 |
-
#: modules/404s/fofs-log.php:
|
77 |
msgid "Hits"
|
78 |
msgstr ""
|
79 |
|
80 |
-
#: modules/404s/fofs-log.php:
|
81 |
msgid "URL with 404 Error"
|
82 |
msgstr ""
|
83 |
|
84 |
-
#: modules/404s/fofs-log.php:
|
85 |
msgid "Date of Most Recent Hit"
|
86 |
msgstr ""
|
87 |
|
88 |
-
#: modules/404s/fofs-log.php:
|
89 |
msgid "Referers"
|
90 |
msgstr ""
|
91 |
|
92 |
-
#: modules/404s/fofs-log.php:
|
93 |
msgid "User Agents"
|
94 |
msgstr ""
|
95 |
|
96 |
-
#: modules/404s/fofs-log.php:
|
97 |
msgid ""
|
98 |
"New 404 errors will not be recorded because 404 logging is disabled on the "
|
99 |
"Settings tab."
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: modules/404s/fofs-log.php:
|
103 |
msgid "The log entry was successfully deleted."
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: modules/404s/fofs-log.php:
|
107 |
msgid "This log entry has already been deleted."
|
108 |
msgstr ""
|
109 |
|
110 |
-
#: modules/404s/fofs-log.php:
|
111 |
msgid "The log was successfully cleared."
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: modules/404s/fofs-log.php:
|
115 |
msgid "No 404 errors in the log."
|
116 |
msgstr ""
|
117 |
|
118 |
-
#: modules/404s/fofs-log.php:
|
119 |
msgid "Open URL in new window (will not be logged)"
|
120 |
msgstr ""
|
121 |
|
122 |
-
#: modules/404s/fofs-log.php:
|
123 |
msgid "Query Google for cached version of URL (opens in new window)"
|
124 |
msgstr ""
|
125 |
|
126 |
-
#: modules/404s/fofs-log.php:
|
127 |
msgid "Remove this URL from the log"
|
128 |
msgstr ""
|
129 |
|
130 |
-
#: modules/404s/fofs-log.php:
|
131 |
msgid "%s at %s"
|
132 |
msgstr ""
|
133 |
|
134 |
-
#: modules/404s/fofs-log.php:
|
135 |
msgid "View list of referring URLs"
|
136 |
msgstr ""
|
137 |
|
138 |
-
#: modules/404s/fofs-log.php:
|
139 |
msgid "View list of user agents"
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: modules/404s/fofs-log.php:
|
143 |
msgid "Referring URLs"
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: modules/404s/fofs-log.php:
|
147 |
msgid "Hide list"
|
148 |
msgstr ""
|
149 |
|
150 |
-
#: modules/404s/fofs-log.php:
|
151 |
msgid "Are you sure you want to delete all 404 log entries?"
|
152 |
msgstr ""
|
153 |
|
154 |
-
#: modules/404s/fofs-log.php:
|
155 |
msgid "Clear Log"
|
156 |
msgstr ""
|
157 |
|
@@ -160,8 +136,8 @@ msgid "404 Monitor Settings"
|
|
160 |
msgstr ""
|
161 |
|
162 |
#: modules/404s/fofs-settings.php:17
|
163 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
164 |
-
#: modules/titles/titles.php:40
|
165 |
msgid "Settings"
|
166 |
msgstr ""
|
167 |
|
@@ -205,15 +181,21 @@ msgstr ""
|
|
205 |
msgid "404 Monitor"
|
206 |
msgstr ""
|
207 |
|
208 |
-
#: modules/404s/fofs.php:19 modules/
|
209 |
-
#: modules/
|
210 |
-
#: modules/
|
211 |
-
#: modules/
|
212 |
-
#: modules/
|
|
|
|
|
|
|
213 |
#: modules/more-links/more-links.php:104 modules/more-links/more-links.php:111
|
214 |
-
#: modules/
|
|
|
|
|
215 |
#: modules/settings/settings.php:63
|
216 |
-
#: modules/sharing-buttons/sharing-buttons.php:
|
|
|
217 |
#: modules/slugs/slugs.php:120 modules/titles/titles.php:357
|
218 |
#: modules/user-code/user-code.php:97
|
219 |
msgid "Overview"
|
@@ -253,25 +235,32 @@ msgid ""
|
|
253 |
"<p>You can perform the following actions on each entry in the log:</p>\r\n"
|
254 |
"\r\n"
|
255 |
"<ul>\r\n"
|
256 |
-
"\t<li>
|
257 |
-
"
|
258 |
-
"\t<li>
|
259 |
-
"
|
260 |
-
"
|
261 |
-
"\t<li>Once you've taken care of a 404 error, you can click the
|
262 |
-
"
|
263 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
264 |
"</ul>\r\n"
|
|
|
|
|
|
|
265 |
msgstr ""
|
266 |
|
267 |
-
#: modules/404s/fofs.php:
|
268 |
-
#: modules/linkbox/linkbox.php:140
|
269 |
-
#: modules/meta/meta-keywords.php:180 modules/meta/meta-robots.php:63
|
270 |
-
#: modules/rich-snippets/rich-snippets.php:405
|
271 |
msgid "Settings Help"
|
272 |
msgstr ""
|
273 |
|
274 |
-
#: modules/404s/fofs.php:
|
275 |
msgid ""
|
276 |
"\r\n"
|
277 |
"<p>The following options are available on the Settings tab:</p>\r\n"
|
@@ -316,16 +305,17 @@ msgid ""
|
|
316 |
"</ul>\r\n"
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: modules/404s/fofs.php:
|
320 |
-
#: modules/
|
321 |
-
#: modules/meta/meta-robots.php:102
|
322 |
-
#: modules/rich-snippets/rich-snippets.php:414
|
323 |
-
#: modules/
|
|
|
324 |
#: modules/user-code/user-code.php:111
|
325 |
msgid "Troubleshooting"
|
326 |
msgstr ""
|
327 |
|
328 |
-
#: modules/404s/fofs.php:
|
329 |
msgid ""
|
330 |
"\r\n"
|
331 |
"<p>404 Monitor doesn't appear to work? Take these notes into consideration:</"
|
@@ -384,6 +374,340 @@ msgstr ""
|
|
384 |
msgid "Deeplink Juggernaut"
|
385 |
msgstr ""
|
386 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
387 |
#: modules/autolinks/content-autolinks-settings.php:16
|
388 |
msgid "Content Deeplink Juggernaut Settings"
|
389 |
msgstr ""
|
@@ -392,43 +716,33 @@ msgstr ""
|
|
392 |
msgid "Content Link Settings"
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: modules/autolinks/content-autolinks-settings.php:
|
396 |
msgid "Add Autolinks to..."
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: modules/autolinks/content-autolinks-settings.php:
|
400 |
-
msgid "Allow posts to link to themselves
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: modules/autolinks/content-autolinks-settings.php:
|
404 |
msgid ""
|
405 |
-
"Allow posts to link to the URL by which the visitor is accessing the post
|
406 |
msgstr ""
|
407 |
|
408 |
-
#: modules/autolinks/content-autolinks-settings.php:
|
409 |
msgid "Self-Linking"
|
410 |
msgstr ""
|
411 |
|
412 |
-
#: modules/autolinks/content-autolinks-settings.php:
|
413 |
-
msgid "Enable per-link customization of quantity limits."
|
414 |
-
msgstr ""
|
415 |
-
|
416 |
-
#: modules/autolinks/content-autolinks-settings.php:49
|
417 |
msgid "Don’t add any more than %d autolinks per post/page/etc."
|
418 |
msgstr ""
|
419 |
|
420 |
-
#: modules/autolinks/content-autolinks-settings.php:
|
421 |
msgid ""
|
422 |
"Don’t link the same anchor text any more than %d times per post/page/"
|
423 |
"etc."
|
424 |
msgstr ""
|
425 |
|
426 |
-
#: modules/autolinks/content-autolinks-settings.php:51
|
427 |
-
msgid ""
|
428 |
-
"Don’t link the same anchor text any more than %d times across my "
|
429 |
-
"entire site."
|
430 |
-
msgstr ""
|
431 |
-
|
432 |
#: modules/autolinks/content-autolinks-settings.php:52
|
433 |
msgid ""
|
434 |
"Don’t link to the same destination any more than %d times per post/"
|
@@ -439,106 +753,139 @@ msgstr ""
|
|
439 |
msgid "Quantity Restrictions"
|
440 |
msgstr ""
|
441 |
|
442 |
-
#: modules/autolinks/content-autolinks-settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
443 |
msgid ""
|
444 |
"Don’t add autolinks to text within these HTML tags <em>(separate with "
|
445 |
"commas)</em>:"
|
446 |
msgstr ""
|
447 |
|
448 |
-
#: modules/autolinks/content-autolinks-settings.php:
|
449 |
msgid "Tag Restrictions"
|
450 |
msgstr ""
|
451 |
|
452 |
-
#: modules/autolinks/content-autolinks-settings.php:
|
453 |
msgid "%s can only link to internal destinations that share at least one..."
|
454 |
msgstr ""
|
455 |
|
456 |
-
#: modules/autolinks/content-autolinks-settings.php:
|
457 |
msgid "Siloing"
|
458 |
msgstr ""
|
459 |
|
460 |
-
#: modules/autolinks/content-autolinks-settings.php:
|
461 |
msgid "CSS Class for Autolinks"
|
462 |
msgstr ""
|
463 |
|
464 |
-
#: modules/autolinks/content-autolinks.php:
|
465 |
msgid "Content Deeplink Juggernaut"
|
466 |
msgstr ""
|
467 |
|
468 |
-
#: modules/autolinks/content-autolinks.php:
|
469 |
msgid "Content Links"
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: modules/autolinks/content-autolinks.php:
|
473 |
msgid ""
|
474 |
"The Content Links section of Deeplink Juggernaut lets you automatically link "
|
475 |
"a certain word or phrase in your post/page content to a URL you specify."
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: modules/autolinks/content-autolinks.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
479 |
#: modules/autolinks/footer-autolinks.php:157
|
480 |
msgid "Edit Existing Links"
|
481 |
msgstr ""
|
482 |
|
483 |
-
#: modules/autolinks/content-autolinks.php:
|
484 |
#: modules/autolinks/footer-autolinks.php:161
|
485 |
msgid "Add a New Link"
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: modules/autolinks/content-autolinks.php:
|
489 |
#: modules/autolinks/footer-autolinks.php:171
|
490 |
msgid "Anchor Text"
|
491 |
msgstr ""
|
492 |
|
493 |
-
#: modules/autolinks/content-autolinks.php:
|
494 |
#: modules/autolinks/footer-autolinks.php:172
|
495 |
msgid "Destination"
|
496 |
msgstr ""
|
497 |
|
498 |
-
#: modules/autolinks/content-autolinks.php:
|
499 |
#: modules/autolinks/footer-autolinks.php:173
|
500 |
-
msgid "Title Attribute"
|
|
|
|
|
|
|
|
|
501 |
msgstr ""
|
502 |
|
503 |
-
#: modules/autolinks/content-autolinks.php:
|
504 |
msgid "Site Cap"
|
505 |
msgstr ""
|
506 |
|
507 |
-
#: modules/autolinks/content-autolinks.php:
|
508 |
#: modules/autolinks/footer-autolinks.php:174
|
509 |
msgid "Options"
|
510 |
msgstr ""
|
511 |
|
512 |
-
#: modules/autolinks/content-autolinks.php:
|
513 |
#: modules/autolinks/footer-autolinks.php:176
|
514 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
515 |
msgid "Delete"
|
516 |
msgstr ""
|
517 |
|
518 |
-
#: modules/autolinks/content-autolinks.php:
|
519 |
#: modules/autolinks/footer-autolinks.php:210 modules/noindex/noindex.php:61
|
520 |
#: modules/noindex/noindex.php:85
|
521 |
msgid "Nofollow"
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: modules/autolinks/content-autolinks.php:
|
525 |
#: modules/autolinks/footer-autolinks.php:212
|
526 |
msgid "New window"
|
527 |
msgstr ""
|
528 |
|
529 |
-
#: modules/autolinks/content-autolinks.php:
|
530 |
msgid "Inbound Autolink Anchors:<br /><em>(one per line)</em>"
|
531 |
msgstr ""
|
532 |
|
533 |
-
#: modules/autolinks/content-autolinks.php:
|
534 |
msgid "Don’t add autolinks to anchor texts found in this post."
|
535 |
msgstr ""
|
536 |
|
537 |
-
#: modules/autolinks/content-autolinks.php:
|
538 |
msgid "Autolink Exclusion:"
|
539 |
msgstr ""
|
540 |
|
541 |
-
#: modules/autolinks/content-autolinks.php:
|
542 |
msgid ""
|
543 |
"<strong>Incoming Autolink Anchors</strong> — When you enter anchors "
|
544 |
"into this box, Deeplink Juggernaut will search for that anchor in all your "
|
@@ -585,7 +932,7 @@ msgid "Footer Links"
|
|
585 |
msgstr ""
|
586 |
|
587 |
#: modules/autolinks/footer-autolinks.php:169
|
588 |
-
msgid "Link Location (optional)"
|
589 |
msgstr ""
|
590 |
|
591 |
#: modules/autolinks/footer-autolinks.php:197
|
@@ -596,7 +943,7 @@ msgstr ""
|
|
596 |
msgid "Negative match"
|
597 |
msgstr ""
|
598 |
|
599 |
-
#: modules/canonical/canonical.php:12 modules/canonical/canonical.php:
|
600 |
msgid "Canonicalizer"
|
601 |
msgstr ""
|
602 |
|
@@ -639,36 +986,21 @@ msgstr ""
|
|
639 |
msgid "Automated 301 Redirects"
|
640 |
msgstr ""
|
641 |
|
642 |
-
#: modules/canonical/canonical.php:
|
643 |
msgid ""
|
644 |
"\r\n"
|
645 |
"<ul>\r\n"
|
646 |
-
"\t<li
|
647 |
-
"\t\t<p><strong>What it does:</strong> Canonicalizer improves on two "
|
648 |
-
"WordPress features to minimize possible exact-content duplication penalties. "
|
649 |
-
"The <code><link rel="canonical" /></code> tags setting "
|
650 |
-
"improves on the canonical tags feature of WordPress 2.9 and above by "
|
651 |
-
"encompassing much more of your site than just your posts and Pages.</p>\r\n"
|
652 |
-
"\t\t<p>The nonexistent pagination redirect feature fills a gap in "
|
653 |
-
"WordPress's built-in canonicalization functionality: for example, if a URL "
|
654 |
-
"request is made for page 6 of a category archive, and that category doesn't "
|
655 |
-
"have a page 6, then by default, depending on the context, WordPress will "
|
656 |
-
"display a blank page, or it will display the content of the closest page "
|
657 |
-
"number available, without issuing a 404 error or a 301 redirect (thus "
|
658 |
-
"creating two or more identical webpages). This duplicate-content situation "
|
659 |
-
"can happen when you, for example, remove many posts from a category, thus "
|
660 |
-
"reducing the amount of pagination needed in the category's archive. The "
|
661 |
-
"Canonicalizer's feature fixes that behavior by issuing 301 redirects to page "
|
662 |
-
"1 of the paginated section in question.</p>\r\n"
|
663 |
-
"\t</li>\r\n"
|
664 |
-
"\t<li><strong>Why it helps:</strong> These features will point Google to the "
|
665 |
"correct URL for your homepage and each of your posts, Pages, categories, "
|
666 |
-
"tags, date archives, and author archives
|
667 |
-
"
|
668 |
-
"
|
669 |
-
"pages on
|
670 |
-
"\
|
671 |
-
"
|
|
|
|
|
|
|
672 |
"</ul>\r\n"
|
673 |
msgstr ""
|
674 |
|
@@ -784,109 +1116,109 @@ msgid_plural ""
|
|
784 |
msgstr[0] ""
|
785 |
msgstr[1] ""
|
786 |
|
787 |
-
#: modules/class.su-module.php:
|
788 |
msgid ""
|
789 |
"All the modules on this page have been disabled. You can re-enable them "
|
790 |
"using the <a href=\"%s\">Module Manager</a>."
|
791 |
msgstr ""
|
792 |
|
793 |
-
#: modules/class.su-module.php:
|
794 |
msgid "%1$s | %2$s %3$s by %4$s"
|
795 |
msgstr ""
|
796 |
|
797 |
-
#: modules/class.su-module.php:
|
798 |
msgid "Your site currently doesn’t have any public items of this type."
|
799 |
msgstr ""
|
800 |
|
801 |
-
#: modules/class.su-module.php:
|
802 |
msgid "«"
|
803 |
msgstr ""
|
804 |
|
805 |
-
#: modules/class.su-module.php:
|
806 |
msgid "»"
|
807 |
msgstr ""
|
808 |
|
809 |
-
#: modules/class.su-module.php:
|
810 |
msgid "Displaying %s–%s of %s"
|
811 |
msgstr ""
|
812 |
|
813 |
-
#: modules/class.su-module.php:
|
814 |
msgid "ID"
|
815 |
msgstr ""
|
816 |
|
817 |
-
#: modules/class.su-module.php:
|
818 |
msgid "View"
|
819 |
msgstr ""
|
820 |
|
821 |
-
#: modules/class.su-module.php:
|
822 |
msgid "Edit"
|
823 |
msgstr ""
|
824 |
|
825 |
-
#: modules/class.su-module.php:
|
826 |
msgid "Settings updated."
|
827 |
msgstr ""
|
828 |
|
829 |
-
#: modules/class.su-module.php:
|
830 |
msgid "Save Changes"
|
831 |
msgstr ""
|
832 |
|
833 |
-
#: modules/class.su-module.php:
|
834 |
msgid ""
|
835 |
"Are you sure you want to replace the textbox contents with this default "
|
836 |
"value?"
|
837 |
msgstr ""
|
838 |
|
839 |
-
#: modules/class.su-module.php:
|
840 |
msgid "Reset"
|
841 |
msgstr ""
|
842 |
|
843 |
-
#: modules/class.su-module.php:
|
844 |
msgid "A Deleted %s"
|
845 |
msgstr ""
|
846 |
|
847 |
-
#: modules/class.su-module.php:
|
848 |
msgid "A Deleted Post"
|
849 |
msgstr ""
|
850 |
|
851 |
-
#: modules/class.su-module.php:
|
852 |
msgid "A Deleted Term"
|
853 |
msgstr ""
|
854 |
|
855 |
-
#: modules/class.su-module.php:
|
856 |
-
#: modules/meta/meta-keywords.php:40 modules/opengraph/opengraph.php:
|
857 |
-
#: plugin/class.seo-ultimate.php:
|
858 |
msgid "Blog Homepage"
|
859 |
msgstr ""
|
860 |
|
861 |
-
#: modules/class.su-module.php:
|
862 |
msgid "Author"
|
863 |
msgstr ""
|
864 |
|
865 |
-
#: modules/class.su-module.php:
|
866 |
msgid "A Deleted User"
|
867 |
msgstr ""
|
868 |
|
869 |
-
#: modules/class.su-module.php:
|
870 |
msgid "Link Mask"
|
871 |
msgstr ""
|
872 |
|
873 |
-
#: modules/class.su-module.php:
|
874 |
msgid "Link Mask (Disabled)"
|
875 |
msgstr ""
|
876 |
|
877 |
-
#: modules/class.su-module.php:
|
878 |
msgid "A Deleted Link Mask"
|
879 |
msgstr ""
|
880 |
|
881 |
-
#: modules/class.su-module.php:
|
882 |
msgid "Type a URL or start typing the name of an item on your site"
|
883 |
msgstr ""
|
884 |
|
885 |
-
#: modules/class.su-module.php:
|
886 |
msgid "Remove this location from this textbox"
|
887 |
msgstr ""
|
888 |
|
889 |
-
#: modules/class.su-module.php:
|
890 |
msgid "X"
|
891 |
msgstr ""
|
892 |
|
@@ -941,8 +1273,9 @@ msgstr ""
|
|
941 |
|
942 |
#: modules/files/files.php:134
|
943 |
msgid ""
|
944 |
-
"Please note that
|
945 |
-
"robots.txt file, since you’re
|
|
|
946 |
msgstr ""
|
947 |
|
948 |
#: modules/files/files.php:145
|
@@ -963,14 +1296,6 @@ msgid ""
|
|
963 |
"</ul>\r\n"
|
964 |
msgstr ""
|
965 |
|
966 |
-
#: modules/files/files.php:155 modules/meta/meta-descriptions.php:216
|
967 |
-
#: modules/meta/meta-keywords.php:190 modules/modules/modules.php:190
|
968 |
-
#: modules/more-links/more-links.php:105 modules/more-links/more-links.php:116
|
969 |
-
#: modules/settings/settings.php:81 modules/slugs/slugs.php:113
|
970 |
-
#: modules/slugs/slugs.php:125 modules/titles/titles.php:468
|
971 |
-
msgid "FAQ"
|
972 |
-
msgstr ""
|
973 |
-
|
974 |
#: modules/files/files.php:156
|
975 |
msgid ""
|
976 |
"\r\n"
|
@@ -1041,76 +1366,167 @@ msgid ""
|
|
1041 |
"first and run AIOSP’s upgrade process."
|
1042 |
msgstr ""
|
1043 |
|
1044 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1045 |
msgid "Link Mask Generator"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1049 |
msgid "Aliases"
|
1050 |
msgstr ""
|
1051 |
|
1052 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1053 |
msgid "Edit Existing Aliases"
|
1054 |
msgstr ""
|
1055 |
|
1056 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1057 |
msgid "Add a New Alias"
|
1058 |
msgstr ""
|
1059 |
|
1060 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1061 |
msgid "Actual URL"
|
1062 |
msgstr ""
|
1063 |
|
1064 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1065 |
msgid "Alias URL"
|
1066 |
msgstr ""
|
1067 |
|
1068 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1069 |
-
msgid "Only on This Post… (optional)"
|
1070 |
msgstr ""
|
1071 |
|
1072 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1073 |
msgid "Test"
|
1074 |
msgstr ""
|
1075 |
|
1076 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1077 |
msgid "Alias Directory"
|
1078 |
msgstr ""
|
1079 |
|
1080 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1081 |
-
msgid "Nofollow
|
1082 |
msgstr ""
|
1083 |
|
1084 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1085 |
msgid "Link Attributes"
|
1086 |
msgstr ""
|
1087 |
|
1088 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1089 |
msgid "Link Masks:"
|
1090 |
msgstr ""
|
1091 |
|
1092 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1093 |
msgid "URL"
|
1094 |
msgstr ""
|
1095 |
|
1096 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1097 |
msgid "Mask URL"
|
1098 |
msgstr ""
|
1099 |
|
1100 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1101 |
msgid ""
|
1102 |
"You can stop search engines from following a link by typing in a mask for "
|
1103 |
"its URL."
|
1104 |
msgstr ""
|
1105 |
|
1106 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1107 |
msgid "Added by SEO Ultimate's Link Mask Generator module"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
-
#: modules/internal-link-aliases/internal-link-aliases.php:
|
1111 |
msgid "End Link Mask Generator output"
|
1112 |
msgstr ""
|
1113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1114 |
#: modules/link-nofollow/link-nofollow.php:12
|
1115 |
#: modules/link-nofollow/link-nofollow.php:132
|
1116 |
msgid "Nofollow Manager"
|
@@ -1355,6 +1771,10 @@ msgid ""
|
|
1355 |
"</ul>\r\n"
|
1356 |
msgstr ""
|
1357 |
|
|
|
|
|
|
|
|
|
1358 |
#: modules/meta/meta-descriptions.php:205
|
1359 |
msgid ""
|
1360 |
"\r\n"
|
@@ -1363,11 +1783,11 @@ msgid ""
|
|
1363 |
"<ul>\r\n"
|
1364 |
"\t<li><strong>Blog Homepage Meta Description</strong> — When your blog "
|
1365 |
"homepage appears in search results, it’ll have a title and a "
|
1366 |
-
"description. When you
|
1367 |
-
"
|
1368 |
-
"
|
1369 |
-
"
|
1370 |
-
"
|
1371 |
"\t<li><strong>Use this blog’s tagline as the default homepage "
|
1372 |
"description.</strong> — If this box is checked and if the Blog "
|
1373 |
"Homepage Meta Description field is empty, Meta Editor will use your "
|
@@ -1382,17 +1802,15 @@ msgid ""
|
|
1382 |
"\r\n"
|
1383 |
"<ul>\r\n"
|
1384 |
"\t<li><strong>How do I edit the meta description of my homepage?</"
|
1385 |
-
"strong><br />If you
|
1386 |
-
"
|
1387 |
-
"
|
1388 |
-
"
|
1389 |
-
"
|
1390 |
-
"the “Pages” tab.</li>\r\n"
|
1391 |
"</ul>\r\n"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
-
#: modules/meta/meta-descriptions.php:226
|
1395 |
-
#: modules/meta/meta-robots.php:103
|
1396 |
msgid ""
|
1397 |
"\r\n"
|
1398 |
"<ul>\r\n"
|
@@ -1405,10 +1823,11 @@ msgid ""
|
|
1405 |
"\t\t<p>If the problem persists, try disabling other SEO plugins that may be "
|
1406 |
"generating meta tags.</p>\r\n"
|
1407 |
"\t\t<p>Troubleshooting tip: Go to <a href='options-general.php?page=seo-"
|
1408 |
-
"ultimate'>Settings ⇒ SEO Ultimate</a> and enable the “
|
1409 |
-
"
|
1410 |
-
"Ultimate’s meta tags with comments,
|
1411 |
-
"tags are generated by SEO Ultimate and which
|
|
|
1412 |
"\t</li>\r\n"
|
1413 |
"</ul>\r\n"
|
1414 |
msgstr ""
|
@@ -1422,12 +1841,12 @@ msgid "Meta Keywords"
|
|
1422 |
msgstr ""
|
1423 |
|
1424 |
#: modules/meta/meta-keywords.php:38 modules/meta/meta-robots.php:22
|
1425 |
-
#: modules/opengraph/opengraph.php:
|
1426 |
msgid "Sitewide Values"
|
1427 |
msgstr ""
|
1428 |
|
1429 |
#: modules/meta/meta-keywords.php:39 modules/noindex/noindex.php:50
|
1430 |
-
#: modules/opengraph/opengraph.php:
|
1431 |
msgid "Default Values"
|
1432 |
msgstr ""
|
1433 |
|
@@ -1447,30 +1866,39 @@ msgstr ""
|
|
1447 |
msgid "Blog Homepage Meta Keywords"
|
1448 |
msgstr ""
|
1449 |
|
1450 |
-
#: modules/meta/meta-keywords.php:
|
1451 |
msgid "Meta Keywords:<br /><em>(separate with commas)</em>"
|
1452 |
msgstr ""
|
1453 |
|
1454 |
-
#: modules/meta/meta-keywords.php:
|
1455 |
msgid ""
|
1456 |
"\r\n"
|
1457 |
"<p>Meta Keywords Editor lets you tell search engines what keywords are "
|
1458 |
"associated with the various pages on your site. Modern search engines "
|
1459 |
-
"don’t give meta keywords much weight, but the option is
|
1460 |
-
"want to use it
|
1461 |
-
"page by using the textboxes that Meta Editor adds to the post/page editors.</"
|
1462 |
-
"p>\r\n"
|
1463 |
msgstr ""
|
1464 |
|
1465 |
-
#: modules/meta/meta-keywords.php:
|
|
|
|
|
|
|
|
|
1466 |
msgid ""
|
1467 |
"\r\n"
|
1468 |
"<ul>\r\n"
|
1469 |
"\t<li><strong>Sitewide Keywords</strong> — Here you can enter keywords "
|
1470 |
-
"that describe the overall subject matter of your entire blog. Use
|
1471 |
"separate keywords. These keywords will be put in the <code>>meta "
|
1472 |
"name="keywords" /></code> tags of all webpages on the site "
|
1473 |
"(homepage, posts, pages, archives, etc.).</li>\r\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1474 |
"\t<li><strong>Blog Homepage Meta Keywords</strong> — These keywords "
|
1475 |
"will be applied only to the <em>blog</em> homepage. Note that if you’"
|
1476 |
"ve specified a “front page” under <a href='options-reading."
|
@@ -1479,26 +1907,42 @@ msgid ""
|
|
1479 |
"</ul>\r\n"
|
1480 |
msgstr ""
|
1481 |
|
1482 |
-
#: modules/meta/meta-keywords.php:
|
1483 |
msgid ""
|
1484 |
"\r\n"
|
1485 |
"<ul>\r\n"
|
1486 |
-
"\t<li
|
1487 |
-
"
|
1488 |
-
">
|
1489 |
-
"
|
1490 |
-
"
|
1491 |
-
"\t\t<p>If you have configured your <a href='options-reading.php'>Settings "
|
1492 |
-
"⇒ Reading</a> section to use a “frontpage” (i.e. a Page as "
|
1493 |
-
"your homepage), just edit that Page and use the “Meta Keywords” "
|
1494 |
-
"field in the “SEO Settings” box.</p>\r\n"
|
1495 |
-
"\t</li>\r\n"
|
1496 |
"\t<li><strong>What happens if I add a global keyword that I previously "
|
1497 |
"assigned to individual posts or pages?</strong><br />Don’t worry; Meta "
|
1498 |
"Keywords Editor will remove duplicate keywords automatically.</li>\r\n"
|
1499 |
"</ul>\r\n"
|
1500 |
msgstr ""
|
1501 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1502 |
#: modules/meta/meta-robots.php:12
|
1503 |
msgid "Meta Robot Tags Editor"
|
1504 |
msgstr ""
|
@@ -1556,76 +2000,80 @@ msgstr ""
|
|
1556 |
#: modules/meta/meta-robots.php:64
|
1557 |
msgid ""
|
1558 |
"\r\n"
|
1559 |
-
"<p>Here’s information on the various settings:</p>\r\n"
|
1560 |
-
"\r\n"
|
1561 |
"<ul>\r\n"
|
1562 |
-
"\t<li
|
1563 |
-
"
|
1564 |
-
"
|
1565 |
-
"
|
1566 |
-
"
|
1567 |
-
"
|
1568 |
-
"
|
1569 |
-
"
|
1570 |
-
"
|
1571 |
-
"
|
1572 |
-
"
|
1573 |
-
"
|
1574 |
-
"\t\t\t<li>Don’t cache or archive this site.</li> — When you "
|
1575 |
-
"check this box, Meta Editor will ask search engines (Google, Yahoo!, Bing, "
|
1576 |
-
"etc.) and archivers (Archive.org, etc.) to <em>not</em> make cached or "
|
1577 |
"archived “copies” of your site.</li>\r\n"
|
1578 |
-
"
|
1579 |
-
"
|
1580 |
-
|
1581 |
-
|
1582 |
-
"
|
1583 |
-
|
1584 |
-
|
1585 |
-
|
1586 |
-
"
|
1587 |
-
"\t\t\t<li><strong>Author archives</strong> — Tells spiders not to "
|
1588 |
-
"index author archives. Useful if your blog only has one author.</li>\r\n"
|
1589 |
-
"\t\t\t<li><strong>Blog search pages</strong> — Tells spiders not to "
|
1590 |
-
"index the result pages of WordPress's blog search function. Recommended.</li>"
|
1591 |
-
"\r\n"
|
1592 |
-
"\t\t\t<li><strong>Category archives</strong> — Tells spiders not to "
|
1593 |
-
"index category archives. Recommended only if you don't use categories.</li>"
|
1594 |
"\r\n"
|
1595 |
-
"
|
1596 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1597 |
"totally separate from your normal blog feeds.)</li>\r\n"
|
1598 |
-
"\t
|
1599 |
-
"
|
1600 |
-
"\t
|
1601 |
"index day/month/year archives. Recommended, since these pages have little "
|
1602 |
"keyword value.</li>\r\n"
|
1603 |
-
"\t
|
1604 |
-
"
|
|
|
|
|
|
|
|
|
1605 |
"\r\n"
|
1606 |
-
"\
|
1607 |
-
|
1608 |
-
|
1609 |
-
|
1610 |
-
"
|
1611 |
-
"
|
1612 |
-
|
1613 |
-
|
1614 |
-
"
|
1615 |
-
"\
|
1616 |
-
"
|
1617 |
-
"
|
1618 |
-
"
|
1619 |
-
"
|
1620 |
-
"
|
|
|
|
|
1621 |
"item’s webpage. Note: this is page-level “meta nofollow,” "
|
1622 |
"not to be confused with link-level “rel nofollow.”</li>\r\n"
|
1623 |
-
"\t\t</ul>\r\n"
|
1624 |
-
"\t</li>\r\n"
|
1625 |
"</ul>\r\n"
|
1626 |
msgstr ""
|
1627 |
|
1628 |
-
#: modules/meta/webmaster-verify.php:12 modules/meta/webmaster-verify.php:
|
1629 |
msgid "Webmaster Verification Assistant"
|
1630 |
msgstr ""
|
1631 |
|
@@ -1649,7 +2097,7 @@ msgstr ""
|
|
1649 |
msgid "Meta Tag"
|
1650 |
msgstr ""
|
1651 |
|
1652 |
-
#: modules/meta/webmaster-verify.php:
|
1653 |
msgid ""
|
1654 |
"\r\n"
|
1655 |
"<ul>\r\n"
|
@@ -1668,7 +2116,7 @@ msgid ""
|
|
1668 |
"</ul>\r\n"
|
1669 |
msgstr ""
|
1670 |
|
1671 |
-
#: modules/misc/misc.php:11 plugin/class.seo-ultimate.php:
|
1672 |
msgid "Miscellaneous"
|
1673 |
msgstr ""
|
1674 |
|
@@ -1686,7 +2134,12 @@ msgstr ""
|
|
1686 |
msgid "Modules"
|
1687 |
msgstr ""
|
1688 |
|
1689 |
-
#: modules/modules/modules.php:
|
|
|
|
|
|
|
|
|
|
|
1690 |
msgid ""
|
1691 |
"SEO Ultimate’s features are located in groups called “modules."
|
1692 |
"” By default, most of these modules are listed in the “"
|
@@ -1695,47 +2148,50 @@ msgid ""
|
|
1695 |
"upper-right-hand corner of your administration screen."
|
1696 |
msgstr ""
|
1697 |
|
1698 |
-
#: modules/modules/modules.php:
|
1699 |
msgid ""
|
1700 |
"The Module Manager lets you disable or hide modules you don’t use. "
|
1701 |
"You can also silence modules from displaying bubble alerts on the menu."
|
1702 |
msgstr ""
|
1703 |
|
1704 |
-
#: modules/modules/modules.php:
|
1705 |
msgid "Modules updated."
|
1706 |
msgstr ""
|
1707 |
|
1708 |
-
#: modules/modules/modules.php:
|
1709 |
msgid "Status"
|
1710 |
msgstr ""
|
1711 |
|
1712 |
-
#: modules/modules/modules.php:
|
1713 |
msgid "Module"
|
1714 |
msgstr ""
|
1715 |
|
1716 |
-
#: modules/modules/modules.php:
|
1717 |
msgid "Enabled"
|
1718 |
msgstr ""
|
1719 |
|
1720 |
-
#: modules/modules/modules.php:
|
1721 |
msgid "Silenced"
|
1722 |
msgstr ""
|
1723 |
|
1724 |
-
#: modules/modules/modules.php:
|
1725 |
msgid "Hidden"
|
1726 |
msgstr ""
|
1727 |
|
1728 |
-
#: modules/modules/modules.php:
|
1729 |
msgid "Disabled"
|
1730 |
msgstr ""
|
1731 |
|
1732 |
-
#: modules/modules/modules.php:
|
1733 |
msgid "Options Help"
|
1734 |
msgstr ""
|
1735 |
|
1736 |
-
#: modules/modules/modules.php:
|
1737 |
msgid ""
|
1738 |
"\r\n"
|
|
|
|
|
|
|
1739 |
"<p>The Module Manager lets you customize the visibility and accessibility of "
|
1740 |
"each module; here are the options available:</p>\r\n"
|
1741 |
"<ul>\r\n"
|
@@ -1753,7 +2209,7 @@ msgid ""
|
|
1753 |
"</ul>\r\n"
|
1754 |
msgstr ""
|
1755 |
|
1756 |
-
#: modules/modules/modules.php:
|
1757 |
msgid ""
|
1758 |
"\r\n"
|
1759 |
"<ul>\r\n"
|
@@ -1853,8 +2309,8 @@ msgid "Noindex"
|
|
1853 |
msgstr ""
|
1854 |
|
1855 |
#: modules/noindex/noindex.php:69 modules/noindex/noindex.php:80
|
1856 |
-
#: modules/opengraph/opengraph.php:
|
1857 |
-
#: modules/opengraph/opengraph.php:
|
1858 |
msgid "Use default"
|
1859 |
msgstr ""
|
1860 |
|
@@ -1876,8 +2332,9 @@ msgstr ""
|
|
1876 |
|
1877 |
#: modules/noindex/noindex.php:96
|
1878 |
msgid ""
|
1879 |
-
"Note: The
|
1880 |
-
"block indexing of the entire site,
|
|
|
1881 |
msgstr ""
|
1882 |
|
1883 |
#: modules/noindex/noindex.php:99
|
@@ -1944,218 +2401,263 @@ msgstr ""
|
|
1944 |
msgid "Open Graph"
|
1945 |
msgstr ""
|
1946 |
|
1947 |
-
#: modules/opengraph/opengraph.php:
|
1948 |
msgid "Type"
|
1949 |
msgstr ""
|
1950 |
|
1951 |
-
#: modules/opengraph/opengraph.php:
|
1952 |
msgid "Title"
|
1953 |
msgstr ""
|
1954 |
|
1955 |
-
#: modules/opengraph/opengraph.php:
|
1956 |
msgid "Description"
|
1957 |
msgstr ""
|
1958 |
|
1959 |
-
#: modules/opengraph/opengraph.php:
|
1960 |
msgid "Image"
|
1961 |
msgstr ""
|
1962 |
|
1963 |
-
#: modules/opengraph/opengraph.php:
|
1964 |
msgid "Site Name"
|
1965 |
msgstr ""
|
1966 |
|
1967 |
-
#: modules/opengraph/opengraph.php:
|
1968 |
msgid "Facebook App ID"
|
1969 |
msgstr ""
|
1970 |
|
1971 |
-
#: modules/opengraph/opengraph.php:
|
1972 |
msgid "This Site’s Twitter Handle"
|
1973 |
msgstr ""
|
1974 |
|
1975 |
-
#: modules/opengraph/opengraph.php:
|
1976 |
msgid "Default Types"
|
1977 |
msgstr ""
|
1978 |
|
1979 |
-
#: modules/opengraph/opengraph.php:
|
1980 |
msgid "Post Type"
|
1981 |
msgstr ""
|
1982 |
|
1983 |
-
#: modules/opengraph/opengraph.php:
|
1984 |
msgid "Open Graph Type"
|
1985 |
msgstr ""
|
1986 |
|
1987 |
-
#: modules/opengraph/opengraph.php:
|
1988 |
msgid "Twitter Type"
|
1989 |
msgstr ""
|
1990 |
|
1991 |
-
#: modules/opengraph/opengraph.php:
|
1992 |
msgid "Default Image"
|
1993 |
msgstr ""
|
1994 |
|
1995 |
-
#: modules/opengraph/opengraph.php:
|
1996 |
msgid ""
|
1997 |
"In the box below, you can specify an image URL or an image from your media "
|
1998 |
"library to use as a default image in the event that there is no image "
|
1999 |
"otherwise specified for a given webpage on your site."
|
2000 |
msgstr ""
|
2001 |
|
2002 |
-
#: modules/opengraph/opengraph.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2003 |
msgid "Blog Homepage Title"
|
2004 |
msgstr ""
|
2005 |
|
2006 |
-
#: modules/opengraph/opengraph.php:
|
2007 |
msgid "Blog Homepage Description"
|
2008 |
msgstr ""
|
2009 |
|
2010 |
-
#: modules/opengraph/opengraph.php:
|
2011 |
msgid "Blog Homepage Image"
|
2012 |
msgstr ""
|
2013 |
|
2014 |
-
#: modules/opengraph/opengraph.php:
|
2015 |
msgid "Title:"
|
2016 |
msgstr ""
|
2017 |
|
2018 |
-
#: modules/opengraph/opengraph.php:
|
2019 |
msgid "Description:"
|
2020 |
msgstr ""
|
2021 |
|
2022 |
-
#: modules/opengraph/opengraph.php:
|
2023 |
msgid "Image:"
|
2024 |
msgstr ""
|
2025 |
|
2026 |
-
#: modules/opengraph/opengraph.php:
|
2027 |
msgid "Open Graph Type:"
|
2028 |
msgstr ""
|
2029 |
|
2030 |
-
#: modules/opengraph/opengraph.php:
|
2031 |
msgid "Twitter Type:"
|
2032 |
msgstr ""
|
2033 |
|
2034 |
-
#: modules/opengraph/opengraph.php:
|
2035 |
msgid "Featured Image: %s"
|
2036 |
msgstr ""
|
2037 |
|
2038 |
-
#: modules/opengraph/opengraph.php:
|
2039 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2040 |
msgid "None"
|
2041 |
msgstr ""
|
2042 |
|
2043 |
-
#: modules/opengraph/opengraph.php:
|
2044 |
msgid "Internet"
|
2045 |
msgstr ""
|
2046 |
|
2047 |
-
#: modules/opengraph/opengraph.php:
|
2048 |
msgid "Article"
|
2049 |
msgstr ""
|
2050 |
|
2051 |
-
#: modules/opengraph/opengraph.php:
|
2052 |
msgid "Blog"
|
2053 |
msgstr ""
|
2054 |
|
2055 |
-
#: modules/opengraph/opengraph.php:
|
2056 |
msgid "Profile"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
-
#: modules/opengraph/opengraph.php:
|
2060 |
msgid "Website"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
-
#: modules/opengraph/opengraph.php:
|
2064 |
msgid "Products"
|
2065 |
msgstr ""
|
2066 |
|
2067 |
-
#: modules/opengraph/opengraph.php:
|
2068 |
msgid "Book"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
-
#: modules/opengraph/opengraph.php:
|
2072 |
msgid "Music"
|
2073 |
msgstr ""
|
2074 |
|
2075 |
-
#: modules/opengraph/opengraph.php:
|
2076 |
msgid "Album"
|
2077 |
msgstr ""
|
2078 |
|
2079 |
-
#: modules/opengraph/opengraph.php:
|
2080 |
msgid "Playlist"
|
2081 |
msgstr ""
|
2082 |
|
2083 |
-
#: modules/opengraph/opengraph.php:
|
2084 |
msgid "Radio Station"
|
2085 |
msgstr ""
|
2086 |
|
2087 |
-
#: modules/opengraph/opengraph.php:
|
2088 |
msgid "Song"
|
2089 |
msgstr ""
|
2090 |
|
2091 |
-
#: modules/opengraph/opengraph.php:
|
2092 |
msgid "Videos"
|
2093 |
msgstr ""
|
2094 |
|
2095 |
-
#: modules/opengraph/opengraph.php:
|
2096 |
msgid "Movie"
|
2097 |
msgstr ""
|
2098 |
|
2099 |
-
#: modules/opengraph/opengraph.php:
|
2100 |
msgid "TV Episode"
|
2101 |
msgstr ""
|
2102 |
|
2103 |
-
#: modules/opengraph/opengraph.php:
|
2104 |
msgid "TV Show"
|
2105 |
msgstr ""
|
2106 |
|
2107 |
-
#: modules/opengraph/opengraph.php:
|
2108 |
msgid "Video"
|
2109 |
msgstr ""
|
2110 |
|
2111 |
-
#: modules/opengraph/opengraph.php:
|
2112 |
msgid "Regular"
|
2113 |
msgstr ""
|
2114 |
|
2115 |
-
#: modules/opengraph/opengraph.php:
|
2116 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2117 |
msgid "Photo"
|
2118 |
msgstr ""
|
2119 |
|
2120 |
-
#: modules/opengraph/opengraph.php:
|
2121 |
msgid "Twitter Handle"
|
2122 |
msgstr ""
|
2123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2124 |
#: modules/permalinks/permalinks.php:15
|
2125 |
msgid "Permalink Tweaker"
|
2126 |
msgstr ""
|
2127 |
|
2128 |
-
#: modules/permalinks/permalinks.php:
|
2129 |
msgid ""
|
2130 |
"To use the Permalinks Tweaker, you must disable default (query-string) "
|
2131 |
"permalinks in your <a href=\"options-permalink.php\">Permalink Settings</a>."
|
2132 |
msgstr ""
|
2133 |
|
2134 |
-
#: modules/permalinks/permalinks.php:
|
2135 |
msgid "Remove the URL bases of..."
|
2136 |
msgstr ""
|
2137 |
|
2138 |
-
#: modules/permalinks/permalinks.php:
|
2139 |
msgid "Before"
|
2140 |
msgstr ""
|
2141 |
|
2142 |
-
#: modules/permalinks/permalinks.php:
|
2143 |
msgid "After"
|
2144 |
msgstr ""
|
2145 |
|
2146 |
-
#: modules/permalinks/permalinks.php:
|
2147 |
msgid "term archive"
|
2148 |
msgstr ""
|
2149 |
|
2150 |
-
#: modules/permalinks/permalinks.php:
|
2151 |
msgid "page"
|
2152 |
msgstr ""
|
2153 |
|
2154 |
-
#: modules/permalinks/permalinks.php:
|
2155 |
msgid "URL Conflict Resolution"
|
2156 |
msgstr ""
|
2157 |
|
2158 |
-
#: modules/permalinks/permalinks.php:
|
2159 |
msgid ""
|
2160 |
"If a term archive and a Page with the same slug end up having the same URL "
|
2161 |
"because of the term’s base being removed, the URL should be given to "
|
@@ -2163,231 +2665,226 @@ msgid ""
|
|
2163 |
msgstr ""
|
2164 |
|
2165 |
#: modules/rich-snippets/rich-snippets.php:14
|
|
|
2166 |
msgid "Rich Snippet Creator"
|
2167 |
msgstr ""
|
2168 |
|
2169 |
-
#: modules/rich-snippets/rich-snippets.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2170 |
msgid "Schema.org Microdata"
|
2171 |
msgstr ""
|
2172 |
|
2173 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2174 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2175 |
msgid "Review"
|
2176 |
msgstr ""
|
2177 |
|
2178 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2179 |
msgid "Name of Reviewed Item"
|
2180 |
msgstr ""
|
2181 |
|
2182 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2183 |
msgid "Star Rating"
|
2184 |
msgstr ""
|
2185 |
|
2186 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2187 |
msgid "Image of Reviewed Item"
|
2188 |
msgstr ""
|
2189 |
|
2190 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2191 |
msgid "Review Author"
|
2192 |
msgstr ""
|
2193 |
|
2194 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2195 |
msgid "Date Reviewed"
|
2196 |
msgstr ""
|
2197 |
|
2198 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2199 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2200 |
msgid "Place"
|
2201 |
msgstr ""
|
2202 |
|
2203 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2204 |
msgid "Address"
|
2205 |
msgstr ""
|
2206 |
|
2207 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2208 |
msgid "Street Address"
|
2209 |
msgstr ""
|
2210 |
|
2211 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2212 |
msgid "PO Box"
|
2213 |
msgstr ""
|
2214 |
|
2215 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2216 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2217 |
msgid "City"
|
2218 |
msgstr ""
|
2219 |
|
2220 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2221 |
msgid "Country"
|
2222 |
msgstr ""
|
2223 |
|
2224 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2225 |
msgid "Postal Code"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2229 |
msgid "Fax Number"
|
2230 |
msgstr ""
|
2231 |
|
2232 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2233 |
msgid "Map URL"
|
2234 |
msgstr ""
|
2235 |
|
2236 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2237 |
msgid "Phone Number"
|
2238 |
msgstr ""
|
2239 |
|
2240 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2241 |
msgid "Schema.org markup generated by %1$s (%2$s)"
|
2242 |
msgstr ""
|
2243 |
|
2244 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2245 |
msgid "Standard"
|
2246 |
msgstr ""
|
2247 |
|
2248 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2249 |
msgid "Search Result Type:"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2253 |
msgid "Name of Reviewed Item:"
|
2254 |
msgstr ""
|
2255 |
|
2256 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2257 |
msgid "Image of Reviewed Item:"
|
2258 |
msgstr ""
|
2259 |
|
2260 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2261 |
msgid "0.5 stars"
|
2262 |
msgstr ""
|
2263 |
|
2264 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2265 |
msgid "1 star"
|
2266 |
msgstr ""
|
2267 |
|
2268 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2269 |
msgid "1.5 stars"
|
2270 |
msgstr ""
|
2271 |
|
2272 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2273 |
msgid "2 stars"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2277 |
msgid "2.5 stars"
|
2278 |
msgstr ""
|
2279 |
|
2280 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2281 |
msgid "3 stars"
|
2282 |
msgstr ""
|
2283 |
|
2284 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2285 |
msgid "3.5 stars"
|
2286 |
msgstr ""
|
2287 |
|
2288 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2289 |
msgid "4 stars"
|
2290 |
msgstr ""
|
2291 |
|
2292 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2293 |
msgid "4.5 stars"
|
2294 |
msgstr ""
|
2295 |
|
2296 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2297 |
msgid "5 stars"
|
2298 |
msgstr ""
|
2299 |
|
2300 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2301 |
msgid "Star Rating for Reviewed Item:"
|
2302 |
msgstr ""
|
2303 |
|
2304 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2305 |
msgid "Street Address:"
|
2306 |
msgstr ""
|
2307 |
|
2308 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2309 |
msgid "Post Office Box Number:"
|
2310 |
msgstr ""
|
2311 |
|
2312 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2313 |
msgid "City:"
|
2314 |
msgstr ""
|
2315 |
|
2316 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2317 |
msgid "State or Region:"
|
2318 |
msgstr ""
|
2319 |
|
2320 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2321 |
msgid "Country:"
|
2322 |
msgstr ""
|
2323 |
|
2324 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2325 |
msgid "Postal Code:"
|
2326 |
msgstr ""
|
2327 |
|
2328 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2329 |
msgid "Address:"
|
2330 |
msgstr ""
|
2331 |
|
2332 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2333 |
msgid "Map Page:"
|
2334 |
msgstr ""
|
2335 |
|
2336 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2337 |
msgid "Phone Number:"
|
2338 |
msgstr ""
|
2339 |
|
2340 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2341 |
msgid "Fax Number:"
|
2342 |
msgstr ""
|
2343 |
|
2344 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2345 |
msgid "Photo:"
|
2346 |
msgstr ""
|
2347 |
|
2348 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2349 |
msgid ""
|
2350 |
"\r\n"
|
2351 |
"<ul>\r\n"
|
2352 |
"\t<li><strong>What it does:</strong> Rich Snippet Creator adds special code "
|
2353 |
-
"to your posts that asks Google
|
2354 |
-
"(known as
|
2355 |
-
"
|
2356 |
-
"
|
2357 |
-
"
|
2358 |
-
"
|
2359 |
-
"
|
2360 |
"\t<li><strong>Why it helps:</strong> Rich Snippet Creator enhances the "
|
2361 |
"search engine results for your content by asking Google to add extra, eye-"
|
2362 |
"catching info that could help draw in more search engine visitors.</li>\r\n"
|
2363 |
-
"\t<li><
|
2364 |
"pages, see if your content fits one of the available rich snippet types (for "
|
2365 |
-
"example, a review). If so, select that type from the “
|
2366 |
"Type” dropdown box. Once you select the applicable type, additional "
|
2367 |
"options will appear that vary based on the type selected. For example, a "
|
2368 |
-
"“Star Rating” field will appear if you select
|
2369 |
-
"Review” type
|
2370 |
-
"will add the special code to it. You can remove this code at any
|
2371 |
-
"selecting “
|
2372 |
-
"dropdown and resaving the post/page.</
|
2373 |
"</ul>\r\n"
|
2374 |
msgstr ""
|
2375 |
|
2376 |
-
#: modules/rich-snippets/rich-snippets.php:
|
2377 |
-
msgid ""
|
2378 |
-
"\r\n"
|
2379 |
-
"<ul>\r\n"
|
2380 |
-
"\t<li><strong>Categories/Tags That Indicate Reviews</strong> — If you "
|
2381 |
-
"haven’t set the “Rich Snippet Type” setting for an old "
|
2382 |
-
"post or page, then Rich Snippet Creator will automatically set its default "
|
2383 |
-
"type to “Review” (instead of “None”) if it has a "
|
2384 |
-
"category or tag whose name is in this list (the default list is “"
|
2385 |
-
"Reviews” and “Review”). Put one category/tag name per line."
|
2386 |
-
"</li>\r\n"
|
2387 |
-
"</ul>\r\n"
|
2388 |
-
msgstr ""
|
2389 |
-
|
2390 |
-
#: modules/rich-snippets/rich-snippets.php:415
|
2391 |
msgid ""
|
2392 |
"\r\n"
|
2393 |
"<ul>\r\n"
|
@@ -2396,8 +2893,8 @@ msgid ""
|
|
2396 |
"href='http://www.google.com/webmasters/tools/richsnippets' "
|
2397 |
"target='_blank'>Google’s testing tool</a> to make sure Google can find "
|
2398 |
"the rich snippet code on your site. If no code is found, check and make sure "
|
2399 |
-
"you
|
2400 |
-
"having the code on a post/page doesn’t guarantee that Google will "
|
2401 |
"actually use it to create a rich snippet. If Google is able to read your "
|
2402 |
"code but isn’t using it to generate rich snippets, you can ask Google "
|
2403 |
"to do so using <a href='http://www.google.com/support/webmasters/bin/request."
|
@@ -2414,7 +2911,7 @@ msgstr ""
|
|
2414 |
msgid "SEO Design Solutions Whitepapers"
|
2415 |
msgstr ""
|
2416 |
|
2417 |
-
#. #-#-#-#-# plugin.pot (SEO Ultimate 7.
|
2418 |
#. Author of the plugin/theme
|
2419 |
#: modules/sds-blog/sds-blog.php:49
|
2420 |
msgid "SEO Design Solutions"
|
@@ -2431,18 +2928,22 @@ msgstr ""
|
|
2431 |
msgid "Global Settings"
|
2432 |
msgstr ""
|
2433 |
|
2434 |
-
#: modules/settings/global-settings.php:
|
2435 |
msgid "Identify the plugin’s HTML code insertions with HTML comment tags"
|
2436 |
msgstr ""
|
2437 |
|
2438 |
-
#: modules/settings/global-settings.php:
|
2439 |
msgid "Enable nofollow’d attribution link on my site"
|
2440 |
msgstr ""
|
2441 |
|
2442 |
-
#: modules/settings/global-settings.php:
|
2443 |
msgid "Add CSS styles to the attribution link"
|
2444 |
msgstr ""
|
2445 |
|
|
|
|
|
|
|
|
|
2446 |
#: modules/settings/install.php:18
|
2447 |
msgid "Upgrade/Downgrade/Reinstall"
|
2448 |
msgstr ""
|
@@ -2463,7 +2964,7 @@ msgstr ""
|
|
2463 |
msgid "Reinstall"
|
2464 |
msgstr ""
|
2465 |
|
2466 |
-
#: modules/settings/install.php:82 modules/settings/install.php:
|
2467 |
msgid "You do not have sufficient permissions to upgrade plugins on this site."
|
2468 |
msgstr ""
|
2469 |
|
@@ -2484,7 +2985,7 @@ msgid ""
|
|
2484 |
"using the WordPress plugin upgrader."
|
2485 |
msgstr ""
|
2486 |
|
2487 |
-
#: modules/settings/install.php:108 modules/settings/install.php:
|
2488 |
msgid ""
|
2489 |
"You do not have sufficient permissions to downgrade plugins on this site."
|
2490 |
msgstr ""
|
@@ -2506,7 +3007,7 @@ msgstr ""
|
|
2506 |
#: modules/settings/install.php:128
|
2507 |
msgid ""
|
2508 |
"Downgrading to versions earlier than %s is not supported because doing so "
|
2509 |
-
"will result
|
2510 |
msgstr ""
|
2511 |
|
2512 |
#: modules/settings/install.php:130
|
@@ -2515,7 +3016,7 @@ msgid ""
|
|
2515 |
"again later."
|
2516 |
msgstr ""
|
2517 |
|
2518 |
-
#: modules/settings/install.php:136 modules/settings/install.php:
|
2519 |
msgid ""
|
2520 |
"You do not have sufficient permissions to reinstall plugins on this site."
|
2521 |
msgstr ""
|
@@ -2534,15 +3035,15 @@ msgstr ""
|
|
2534 |
msgid "Latest Version"
|
2535 |
msgstr ""
|
2536 |
|
2537 |
-
#: modules/settings/install.php:
|
2538 |
msgid "Downgrade to SEO Ultimate %s"
|
2539 |
msgstr ""
|
2540 |
|
2541 |
-
#: modules/settings/install.php:
|
2542 |
msgid "Reinstall SEO Ultimate %s"
|
2543 |
msgstr ""
|
2544 |
|
2545 |
-
#: modules/settings/install.php:
|
2546 |
msgid "Upgrade to SEO Ultimate %s"
|
2547 |
msgstr ""
|
2548 |
|
@@ -2730,9 +3231,9 @@ msgstr ""
|
|
2730 |
msgid "SEO Ultimate Plugin Settings"
|
2731 |
msgstr ""
|
2732 |
|
2733 |
-
#. #-#-#-#-# plugin.pot (SEO Ultimate 7.
|
2734 |
#. Plugin Name of the plugin/theme
|
2735 |
-
#: modules/settings/settings.php:26 plugin/class.seo-ultimate.php:
|
2736 |
msgid "SEO Ultimate"
|
2737 |
msgstr ""
|
2738 |
|
@@ -2784,7 +3285,7 @@ msgid "Uninstaller"
|
|
2784 |
msgstr ""
|
2785 |
|
2786 |
#: modules/settings/uninstall.php:18 modules/settings/uninstall.php:22
|
2787 |
-
#: plugin/class.seo-ultimate.php:
|
2788 |
msgid "Uninstall"
|
2789 |
msgstr ""
|
2790 |
|
@@ -2829,7 +3330,7 @@ msgid "Uninstallation complete. Thanks for trying SEO Ultimate."
|
|
2829 |
msgstr ""
|
2830 |
|
2831 |
#: modules/sharing-buttons/sharing-buttons.php:12
|
2832 |
-
#: modules/sharing-buttons/sharing-buttons.php:
|
2833 |
msgid "Sharing Facilitator"
|
2834 |
msgstr ""
|
2835 |
|
@@ -2853,7 +3354,7 @@ msgstr ""
|
|
2853 |
msgid "Which provider would you like to use for your sharing buttons?"
|
2854 |
msgstr ""
|
2855 |
|
2856 |
-
#: modules/sharing-buttons/sharing-buttons.php:
|
2857 |
msgid ""
|
2858 |
"\r\n"
|
2859 |
"<ul>\r\n"
|
@@ -3215,16 +3716,19 @@ msgid ""
|
|
3215 |
"</ul>\r\n"
|
3216 |
msgstr ""
|
3217 |
|
3218 |
-
#: modules/titles/titles.php:431
|
3219 |
-
msgid "Settings Tab"
|
3220 |
-
msgstr ""
|
3221 |
-
|
3222 |
#: modules/titles/titles.php:432
|
3223 |
msgid ""
|
3224 |
"\r\n"
|
3225 |
"<p>Here’s documentation for the options on the “Settings” "
|
3226 |
"tab.</p>\r\n"
|
3227 |
"<ul>\r\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3228 |
"\t<li>\r\n"
|
3229 |
"\t\t<p><strong>Rewrite Method</strong> — This setting controls the "
|
3230 |
"method by which Title Tag Rewriter edits your site’s <code><"
|
@@ -3276,7 +3780,7 @@ msgid ""
|
|
3276 |
"</ul>\r\n"
|
3277 |
msgstr ""
|
3278 |
|
3279 |
-
#: modules/titles/titles.php:
|
3280 |
msgid ""
|
3281 |
"\r\n"
|
3282 |
"<ul>\r\n"
|
@@ -3299,7 +3803,7 @@ msgid ""
|
|
3299 |
"</ul>\r\n"
|
3300 |
msgstr ""
|
3301 |
|
3302 |
-
#: modules/titles/titles.php:
|
3303 |
msgid ""
|
3304 |
"\r\n"
|
3305 |
"<ul>\r\n"
|
@@ -3453,207 +3957,203 @@ msgid "Use my <a href=\"%s\" target=\"_blank\">footer link HTML formats</a>"
|
|
3453 |
msgstr ""
|
3454 |
|
3455 |
#: modules/wp-settings/wp-settings.php:14
|
3456 |
-
msgid "Settings Monitor (Beta)"
|
3457 |
-
msgstr ""
|
3458 |
-
|
3459 |
-
#: modules/wp-settings/wp-settings.php:15
|
3460 |
msgid "Settings Monitor"
|
3461 |
msgstr ""
|
3462 |
|
3463 |
-
#: modules/wp-settings/wp-settings.php:
|
3464 |
msgid "Blog is visible to search engines"
|
3465 |
msgstr ""
|
3466 |
|
3467 |
-
#: modules/wp-settings/wp-settings.php:
|
3468 |
msgid "WordPress will allow search engines to visit your site."
|
3469 |
msgstr ""
|
3470 |
|
3471 |
-
#: modules/wp-settings/wp-settings.php:
|
3472 |
msgid "Blog is hidden from search engines"
|
3473 |
msgstr ""
|
3474 |
|
3475 |
-
#: modules/wp-settings/wp-settings.php:
|
3476 |
msgid ""
|
3477 |
-
"WordPress is configured to
|
3478 |
"site’s SEO and should be resolved immediately."
|
3479 |
msgstr ""
|
3480 |
|
3481 |
-
#: modules/wp-settings/wp-settings.php:
|
3482 |
msgid "Query-string permalinks enabled"
|
3483 |
msgstr ""
|
3484 |
|
3485 |
-
#: modules/wp-settings/wp-settings.php:
|
3486 |
msgid ""
|
3487 |
"It is highly recommended that you use a non-default and non-numeric "
|
3488 |
"permalink structure."
|
3489 |
msgstr ""
|
3490 |
|
3491 |
-
#: modules/wp-settings/wp-settings.php:
|
3492 |
msgid "Pathinfo permalinks enabled"
|
3493 |
msgstr ""
|
3494 |
|
3495 |
-
#: modules/wp-settings/wp-settings.php:
|
3496 |
msgid ""
|
3497 |
"Pathinfo permalinks add a keyword-less “index.php” prefix. This "
|
3498 |
"is not ideal, but it may be beyond your control (since it’s likely "
|
3499 |
"caused by your site’s web hosting setup)."
|
3500 |
msgstr ""
|
3501 |
|
3502 |
-
#: modules/wp-settings/wp-settings.php:
|
3503 |
msgid "Permalinks include the post slug"
|
3504 |
msgstr ""
|
3505 |
|
3506 |
-
#: modules/wp-settings/wp-settings.php:
|
3507 |
msgid ""
|
3508 |
"Including a version of the post’s title helps provide keyword-rich "
|
3509 |
"URLs."
|
3510 |
msgstr ""
|
3511 |
|
3512 |
-
#: modules/wp-settings/wp-settings.php:
|
3513 |
msgid "Permalinks do not include the post slug"
|
3514 |
msgstr ""
|
3515 |
|
3516 |
-
#: modules/wp-settings/wp-settings.php:
|
3517 |
msgid ""
|
3518 |
"It is highly recommended that you include the %postname% variable in the "
|
3519 |
"permalink structure."
|
3520 |
msgstr ""
|
3521 |
|
3522 |
-
#: modules/wp-settings/wp-settings.php:
|
3523 |
msgid ""
|
3524 |
"Settings Monitor analyzes your blog’s settings and notifies you of any "
|
3525 |
"problems. If any issues are found, they will show up in red or yellow below."
|
3526 |
msgstr ""
|
3527 |
|
3528 |
-
#: modules/wp-settings/wp-settings.php:
|
3529 |
msgid "Go to setting »"
|
3530 |
msgstr ""
|
3531 |
|
3532 |
-
#: plugin/class.seo-ultimate.php:
|
3533 |
msgid "SEO"
|
3534 |
msgstr ""
|
3535 |
|
3536 |
-
#: plugin/class.seo-ultimate.php:
|
3537 |
msgid ""
|
3538 |
"It looks like you made changes to the settings of this SEO Ultimate module. "
|
3539 |
"If you leave before saving, those changes will be lost."
|
3540 |
msgstr ""
|
3541 |
|
3542 |
-
#: plugin/class.seo-ultimate.php:
|
3543 |
msgid "SEO Settings"
|
3544 |
msgstr ""
|
3545 |
|
3546 |
-
#: plugin/class.seo-ultimate.php:
|
3547 |
msgid ""
|
3548 |
"%1$s is known to cause conflicts with SEO Ultimate. Please deactivate %1$s "
|
3549 |
"if you wish to continue using SEO Ultimate."
|
3550 |
msgstr ""
|
3551 |
|
3552 |
-
#: plugin/class.seo-ultimate.php:
|
3553 |
msgid "new module"
|
3554 |
msgstr ""
|
3555 |
|
3556 |
-
#: plugin/class.seo-ultimate.php:
|
3557 |
msgid "new modules"
|
3558 |
msgstr ""
|
3559 |
|
3560 |
-
#: plugin/class.seo-ultimate.php:
|
3561 |
msgid "new feature"
|
3562 |
msgstr ""
|
3563 |
|
3564 |
-
#: plugin/class.seo-ultimate.php:
|
3565 |
msgid "new features"
|
3566 |
msgstr ""
|
3567 |
|
3568 |
-
#: plugin/class.seo-ultimate.php:
|
3569 |
msgid "bugfix"
|
3570 |
msgstr ""
|
3571 |
|
3572 |
-
#: plugin/class.seo-ultimate.php:
|
3573 |
msgid "bugfixes"
|
3574 |
msgstr ""
|
3575 |
|
3576 |
-
#: plugin/class.seo-ultimate.php:
|
3577 |
msgid "improvement"
|
3578 |
msgstr ""
|
3579 |
|
3580 |
-
#: plugin/class.seo-ultimate.php:
|
3581 |
msgid "improvements"
|
3582 |
msgstr ""
|
3583 |
|
3584 |
-
#: plugin/class.seo-ultimate.php:
|
3585 |
msgid "security fix"
|
3586 |
msgstr ""
|
3587 |
|
3588 |
-
#: plugin/class.seo-ultimate.php:
|
3589 |
msgid "security fixes"
|
3590 |
msgstr ""
|
3591 |
|
3592 |
-
#: plugin/class.seo-ultimate.php:
|
3593 |
msgid "new language pack"
|
3594 |
msgstr ""
|
3595 |
|
3596 |
-
#: plugin/class.seo-ultimate.php:
|
3597 |
msgid "new language packs"
|
3598 |
msgstr ""
|
3599 |
|
3600 |
-
#: plugin/class.seo-ultimate.php:
|
3601 |
msgid "language pack update"
|
3602 |
msgstr ""
|
3603 |
|
3604 |
-
#: plugin/class.seo-ultimate.php:
|
3605 |
msgid "language pack updates"
|
3606 |
msgstr ""
|
3607 |
|
3608 |
-
#: plugin/class.seo-ultimate.php:
|
3609 |
msgid "%d %s"
|
3610 |
msgstr ""
|
3611 |
|
3612 |
-
#: plugin/class.seo-ultimate.php:
|
3613 |
msgid "Upgrade now to get %s. %s."
|
3614 |
msgstr ""
|
3615 |
|
3616 |
-
#: plugin/class.seo-ultimate.php:
|
3617 |
msgid "View changelog"
|
3618 |
msgstr ""
|
3619 |
|
3620 |
-
#: plugin/class.seo-ultimate.php:
|
3621 |
msgid "Active Modules: "
|
3622 |
msgstr ""
|
3623 |
|
3624 |
-
#: plugin/class.seo-ultimate.php:
|
3625 |
msgid ""
|
3626 |
"<strong>SEO Ultimate Notice:</strong> Your blog is configured to block "
|
3627 |
-
"search engine spiders. To resolve this, <a href=\"options-
|
3628 |
-
"target=\"_blank\">go to your
|
3629 |
-
"
|
3630 |
msgstr ""
|
3631 |
|
3632 |
-
#: plugin/class.seo-ultimate.php:
|
3633 |
msgid "Search Engine Listing"
|
3634 |
msgstr ""
|
3635 |
|
3636 |
-
#: plugin/class.seo-ultimate.php:
|
3637 |
msgid "Social Networks Listing"
|
3638 |
msgstr ""
|
3639 |
|
3640 |
-
#: plugin/class.seo-ultimate.php:
|
3641 |
msgid "Links"
|
3642 |
msgstr ""
|
3643 |
|
3644 |
-
#: plugin/class.seo-ultimate.php:
|
3645 |
msgid "%1$s %2$s by %3$s"
|
3646 |
msgstr ""
|
3647 |
|
3648 |
-
#: plugin/class.seo-ultimate.php:
|
3649 |
msgid "Home"
|
3650 |
msgstr ""
|
3651 |
|
3652 |
-
#: plugin/class.seo-ultimate.php:
|
3653 |
msgid "Author Archives"
|
3654 |
msgstr ""
|
3655 |
|
3656 |
-
#: plugin/class.seo-ultimate.php:
|
3657 |
msgid "Link Masks"
|
3658 |
msgstr ""
|
3659 |
|
1 |
+
# Copyright (C) 2013 SEO Ultimate
|
2 |
# This file is distributed under the same license as the SEO Ultimate package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: SEO Ultimate 7.6\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/seo-ultimate\n"
|
7 |
+
"POT-Creation-Date: 2013-01-01 04:50:50+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
|
15 |
+
#: includes/jlfunctions/str.php:144 plugin/su-functions.php:77
|
16 |
msgid "%s and %s"
|
17 |
msgstr ""
|
18 |
|
19 |
+
#: includes/jlfunctions/str.php:147 plugin/su-functions.php:80
|
20 |
msgid ", "
|
21 |
msgstr ""
|
22 |
|
23 |
+
#: includes/jlfunctions/str.php:148 plugin/su-functions.php:81
|
24 |
msgid "%s, and %s"
|
25 |
msgstr ""
|
26 |
|
27 |
+
#: includes/jlwp/functions.php:47
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
msgctxt "post format"
|
29 |
msgid "Format"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: includes/jlwp/functions.php:48
|
33 |
msgid "Post Format Archives"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: includes/jlwp/functions.php:89
|
37 |
msgid "backup your database"
|
38 |
msgstr ""
|
39 |
|
45 |
msgid "Log"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: modules/404s/fofs-log.php:118 modules/class.su-module.php:1148
|
49 |
msgid "Actions"
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: modules/404s/fofs-log.php:119
|
53 |
msgid "Hits"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: modules/404s/fofs-log.php:120
|
57 |
msgid "URL with 404 Error"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: modules/404s/fofs-log.php:121
|
61 |
msgid "Date of Most Recent Hit"
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: modules/404s/fofs-log.php:122
|
65 |
msgid "Referers"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: modules/404s/fofs-log.php:123 modules/404s/fofs-log.php:227
|
69 |
msgid "User Agents"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: modules/404s/fofs-log.php:139
|
73 |
msgid ""
|
74 |
"New 404 errors will not be recorded because 404 logging is disabled on the "
|
75 |
"Settings tab."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: modules/404s/fofs-log.php:146
|
79 |
msgid "The log entry was successfully deleted."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: modules/404s/fofs-log.php:148
|
83 |
msgid "This log entry has already been deleted."
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: modules/404s/fofs-log.php:157
|
87 |
msgid "The log was successfully cleared."
|
88 |
msgstr ""
|
89 |
|
90 |
+
#: modules/404s/fofs-log.php:161
|
91 |
msgid "No 404 errors in the log."
|
92 |
msgstr ""
|
93 |
|
94 |
+
#: modules/404s/fofs-log.php:186
|
95 |
msgid "Open URL in new window (will not be logged)"
|
96 |
msgstr ""
|
97 |
|
98 |
+
#: modules/404s/fofs-log.php:187
|
99 |
msgid "Query Google for cached version of URL (opens in new window)"
|
100 |
msgstr ""
|
101 |
|
102 |
+
#: modules/404s/fofs-log.php:188
|
103 |
msgid "Remove this URL from the log"
|
104 |
msgstr ""
|
105 |
|
106 |
+
#: modules/404s/fofs-log.php:191
|
107 |
msgid "%s at %s"
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: modules/404s/fofs-log.php:195
|
111 |
msgid "View list of referring URLs"
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: modules/404s/fofs-log.php:196
|
115 |
msgid "View list of user agents"
|
116 |
msgstr ""
|
117 |
|
118 |
+
#: modules/404s/fofs-log.php:206
|
119 |
msgid "Referring URLs"
|
120 |
msgstr ""
|
121 |
|
122 |
+
#: modules/404s/fofs-log.php:207 modules/404s/fofs-log.php:228
|
123 |
msgid "Hide list"
|
124 |
msgstr ""
|
125 |
|
126 |
+
#: modules/404s/fofs-log.php:259
|
127 |
msgid "Are you sure you want to delete all 404 log entries?"
|
128 |
msgstr ""
|
129 |
|
130 |
+
#: modules/404s/fofs-log.php:261
|
131 |
msgid "Clear Log"
|
132 |
msgstr ""
|
133 |
|
136 |
msgstr ""
|
137 |
|
138 |
#: modules/404s/fofs-settings.php:17
|
139 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:42
|
140 |
+
#: modules/opengraph/opengraph.php:319 modules/titles/titles.php:40
|
141 |
msgid "Settings"
|
142 |
msgstr ""
|
143 |
|
181 |
msgid "404 Monitor"
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: modules/404s/fofs.php:19 modules/autolinks/autolinks.php:17
|
185 |
+
#: modules/canonical/canonical.php:223 modules/canonical/canonical.php:229
|
186 |
+
#: modules/files/files.php:144
|
187 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:325
|
188 |
+
#: modules/link-nofollow/link-nofollow.php:132 modules/linkbox/linkbox.php:128
|
189 |
+
#: modules/linkbox/linkbox.php:135 modules/meta/meta-descriptions.php:193
|
190 |
+
#: modules/meta/meta-keywords.php:178 modules/meta/meta-robots.php:52
|
191 |
+
#: modules/meta/webmaster-verify.php:95 modules/meta/webmaster-verify.php:101
|
192 |
#: modules/more-links/more-links.php:104 modules/more-links/more-links.php:111
|
193 |
+
#: modules/opengraph/opengraph.php:479
|
194 |
+
#: modules/rich-snippets/rich-snippets.php:413
|
195 |
+
#: modules/rich-snippets/rich-snippets.php:420
|
196 |
#: modules/settings/settings.php:63
|
197 |
+
#: modules/sharing-buttons/sharing-buttons.php:82
|
198 |
+
#: modules/sharing-buttons/sharing-buttons.php:88 modules/slugs/slugs.php:112
|
199 |
#: modules/slugs/slugs.php:120 modules/titles/titles.php:357
|
200 |
#: modules/user-code/user-code.php:97
|
201 |
msgid "Overview"
|
235 |
"<p>You can perform the following actions on each entry in the log:</p>\r\n"
|
236 |
"\r\n"
|
237 |
"<ul>\r\n"
|
238 |
+
"\t<li>Clicking the first icon will open the URL in a new window. This is "
|
239 |
+
"useful for testing whether or not a redirect is working.</li>\r\n"
|
240 |
+
"\t<li>Clicking the second icon will open Google's archived version of the "
|
241 |
+
"URL in a new window. This is useful for determining what content, if any, "
|
242 |
+
"used to be located at that URL.</li>\r\n"
|
243 |
+
"\t<li>Once you've taken care of a 404 error, you can click the third icon to "
|
244 |
+
"remove it from the list. The URL will reappear on the list if it triggers a "
|
245 |
+
"404 error in the future.</li>\r\n"
|
246 |
+
"\t<li>To view the list of the URLs by which visitors and/or search engines "
|
247 |
+
"reached this non-existent URL, click the scroll icon in the “"
|
248 |
+
"Referers” column.</li>\r\n"
|
249 |
+
"\t<li>To view the list of visitor browsers and search engine bots which "
|
250 |
+
"tried to access this non-existent URL, click the scroll icon in the “"
|
251 |
+
"User Agents” column.</li>\r\n"
|
252 |
"</ul>\r\n"
|
253 |
+
"\r\n"
|
254 |
+
"<p>The “Clear Log” button will erase all of entries in the log. "
|
255 |
+
"The log will remain empty until more 404 errors are logged.</p>\r\n"
|
256 |
msgstr ""
|
257 |
|
258 |
+
#: modules/404s/fofs.php:49 modules/linkbox/linkbox.php:129
|
259 |
+
#: modules/linkbox/linkbox.php:140
|
|
|
|
|
260 |
msgid "Settings Help"
|
261 |
msgstr ""
|
262 |
|
263 |
+
#: modules/404s/fofs.php:50
|
264 |
msgid ""
|
265 |
"\r\n"
|
266 |
"<p>The following options are available on the Settings tab:</p>\r\n"
|
305 |
"</ul>\r\n"
|
306 |
msgstr ""
|
307 |
|
308 |
+
#: modules/404s/fofs.php:78 modules/autolinks/autolinks.php:161
|
309 |
+
#: modules/files/files.php:165 modules/meta/meta-descriptions.php:225
|
310 |
+
#: modules/meta/meta-keywords.php:213 modules/meta/meta-robots.php:102
|
311 |
+
#: modules/rich-snippets/rich-snippets.php:414
|
312 |
+
#: modules/rich-snippets/rich-snippets.php:425 modules/slugs/slugs.php:114
|
313 |
+
#: modules/slugs/slugs.php:130 modules/titles/titles.php:480
|
314 |
#: modules/user-code/user-code.php:111
|
315 |
msgid "Troubleshooting"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: modules/404s/fofs.php:79
|
319 |
msgid ""
|
320 |
"\r\n"
|
321 |
"<p>404 Monitor doesn't appear to work? Take these notes into consideration:</"
|
374 |
msgid "Deeplink Juggernaut"
|
375 |
msgstr ""
|
376 |
|
377 |
+
#: modules/autolinks/autolinks.php:18
|
378 |
+
msgid ""
|
379 |
+
"\r\n"
|
380 |
+
"<ul>\r\n"
|
381 |
+
"\t<li><strong>What it does:</strong> Deeplink Juggernaut lets you "
|
382 |
+
"automatically generate hyperlinks in your site’s content and footer.</"
|
383 |
+
"li>\r\n"
|
384 |
+
"\t<li><strong>Why it helps:</strong> Search engines use the anchor text of "
|
385 |
+
"hyperlinks to determine the topicality of the webpage to which the link "
|
386 |
+
"points. Deeplink Juggernaut lets you automatically generate hyperlinks to "
|
387 |
+
"various pages on your site, which can help increase the linked page’s "
|
388 |
+
"ranking for the term used in the anchor text.</li>\r\n"
|
389 |
+
"\t<li><strong>How to use it:</strong> The Content Links section lets you "
|
390 |
+
"automatically link words or phrases in your site’s content to a target "
|
391 |
+
"page of your choosing. The Footer Links section lets you add links in the "
|
392 |
+
"footer of your entire site or just a particular set of webpages.</li>\r\n"
|
393 |
+
"</ul>\r\n"
|
394 |
+
msgstr ""
|
395 |
+
|
396 |
+
#: modules/autolinks/autolinks.php:28
|
397 |
+
msgid "Content Links Tab"
|
398 |
+
msgstr ""
|
399 |
+
|
400 |
+
#: modules/autolinks/autolinks.php:29
|
401 |
+
msgid ""
|
402 |
+
"\r\n"
|
403 |
+
"<p>To add an autolink, fill in the fields and then click “Save Changes."
|
404 |
+
"” Once you do so, you can edit your new autolink or add another one.</"
|
405 |
+
"p>\r\n"
|
406 |
+
"\r\n"
|
407 |
+
"<ul>\r\n"
|
408 |
+
"\t<li><strong>Anchor Text</strong> — Deeplink Juggernaut will scan "
|
409 |
+
"your site’s content for the word or phrase you put in this box, and "
|
410 |
+
"then hyperlink instances of that word or phrase to the webpage or item you "
|
411 |
+
"specify in the Destination box. The Anchor Text should be a keyword that you "
|
412 |
+
"want the Destination page to rank for.</li>\r\n"
|
413 |
+
"\t<li><p><strong>Destination</strong> — This is the box where you "
|
414 |
+
"specify the webpage where you want the auto-generated hyperlinks to point.</"
|
415 |
+
"p>\r\n"
|
416 |
+
"\t\t<ul>\r\n"
|
417 |
+
"\t\t\t<li>To link to a post, page, attachment, category, tag, term, or "
|
418 |
+
"author on your site, just type in its name and then select it from the "
|
419 |
+
"dropdown.</li>\r\n"
|
420 |
+
"\t\t\t<li>To link to your blog homepage, just type in “home” and "
|
421 |
+
"select “Blog Homepage” from the dropdown.</li>\r\n"
|
422 |
+
"\t\t\t<li>To link to one of the aliased URLs you created with the Link Mask "
|
423 |
+
"Generator, just type in part of the original URL or alias URL and then "
|
424 |
+
"select the link mask from the dropdown.</li>\r\n"
|
425 |
+
"\t\t\t<li>To link to some other webpage, just type or paste in its URL in "
|
426 |
+
"the box.</li>\r\n"
|
427 |
+
"\t\t</ul>\r\n"
|
428 |
+
"\t</li>\r\n"
|
429 |
+
"\t<li><strong>Title Attribute</strong> — The link’s title "
|
430 |
+
"attribute is the text that will appear when the visitor’s mouse "
|
431 |
+
"pointer hovers over the link. Totally optional.</li>\r\n"
|
432 |
+
"\t<li><p><strong>Dampener:</strong> If the anchor text you specify occurs "
|
433 |
+
"many times throughout your site’s content, you may wish to reduce the "
|
434 |
+
"overall frequency with which the anchor text is hyperlinked. You can reduce "
|
435 |
+
"the autolinking frequency by a percentage with the Dampener field. For "
|
436 |
+
"example:</p>\r\n"
|
437 |
+
"\t\t<ul>\r\n"
|
438 |
+
"\t\t\t<li>0% dampening will have no effect.</li>\r\n"
|
439 |
+
"\t\t\t<li>50% dampening means the anchor text will be autolinked "
|
440 |
+
"approximately half as often as it otherwise would be.</li>\r\n"
|
441 |
+
"\t\t\t<li>90% dampening means the anchor text will be autolinked only 10% as "
|
442 |
+
"often as it otherwise would be.</li>\r\n"
|
443 |
+
"\t\t\t<li>100% dampening means the anchor text won’t be linked at all."
|
444 |
+
"</li>\r\n"
|
445 |
+
"\t\t</ul>\r\n"
|
446 |
+
"\t\t<p>The “Dampener” column will only appear if you’ve "
|
447 |
+
"enabled it under the “Content Link Settings” tab.</p>\r\n"
|
448 |
+
"\t</li>\r\n"
|
449 |
+
"\t<li><strong>Nofollow</strong> — Checking this will add the "
|
450 |
+
"<code>rel="nofollow"</code> attribute to all autolinks generated "
|
451 |
+
"for that anchor text. You should enable this only if you’re creating "
|
452 |
+
"an automatic affiliate link.</li>\r\n"
|
453 |
+
"\t<li><strong>New window</strong> — Checking this will make the link "
|
454 |
+
"destination open up in a new window when the autolink is clicked.</li>\r\n"
|
455 |
+
"\t<li><strong>Delete</strong> — To delete an autolink, tick its “"
|
456 |
+
"Delete” checkbox and then click “Save Changes.”</li>\r\n"
|
457 |
+
"</ul>\r\n"
|
458 |
+
msgstr ""
|
459 |
+
|
460 |
+
#: modules/autolinks/autolinks.php:60
|
461 |
+
msgid "Content Link Settings Tab"
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: modules/autolinks/autolinks.php:61
|
465 |
+
msgid ""
|
466 |
+
"\r\n"
|
467 |
+
"<p>The following options are available on the Content Link Settings tab:</p>"
|
468 |
+
"\r\n"
|
469 |
+
"\r\n"
|
470 |
+
"<ul>\r\n"
|
471 |
+
"\t<li><strong>Add Autolinks to...</strong> — You can stop Deeplink "
|
472 |
+
"Juggernaut from adding hyperlinks to the content of items of a given post "
|
473 |
+
"type by unchecking the post type’s checkbox.</li>\r\n"
|
474 |
+
"\t<li>\r\n"
|
475 |
+
"\t\t<p><strong>Self-Linking</strong></p>\r\n"
|
476 |
+
"\t\t<ul>\r\n"
|
477 |
+
"\t\t\t<li><strong>Allow posts to link to themselves</strong> — This "
|
478 |
+
"permits Deeplink Juggernaut to add a link to the content of a given post/"
|
479 |
+
"page even if the link is pointing to the URL of that post/page.</li>\r\n"
|
480 |
+
"\t\t\t<li><strong>Allow posts to link to the URL by which the visitor is "
|
481 |
+
"accessing the post</strong> — There are lots of URLs by which you can "
|
482 |
+
"access any given post/page on your site. You can access posts/pages via the "
|
483 |
+
"homepage URL, your site’s many archive URLs, or the URLs of the posts/"
|
484 |
+
"pages themselves. If you have an autolink that points to the homepage, and "
|
485 |
+
"if Deeplink Juggernaut were to add that link to the content of posts when "
|
486 |
+
"those posts are accessed from the homepage, then the homepage would be "
|
487 |
+
"linking to itself. By default, Deeplink Juggernaut won’t let this "
|
488 |
+
"happen. But if you’re okay with that sort of behavior, you can enable "
|
489 |
+
"it by checking this box.</li>\r\n"
|
490 |
+
"\t\t</ul>\r\n"
|
491 |
+
"\t</li>\r\n"
|
492 |
+
"\t<li>\r\n"
|
493 |
+
"\t\t<p><strong>Quantity Restrictions</strong></p>\r\n"
|
494 |
+
"\t\t<ul>\r\n"
|
495 |
+
"\t\t\t<li><strong>Don’t add any more than ___ autolinks per post/page/"
|
496 |
+
"etc.</strong> — Use this option to cap the total number of autolinks "
|
497 |
+
"(for all anchor texts combined) that can be added to the content of any one "
|
498 |
+
"item.</li>\r\n"
|
499 |
+
"\t\t\t<li><strong>Don’t link the same anchor text any more than ___ "
|
500 |
+
"times per post/page/etc.</strong> — Use this option to cap the number "
|
501 |
+
"of times that each anchor text can be autolinked in the content of any one "
|
502 |
+
"item.</li>\r\n"
|
503 |
+
"\t\t\t<li><strong>Don’t link to the same destination any more than ___ "
|
504 |
+
"times per post/page/etc.</strong> — Use this option to cap the number "
|
505 |
+
"of autolinks that any one URL can get within the content of any one item. "
|
506 |
+
"(This is different from the previous option because you can have multiple "
|
507 |
+
"anchor texts pointing to the same place.)</li>\r\n"
|
508 |
+
"\t\t</ul>\r\n"
|
509 |
+
"\t</li>\r\n"
|
510 |
+
"\t<li>\r\n"
|
511 |
+
"\t\t<p><strong>Additional Dampening Effect</strong></p>\r\n"
|
512 |
+
"\t\t<ul>\r\n"
|
513 |
+
"\t\t\t<li><strong>Globally decrease autolinking frequency by ___%</strong> "
|
514 |
+
"— If you have massive amounts of content on your site (e.g. thousands "
|
515 |
+
"of posts), the “Quantity Restrictions” settings may not be "
|
516 |
+
"sufficient to reign in the number of autolinks being generated. If that is "
|
517 |
+
"the case, you can use this option to reduce overall autolinking frequency by "
|
518 |
+
"a given percentage. For example, if you were to set global dampening to 10%, "
|
519 |
+
"then autolinks would be added only 90% as often as before.</li>\r\n"
|
520 |
+
"\t\t\t<li><strong>Add a “Dampener” column to the Content Links "
|
521 |
+
"editor</strong> — Check this box and click “Save Changes” "
|
522 |
+
"to add a new column to the “Content Links” editor table that "
|
523 |
+
"will let you apply the dampening effect to individual autolinks. If "
|
524 |
+
"you’ve also enabled the global dampening option, this will let you "
|
525 |
+
"override the global value for individual links. (For example, you can "
|
526 |
+
"disable dampening for just one of your links by setting the Dampener field "
|
527 |
+
"to 0%.)</li>\r\n"
|
528 |
+
"\t\t</ul>\r\n"
|
529 |
+
"\t</li>\r\n"
|
530 |
+
"\t<li><strong>Tag Restrictions</strong> — By default, Deeplink "
|
531 |
+
"Juggernaut will not autolink a particular anchor text if that anchor text is "
|
532 |
+
"found in a header or in a code block. You can further customize these "
|
533 |
+
"exceptions by adding HTML tags to the list.</li>\r\n"
|
534 |
+
"\t<li><strong>Siloing</strong> — If you enable the siloing feature for "
|
535 |
+
"a given post type (such as posts or pages), then items of that post type "
|
536 |
+
"will only be able to autolink to a webpage on your site if it falls within a "
|
537 |
+
"category, tag, or term shared by that item. For example, you can set it up "
|
538 |
+
"so that posts in Category A can’t autolink to anything on your site "
|
539 |
+
"with the exception of other posts in Category A and the Category A archive. "
|
540 |
+
"Autolinks to external sites will not be affected, since the siloing setting "
|
541 |
+
"will not affect autolinks that have a URL in the Destination box.</li>\r\n"
|
542 |
+
"\t<li><strong>CSS Class for Autolinks</strong> — If you want to apply "
|
543 |
+
"CSS styling to Content Links generated by Deeplink Juggernaut, type in a "
|
544 |
+
"class name here (e.g. “autolink”).</li>\r\n"
|
545 |
+
"</ul>\r\n"
|
546 |
+
msgstr ""
|
547 |
+
|
548 |
+
#: modules/autolinks/autolinks.php:96
|
549 |
+
msgid "Footer Links Tab"
|
550 |
+
msgstr ""
|
551 |
+
|
552 |
+
#: modules/autolinks/autolinks.php:97
|
553 |
+
msgid ""
|
554 |
+
"\r\n"
|
555 |
+
"<p>To add a footer link, fill in the fields and then click “Save "
|
556 |
+
"Changes.” Once you do so, you can edit your new footer link or add "
|
557 |
+
"another one.</p>\r\n"
|
558 |
+
"\r\n"
|
559 |
+
"<ul>\r\n"
|
560 |
+
"\t<li><p><strong>Link Location</strong> — If you want to add a footer "
|
561 |
+
"link across your entire site, leave this box blank. Otherwise, type in the "
|
562 |
+
"location on your site where you want the footer link to appear.</p>\r\n"
|
563 |
+
"\t\t<p>If you only want the footer link to appear on…</p>\r\n"
|
564 |
+
"\t\t<ul>\r\n"
|
565 |
+
"\t\t\t<li>…A particular post, page, attachment, or category/tag/term/"
|
566 |
+
"author archive, just type in the item’s name and then select it from "
|
567 |
+
"the dropdown.</li>\r\n"
|
568 |
+
"\t\t\t<li>…Your blog homepage, just type in “home” and "
|
569 |
+
"select “Blog Homepage” from the dropdown.</li>\r\n"
|
570 |
+
"\t\t\t<li>…A particular URL on your site, just type or paste it into "
|
571 |
+
"the box.</li>\r\n"
|
572 |
+
"\t\t</ul>\r\n"
|
573 |
+
"\t</li>\r\n"
|
574 |
+
"\t<li><p><strong>Match child content</strong> — What this does depends "
|
575 |
+
"on what type of Link Location you specified.</p>\r\n"
|
576 |
+
"\t\t<ul>\r\n"
|
577 |
+
"\t\t\t<li>If the Link Location is a category/tag/term archive, then the "
|
578 |
+
"footer link will also be added to posts within that term.</li>\r\n"
|
579 |
+
"\t\t\t<li>If the Link Location is an author archive, then the footer link "
|
580 |
+
"will also be added to posts written by that author.</li>\r\n"
|
581 |
+
"\t\t\t<li>If the Link Location is a URL, then the footer link will also be "
|
582 |
+
"added to URLs that begin with whatever URL you entered.</li>\r\n"
|
583 |
+
"\t\t</ul>\r\n"
|
584 |
+
"\t</li>\r\n"
|
585 |
+
"\t<li><strong>Negative match</strong> — This will cause the footer "
|
586 |
+
"link to be inserted on webpages <em>other than</em> the Link Location and "
|
587 |
+
"(if the appropriate box is checked) its child content.</li>\r\n"
|
588 |
+
"\t<li><strong>Anchor Text</strong> — Deeplink Juggernaut insert this "
|
589 |
+
"text into your site’s footer and will link that text to the webpage or "
|
590 |
+
"item you specify in the Destination box. The Anchor Text should be a keyword "
|
591 |
+
"that you want the Destination page to rank for.</li>\r\n"
|
592 |
+
"\t<li><p><strong>Destination</strong> — This is the box where you "
|
593 |
+
"specify the webpage where you want the auto-generated hyperlinks to point.</"
|
594 |
+
"p>\r\n"
|
595 |
+
"\t\t<ul>\r\n"
|
596 |
+
"\t\t\t<li>To link to a post, page, attachment, category, tag, term, or "
|
597 |
+
"author on your site, just type in its name and then select it from the "
|
598 |
+
"dropdown.</li>\r\n"
|
599 |
+
"\t\t\t<li>To link to your blog homepage, just type in “home” and "
|
600 |
+
"select “Blog Homepage” from the dropdown.</li>\r\n"
|
601 |
+
"\t\t\t<li>To link to one of the aliased URLs you created with the Link Mask "
|
602 |
+
"Generator, just type in part of the original URL or alias URL and then "
|
603 |
+
"select the link mask from the dropdown.</li>\r\n"
|
604 |
+
"\t\t\t<li>To link to some other webpage, just type or paste in its URL in "
|
605 |
+
"the box.</li>\r\n"
|
606 |
+
"\t\t</ul>\r\n"
|
607 |
+
"\t</li>\r\n"
|
608 |
+
"\t<li><strong>Title Attribute</strong> — The link’s title "
|
609 |
+
"attribute is the text that will appear when the visitor’s mouse "
|
610 |
+
"pointer hovers over the link. Totally optional.</li>\r\n"
|
611 |
+
"\t<li><strong>Nofollow</strong> — Checking this will add the "
|
612 |
+
"<code>rel="nofollow"</code> attribute to all instances of this "
|
613 |
+
"footer link. You should enable this only if you’re creating an "
|
614 |
+
"automatic affiliate link.</li>\r\n"
|
615 |
+
"\t<li><strong>New window</strong> — Checking this will make the link "
|
616 |
+
"destination open up in a new window when the footer link is clicked.</li>\r\n"
|
617 |
+
"\t<li><strong>Delete</strong> — To delete an autolink, tick its “"
|
618 |
+
"Delete” checkbox and then click “Save Changes.”</li>\r\n"
|
619 |
+
"</ul>\r\n"
|
620 |
+
msgstr ""
|
621 |
+
|
622 |
+
#: modules/autolinks/autolinks.php:135
|
623 |
+
msgid "Footer Link Settings Tab"
|
624 |
+
msgstr ""
|
625 |
+
|
626 |
+
#: modules/autolinks/autolinks.php:136
|
627 |
+
msgid ""
|
628 |
+
"\r\n"
|
629 |
+
"<p>The following options are available on the Footer Link Settings tab:</p>"
|
630 |
+
"\r\n"
|
631 |
+
"\r\n"
|
632 |
+
"<ul>\r\n"
|
633 |
+
"\t<li><strong>Link Section Format</strong> — Lets you customize the "
|
634 |
+
"text/HTML that will surround the list of links outputted in your site’"
|
635 |
+
"s footer (represented by the <code>{links}</code> variable).</li>\r\n"
|
636 |
+
"\t<li><strong>Link Format</strong> — Lets you specify text or HTML "
|
637 |
+
"that will surround each individual link (represented by the <code>{link}</"
|
638 |
+
"code> variable).</li>\r\n"
|
639 |
+
"\t<li><strong>Link Separator</strong> — Lets you specify text or HTML "
|
640 |
+
"that will separate each individual link.</li>\r\n"
|
641 |
+
"</ul>\r\n"
|
642 |
+
msgstr ""
|
643 |
+
|
644 |
+
#: modules/autolinks/autolinks.php:148 modules/files/files.php:155
|
645 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:362
|
646 |
+
#: modules/meta/meta-descriptions.php:216 modules/meta/meta-keywords.php:203
|
647 |
+
#: modules/modules/modules.php:203 modules/more-links/more-links.php:105
|
648 |
+
#: modules/more-links/more-links.php:116 modules/settings/settings.php:81
|
649 |
+
#: modules/slugs/slugs.php:113 modules/slugs/slugs.php:125
|
650 |
+
#: modules/titles/titles.php:469
|
651 |
+
msgid "FAQ"
|
652 |
+
msgstr ""
|
653 |
+
|
654 |
+
#: modules/autolinks/autolinks.php:149
|
655 |
+
msgid ""
|
656 |
+
"\r\n"
|
657 |
+
"<ul>\r\n"
|
658 |
+
"\t<li><strong>What happens if I autolink to a post and then delete the post "
|
659 |
+
"later?</strong><br />Deeplink Juggernaut will disable all autolinks that "
|
660 |
+
"point to the deleted post. Deeplink Juggernaut will keep the autolink in the "
|
661 |
+
"list though, so that you can point it somewhere else.</li>\r\n"
|
662 |
+
"\t<li><strong>What happens if I autolink to a draft post?</strong><br /"
|
663 |
+
">Don’t worry: Deeplink Juggernaut won’t actually autolink to it "
|
664 |
+
"until the post is published.</li>\r\n"
|
665 |
+
"\t<li><strong>Does Deeplink Juggernaut edit my posts’ content as it is "
|
666 |
+
"stored in the database?</strong><br />No. Autolinks are added dynamically. "
|
667 |
+
"This means all the autolinks will go away if you disable Deeplink Juggernaut "
|
668 |
+
"or deactivate SEO Ultimate.</li>\r\n"
|
669 |
+
"\t<li><strong>How does the Dampener work?</strong><br />When the Dampener is "
|
670 |
+
"in effect, Deeplink Juggernaut creates a hash for each autolink and creates "
|
671 |
+
"a hash for each post/page/etc. on your site. In order for the autolink to be "
|
672 |
+
"added to the content of a post/page, the two hashes have to be compatible "
|
673 |
+
"with each other. If the Dampener is set to 70%, then the hashes will match "
|
674 |
+
"and the autolink will be applied approximately 30% of the time. This hash "
|
675 |
+
"system results in a pseudo-random dampening effect that will always have a "
|
676 |
+
"consistent outcome for any given anchor/post combination.</li>\r\n"
|
677 |
+
"\t<li><strong>Can I still use the Footer Links feature if my theme has a "
|
678 |
+
"widgetized footer?</strong><br />Yes. Make sure the “SEO Ultimate "
|
679 |
+
"Widgets” module is enabled in the SEO Ultimate <a href='admin.php?"
|
680 |
+
"page=seo' target='_blank'>Module Manager</a>, then go to your <a "
|
681 |
+
"href='widgets.php' target='_blank'>Widgets</a> page and add the “"
|
682 |
+
"Footer Links” widget.\r\n"
|
683 |
+
"</ul>\r\n"
|
684 |
+
msgstr ""
|
685 |
+
|
686 |
+
#: modules/autolinks/autolinks.php:162
|
687 |
+
msgid ""
|
688 |
+
"\r\n"
|
689 |
+
"<ul>\r\n"
|
690 |
+
"\t<li><strong>I configured a Content Link, but the anchor text isn’t "
|
691 |
+
"being linked on my site.</strong><br />You likely enabled a setting on the "
|
692 |
+
"“Content Link Settings” tab that is preventing the autolink from "
|
693 |
+
"being applied.</li>\r\n"
|
694 |
+
"\t<li><strong>I have Content Links configured for “widgets” and "
|
695 |
+
"“blue widgets,” but when the phrase “blue widgets” "
|
696 |
+
"appears on my site, only the word “widgets” is being linked. Why "
|
697 |
+
"is that?</strong><br />Deeplink Juggernaut always links longer anchor texts "
|
698 |
+
"first, so if this is happening, then the “blue widgets” autolink "
|
699 |
+
"must have been disabled in that particular instance due to a Quantity "
|
700 |
+
"Restriction or the Dampener effect being applied.</li>\r\n"
|
701 |
+
"\t<li><strong>Why aren’t my footer links appearing?</strong><br /"
|
702 |
+
">Check to make sure your theme is <a href='http://johnlamansky.com/wordpress/"
|
703 |
+
"theme-plugin-hooks/' target='_blank'>plugin-friendly</a>. Also, check the "
|
704 |
+
"“Footer Link Settings” tab and make sure that the “Link "
|
705 |
+
"Section Format” field includes the <code>{links}</code> variable and "
|
706 |
+
"that the “Link Format” field includes the <code>{link}</code> "
|
707 |
+
"variable.</li>\r\n"
|
708 |
+
"</ul>\r\n"
|
709 |
+
msgstr ""
|
710 |
+
|
711 |
#: modules/autolinks/content-autolinks-settings.php:16
|
712 |
msgid "Content Deeplink Juggernaut Settings"
|
713 |
msgstr ""
|
716 |
msgid "Content Link Settings"
|
717 |
msgstr ""
|
718 |
|
719 |
+
#: modules/autolinks/content-autolinks-settings.php:42
|
720 |
msgid "Add Autolinks to..."
|
721 |
msgstr ""
|
722 |
|
723 |
+
#: modules/autolinks/content-autolinks-settings.php:45
|
724 |
+
msgid "Allow posts to link to themselves"
|
725 |
msgstr ""
|
726 |
|
727 |
+
#: modules/autolinks/content-autolinks-settings.php:46
|
728 |
msgid ""
|
729 |
+
"Allow posts to link to the URL by which the visitor is accessing the post"
|
730 |
msgstr ""
|
731 |
|
732 |
+
#: modules/autolinks/content-autolinks-settings.php:47
|
733 |
msgid "Self-Linking"
|
734 |
msgstr ""
|
735 |
|
736 |
+
#: modules/autolinks/content-autolinks-settings.php:50
|
|
|
|
|
|
|
|
|
737 |
msgid "Don’t add any more than %d autolinks per post/page/etc."
|
738 |
msgstr ""
|
739 |
|
740 |
+
#: modules/autolinks/content-autolinks-settings.php:51
|
741 |
msgid ""
|
742 |
"Don’t link the same anchor text any more than %d times per post/page/"
|
743 |
"etc."
|
744 |
msgstr ""
|
745 |
|
|
|
|
|
|
|
|
|
|
|
|
|
746 |
#: modules/autolinks/content-autolinks-settings.php:52
|
747 |
msgid ""
|
748 |
"Don’t link to the same destination any more than %d times per post/"
|
753 |
msgid "Quantity Restrictions"
|
754 |
msgstr ""
|
755 |
|
756 |
+
#: modules/autolinks/content-autolinks-settings.php:57
|
757 |
+
msgid "Globally decrease autolinking frequency by %d%"
|
758 |
+
msgstr ""
|
759 |
+
|
760 |
+
#: modules/autolinks/content-autolinks-settings.php:59
|
761 |
+
msgid ""
|
762 |
+
"Add a “Dampener” column to the Content Links editor to let me "
|
763 |
+
"customize frequency dampening on a per-link basis"
|
764 |
+
msgstr ""
|
765 |
+
|
766 |
+
#: modules/autolinks/content-autolinks-settings.php:63
|
767 |
+
msgid "Additional Dampening Effect"
|
768 |
+
msgstr ""
|
769 |
+
|
770 |
+
#: modules/autolinks/content-autolinks-settings.php:65
|
771 |
msgid ""
|
772 |
"Don’t add autolinks to text within these HTML tags <em>(separate with "
|
773 |
"commas)</em>:"
|
774 |
msgstr ""
|
775 |
|
776 |
+
#: modules/autolinks/content-autolinks-settings.php:65
|
777 |
msgid "Tag Restrictions"
|
778 |
msgstr ""
|
779 |
|
780 |
+
#: modules/autolinks/content-autolinks-settings.php:73
|
781 |
msgid "%s can only link to internal destinations that share at least one..."
|
782 |
msgstr ""
|
783 |
|
784 |
+
#: modules/autolinks/content-autolinks-settings.php:86
|
785 |
msgid "Siloing"
|
786 |
msgstr ""
|
787 |
|
788 |
+
#: modules/autolinks/content-autolinks-settings.php:88
|
789 |
msgid "CSS Class for Autolinks"
|
790 |
msgstr ""
|
791 |
|
792 |
+
#: modules/autolinks/content-autolinks.php:18
|
793 |
msgid "Content Deeplink Juggernaut"
|
794 |
msgstr ""
|
795 |
|
796 |
+
#: modules/autolinks/content-autolinks.php:19
|
797 |
msgid "Content Links"
|
798 |
msgstr ""
|
799 |
|
800 |
+
#: modules/autolinks/content-autolinks.php:247
|
801 |
msgid ""
|
802 |
"The Content Links section of Deeplink Juggernaut lets you automatically link "
|
803 |
"a certain word or phrase in your post/page content to a URL you specify."
|
804 |
msgstr ""
|
805 |
|
806 |
+
#: modules/autolinks/content-autolinks.php:310
|
807 |
+
msgid ""
|
808 |
+
"<strong>Functionality Change Notice:</strong> The “Site Cap” "
|
809 |
+
"feature (which allowed you set a per-link sitewide quantity limit) has been "
|
810 |
+
"replaced with a more efficient “Dampener” feature that lets you "
|
811 |
+
"reduce autolinking frequency by a percentage. Although the Site Cap feature "
|
812 |
+
"has been replaced, we retained the “Site Cap” column for you in "
|
813 |
+
"the table below, since it looks like you’ve used the Site Cap feature "
|
814 |
+
"in the past. We retained the column to help you remember which links used "
|
815 |
+
"the old feature, so that you know to which links to apply the new “"
|
816 |
+
"Dampener” feature. Once you’re done migrating the Site Cap "
|
817 |
+
"values to Dampener percentages, just clear the “Site Cap” boxes "
|
818 |
+
"to make those boxes (and this message) go away."
|
819 |
+
msgstr ""
|
820 |
+
|
821 |
+
#: modules/autolinks/content-autolinks.php:316
|
822 |
#: modules/autolinks/footer-autolinks.php:157
|
823 |
msgid "Edit Existing Links"
|
824 |
msgstr ""
|
825 |
|
826 |
+
#: modules/autolinks/content-autolinks.php:320
|
827 |
#: modules/autolinks/footer-autolinks.php:161
|
828 |
msgid "Add a New Link"
|
829 |
msgstr ""
|
830 |
|
831 |
+
#: modules/autolinks/content-autolinks.php:333
|
832 |
#: modules/autolinks/footer-autolinks.php:171
|
833 |
msgid "Anchor Text"
|
834 |
msgstr ""
|
835 |
|
836 |
+
#: modules/autolinks/content-autolinks.php:334
|
837 |
#: modules/autolinks/footer-autolinks.php:172
|
838 |
msgid "Destination"
|
839 |
msgstr ""
|
840 |
|
841 |
+
#: modules/autolinks/content-autolinks.php:335
|
842 |
#: modules/autolinks/footer-autolinks.php:173
|
843 |
+
msgid "Title Attribute <em>(optional)</em>"
|
844 |
+
msgstr ""
|
845 |
+
|
846 |
+
#: modules/autolinks/content-autolinks.php:337
|
847 |
+
msgid "Dampener"
|
848 |
msgstr ""
|
849 |
|
850 |
+
#: modules/autolinks/content-autolinks.php:339
|
851 |
msgid "Site Cap"
|
852 |
msgstr ""
|
853 |
|
854 |
+
#: modules/autolinks/content-autolinks.php:340
|
855 |
#: modules/autolinks/footer-autolinks.php:174
|
856 |
msgid "Options"
|
857 |
msgstr ""
|
858 |
|
859 |
+
#: modules/autolinks/content-autolinks.php:342
|
860 |
#: modules/autolinks/footer-autolinks.php:176
|
861 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:102
|
862 |
msgid "Delete"
|
863 |
msgstr ""
|
864 |
|
865 |
+
#: modules/autolinks/content-autolinks.php:375
|
866 |
#: modules/autolinks/footer-autolinks.php:210 modules/noindex/noindex.php:61
|
867 |
#: modules/noindex/noindex.php:85
|
868 |
msgid "Nofollow"
|
869 |
msgstr ""
|
870 |
|
871 |
+
#: modules/autolinks/content-autolinks.php:377
|
872 |
#: modules/autolinks/footer-autolinks.php:212
|
873 |
msgid "New window"
|
874 |
msgstr ""
|
875 |
|
876 |
+
#: modules/autolinks/content-autolinks.php:458
|
877 |
msgid "Inbound Autolink Anchors:<br /><em>(one per line)</em>"
|
878 |
msgstr ""
|
879 |
|
880 |
+
#: modules/autolinks/content-autolinks.php:461
|
881 |
msgid "Don’t add autolinks to anchor texts found in this post."
|
882 |
msgstr ""
|
883 |
|
884 |
+
#: modules/autolinks/content-autolinks.php:461
|
885 |
msgid "Autolink Exclusion:"
|
886 |
msgstr ""
|
887 |
|
888 |
+
#: modules/autolinks/content-autolinks.php:467
|
889 |
msgid ""
|
890 |
"<strong>Incoming Autolink Anchors</strong> — When you enter anchors "
|
891 |
"into this box, Deeplink Juggernaut will search for that anchor in all your "
|
932 |
msgstr ""
|
933 |
|
934 |
#: modules/autolinks/footer-autolinks.php:169
|
935 |
+
msgid "Link Location <em>(optional)</em>"
|
936 |
msgstr ""
|
937 |
|
938 |
#: modules/autolinks/footer-autolinks.php:197
|
943 |
msgid "Negative match"
|
944 |
msgstr ""
|
945 |
|
946 |
+
#: modules/canonical/canonical.php:12 modules/canonical/canonical.php:221
|
947 |
msgid "Canonicalizer"
|
948 |
msgstr ""
|
949 |
|
986 |
msgid "Automated 301 Redirects"
|
987 |
msgstr ""
|
988 |
|
989 |
+
#: modules/canonical/canonical.php:210
|
990 |
msgid ""
|
991 |
"\r\n"
|
992 |
"<ul>\r\n"
|
993 |
+
"\t<li><strong>What it does:</strong> Canonicalizer will point Google to the "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
994 |
"correct URL for your homepage and each of your posts, Pages, categories, "
|
995 |
+
"tags, date archives, and author archives.</li>\r\n"
|
996 |
+
"\t<li><strong>Why it helps:</strong> If Google comes across an alternate URL "
|
997 |
+
"by which one of those items can be accessed, it will be able to find the "
|
998 |
+
"correct URL and won’t penalize you for having two identical pages on "
|
999 |
+
"your site.</li>\r\n"
|
1000 |
+
"\t<li><strong>How to use it:</strong> Just check the three checkboxes. If "
|
1001 |
+
"your site is accessible using both <code>http://</code> and <code>https://</"
|
1002 |
+
"code>, be sure to set the preferred one under “Canonical URL Scheme."
|
1003 |
+
"”</li>\r\n"
|
1004 |
"</ul>\r\n"
|
1005 |
msgstr ""
|
1006 |
|
1116 |
msgstr[0] ""
|
1117 |
msgstr[1] ""
|
1118 |
|
1119 |
+
#: modules/class.su-module.php:700
|
1120 |
msgid ""
|
1121 |
"All the modules on this page have been disabled. You can re-enable them "
|
1122 |
"using the <a href=\"%s\">Module Manager</a>."
|
1123 |
msgstr ""
|
1124 |
|
1125 |
+
#: modules/class.su-module.php:961
|
1126 |
msgid "%1$s | %2$s %3$s by %4$s"
|
1127 |
msgstr ""
|
1128 |
|
1129 |
+
#: modules/class.su-module.php:1040
|
1130 |
msgid "Your site currently doesn’t have any public items of this type."
|
1131 |
msgstr ""
|
1132 |
|
1133 |
+
#: modules/class.su-module.php:1127
|
1134 |
msgid "«"
|
1135 |
msgstr ""
|
1136 |
|
1137 |
+
#: modules/class.su-module.php:1128
|
1138 |
msgid "»"
|
1139 |
msgstr ""
|
1140 |
|
1141 |
+
#: modules/class.su-module.php:1135
|
1142 |
msgid "Displaying %s–%s of %s"
|
1143 |
msgstr ""
|
1144 |
|
1145 |
+
#: modules/class.su-module.php:1149
|
1146 |
msgid "ID"
|
1147 |
msgstr ""
|
1148 |
|
1149 |
+
#: modules/class.su-module.php:1195
|
1150 |
msgid "View"
|
1151 |
msgstr ""
|
1152 |
|
1153 |
+
#: modules/class.su-module.php:1197
|
1154 |
msgid "Edit"
|
1155 |
msgstr ""
|
1156 |
|
1157 |
+
#: modules/class.su-module.php:1367
|
1158 |
msgid "Settings updated."
|
1159 |
msgstr ""
|
1160 |
|
1161 |
+
#: modules/class.su-module.php:1388
|
1162 |
msgid "Save Changes"
|
1163 |
msgstr ""
|
1164 |
|
1165 |
+
#: modules/class.su-module.php:1877
|
1166 |
msgid ""
|
1167 |
"Are you sure you want to replace the textbox contents with this default "
|
1168 |
"value?"
|
1169 |
msgstr ""
|
1170 |
|
1171 |
+
#: modules/class.su-module.php:1903 modules/settings/settings-data.php:23
|
1172 |
msgid "Reset"
|
1173 |
msgstr ""
|
1174 |
|
1175 |
+
#: modules/class.su-module.php:2641 modules/class.su-module.php:2653
|
1176 |
msgid "A Deleted %s"
|
1177 |
msgstr ""
|
1178 |
|
1179 |
+
#: modules/class.su-module.php:2643
|
1180 |
msgid "A Deleted Post"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
+
#: modules/class.su-module.php:2658
|
1184 |
msgid "A Deleted Term"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
+
#: modules/class.su-module.php:2664 modules/meta/meta-descriptions.php:31
|
1188 |
+
#: modules/meta/meta-keywords.php:40 modules/opengraph/opengraph.php:320
|
1189 |
+
#: plugin/class.seo-ultimate.php:1795
|
1190 |
msgid "Blog Homepage"
|
1191 |
msgstr ""
|
1192 |
|
1193 |
+
#: modules/class.su-module.php:2669 plugin/class.seo-ultimate.php:1871
|
1194 |
msgid "Author"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
+
#: modules/class.su-module.php:2671
|
1198 |
msgid "A Deleted User"
|
1199 |
msgstr ""
|
1200 |
|
1201 |
+
#: modules/class.su-module.php:2686 plugin/class.seo-ultimate.php:1901
|
1202 |
msgid "Link Mask"
|
1203 |
msgstr ""
|
1204 |
|
1205 |
+
#: modules/class.su-module.php:2688
|
1206 |
msgid "Link Mask (Disabled)"
|
1207 |
msgstr ""
|
1208 |
|
1209 |
+
#: modules/class.su-module.php:2693
|
1210 |
msgid "A Deleted Link Mask"
|
1211 |
msgstr ""
|
1212 |
|
1213 |
+
#: modules/class.su-module.php:2723
|
1214 |
msgid "Type a URL or start typing the name of an item on your site"
|
1215 |
msgstr ""
|
1216 |
|
1217 |
+
#: modules/class.su-module.php:2736
|
1218 |
msgid "Remove this location from this textbox"
|
1219 |
msgstr ""
|
1220 |
|
1221 |
+
#: modules/class.su-module.php:2736
|
1222 |
msgid "X"
|
1223 |
msgstr ""
|
1224 |
|
1273 |
|
1274 |
#: modules/files/files.php:134
|
1275 |
msgid ""
|
1276 |
+
"Please note that the “discourage search engines” setting "
|
1277 |
+
"won’t have any effect on your robots.txt file, since you’re "
|
1278 |
+
"using <a href=\"%s\">a custom one</a>."
|
1279 |
msgstr ""
|
1280 |
|
1281 |
#: modules/files/files.php:145
|
1296 |
"</ul>\r\n"
|
1297 |
msgstr ""
|
1298 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1299 |
#: modules/files/files.php:156
|
1300 |
msgid ""
|
1301 |
"\r\n"
|
1366 |
"first and run AIOSP’s upgrade process."
|
1367 |
msgstr ""
|
1368 |
|
1369 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:27
|
1370 |
msgid "Link Mask Generator"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:34
|
1374 |
+
msgid ""
|
1375 |
+
"Link Mask Generator won’t work with default or “pathinfo” "
|
1376 |
+
"permalinks. Please change your <a href=\"%s\">permalink structure</a> to "
|
1377 |
+
"enable this module’s functionality."
|
1378 |
+
msgstr ""
|
1379 |
+
|
1380 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:41
|
1381 |
msgid "Aliases"
|
1382 |
msgstr ""
|
1383 |
|
1384 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:86
|
1385 |
msgid "Edit Existing Aliases"
|
1386 |
msgstr ""
|
1387 |
|
1388 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:90
|
1389 |
msgid "Add a New Alias"
|
1390 |
msgstr ""
|
1391 |
|
1392 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:98
|
1393 |
msgid "Actual URL"
|
1394 |
msgstr ""
|
1395 |
|
1396 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:99
|
1397 |
msgid "Alias URL"
|
1398 |
msgstr ""
|
1399 |
|
1400 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:100
|
1401 |
+
msgid "Only on This Post… <em>(optional)</em>"
|
1402 |
msgstr ""
|
1403 |
|
1404 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:125
|
1405 |
msgid "Test"
|
1406 |
msgstr ""
|
1407 |
|
1408 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:152
|
1409 |
msgid "Alias Directory"
|
1410 |
msgstr ""
|
1411 |
|
1412 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:154
|
1413 |
+
msgid "Nofollow masked links"
|
1414 |
msgstr ""
|
1415 |
|
1416 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:154
|
1417 |
msgid "Link Attributes"
|
1418 |
msgstr ""
|
1419 |
|
1420 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:177
|
1421 |
msgid "Link Masks:"
|
1422 |
msgstr ""
|
1423 |
|
1424 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:180
|
1425 |
msgid "URL"
|
1426 |
msgstr ""
|
1427 |
|
1428 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:180
|
1429 |
msgid "Mask URL"
|
1430 |
msgstr ""
|
1431 |
|
1432 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:218
|
1433 |
msgid ""
|
1434 |
"You can stop search engines from following a link by typing in a mask for "
|
1435 |
"its URL."
|
1436 |
msgstr ""
|
1437 |
|
1438 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:305
|
1439 |
msgid "Added by SEO Ultimate's Link Mask Generator module"
|
1440 |
msgstr ""
|
1441 |
|
1442 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:316
|
1443 |
msgid "End Link Mask Generator output"
|
1444 |
msgstr ""
|
1445 |
|
1446 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:326
|
1447 |
+
msgid ""
|
1448 |
+
"\r\n"
|
1449 |
+
"<ul>\r\n"
|
1450 |
+
"\t<li><strong>What it does:</strong> Link Mask Generator lets you replace "
|
1451 |
+
"ugly affiliate links with clean-looking link aliases that redirect to the "
|
1452 |
+
"real URLs. Link Mask Generator will scan your posts for the links to the "
|
1453 |
+
"actual URLs and replace them with links to the alias URLs. When a visitor "
|
1454 |
+
"clicks on the link to the alias URL, Link Mask Generator will redirect the "
|
1455 |
+
"visitor to the actual URL.</li>\r\n"
|
1456 |
+
"\t<li><strong>Why it helps:</strong> This type of functionality is a staple "
|
1457 |
+
"in an affiliate marketer’s toolkit. Link Mask Generator helps you by "
|
1458 |
+
"doing it in an SEO-friendly way: by funneling your affiliate links through a "
|
1459 |
+
"directory (e.g. <code>/go/</code>) which is blocked with <code>robots.txt</"
|
1460 |
+
"code> rules, effectively sealing off link juice flow to your affiliate links."
|
1461 |
+
"</li>\r\n"
|
1462 |
+
"\t<li><strong>How to use it:</strong> Type in the real URL, type in an alias "
|
1463 |
+
"URL, and click “Save Changes” — that’s it!</li>\r\n"
|
1464 |
+
"</ul>\r\n"
|
1465 |
+
msgstr ""
|
1466 |
+
|
1467 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:336
|
1468 |
+
msgid "Aliases Tab"
|
1469 |
+
msgstr ""
|
1470 |
+
|
1471 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:337
|
1472 |
+
msgid ""
|
1473 |
+
"\r\n"
|
1474 |
+
"<p>To add a link alias, fill in the fields and then click “Save "
|
1475 |
+
"Changes.” Once you do so, you can edit your newly masked link or add "
|
1476 |
+
"another one.</p>\r\n"
|
1477 |
+
"\r\n"
|
1478 |
+
"<ul>\r\n"
|
1479 |
+
"\t<li><strong>Actual URL</strong> — This box is where you put your "
|
1480 |
+
"affiliate URL (or other URL that you want to mask).</li>\r\n"
|
1481 |
+
"\t<li><strong>Alias URL</strong> — This box is where you specify the "
|
1482 |
+
"new URL that will replace the actual one.</li>\r\n"
|
1483 |
+
"\t<li><strong>Only on This Post</strong> — If you want to mask the "
|
1484 |
+
"actual URL across your entire site, leave this box blank. If you only want "
|
1485 |
+
"to mask the actual URL within an individual post, then type its name into "
|
1486 |
+
"this box and select it from the dropdown.</li>\r\n"
|
1487 |
+
"\t<li><strong>Delete</strong> — To delete a link mask, tick its “"
|
1488 |
+
"Delete” checkbox and then click “Save Changes.”</li>\r\n"
|
1489 |
+
"</ul>\r\n"
|
1490 |
+
msgstr ""
|
1491 |
+
|
1492 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:350
|
1493 |
+
#: modules/titles/titles.php:431
|
1494 |
+
msgid "Settings Tab"
|
1495 |
+
msgstr ""
|
1496 |
+
|
1497 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:351
|
1498 |
+
msgid ""
|
1499 |
+
"\r\n"
|
1500 |
+
"<p>The following options are available on the Settings tab:</p>\r\n"
|
1501 |
+
"\r\n"
|
1502 |
+
"<ul>\r\n"
|
1503 |
+
"\t<li><strong>Alias Directory</strong> — If you’d like, you can "
|
1504 |
+
"change the name of the directory that contains all your alias URLs. "
|
1505 |
+
"(Don’t worry, you won’t break any links by changing this.)</li>"
|
1506 |
+
"\r\n"
|
1507 |
+
"\t<li><strong>Nofollow masked links</strong> — Checking this will add "
|
1508 |
+
"the <code>rel="nofollow"</code> attribute to any masked links on "
|
1509 |
+
"your site. This makes it super-easy to nofollow all your affiliate links "
|
1510 |
+
"automatically.</li>\r\n"
|
1511 |
+
"</ul>\r\n"
|
1512 |
+
msgstr ""
|
1513 |
+
|
1514 |
+
#: modules/internal-link-aliases/internal-link-aliases.php:363
|
1515 |
+
msgid ""
|
1516 |
+
"\r\n"
|
1517 |
+
"<ul>\r\n"
|
1518 |
+
"\t<li><strong>Can I automatically link a phrase on my site to one of my "
|
1519 |
+
"alias URLs?</strong><br />Yes. Once you’ve created your link mask, go "
|
1520 |
+
"to Deeplink Juggernaut’s “Content Links” section, type the "
|
1521 |
+
"contents of your link mask’s “Alias URL” field into "
|
1522 |
+
"Deeplink Juggernaut’s “Destination” field, and select your "
|
1523 |
+
"link mask from the dropdown that appears.</li>\r\n"
|
1524 |
+
"\t<li><strong>Will Link Mask Generator still add the <code>robots.txt</code> "
|
1525 |
+
"rules if I’m using the File Editor module to create a custom "
|
1526 |
+
"<code>robots.txt</code>?</strong><br />Yes.</li>\r\n"
|
1527 |
+
"</ul>\r\n"
|
1528 |
+
msgstr ""
|
1529 |
+
|
1530 |
#: modules/link-nofollow/link-nofollow.php:12
|
1531 |
#: modules/link-nofollow/link-nofollow.php:132
|
1532 |
msgid "Nofollow Manager"
|
1771 |
"</ul>\r\n"
|
1772 |
msgstr ""
|
1773 |
|
1774 |
+
#: modules/meta/meta-descriptions.php:204 modules/meta/meta-keywords.php:194
|
1775 |
+
msgid "Blog Homepage Tab"
|
1776 |
+
msgstr ""
|
1777 |
+
|
1778 |
#: modules/meta/meta-descriptions.php:205
|
1779 |
msgid ""
|
1780 |
"\r\n"
|
1783 |
"<ul>\r\n"
|
1784 |
"\t<li><strong>Blog Homepage Meta Description</strong> — When your blog "
|
1785 |
"homepage appears in search results, it’ll have a title and a "
|
1786 |
+
"description. When you type a description into this box, the Meta Editor will "
|
1787 |
+
"add code to your blog homepage (the <code><meta name=""
|
1788 |
+
"description" /></code> tag) that asks search engines to use what "
|
1789 |
+
"you’ve entered as the homepage’s search results description.</li>"
|
1790 |
+
"\r\n"
|
1791 |
"\t<li><strong>Use this blog’s tagline as the default homepage "
|
1792 |
"description.</strong> — If this box is checked and if the Blog "
|
1793 |
"Homepage Meta Description field is empty, Meta Editor will use your "
|
1802 |
"\r\n"
|
1803 |
"<ul>\r\n"
|
1804 |
"\t<li><strong>How do I edit the meta description of my homepage?</"
|
1805 |
+
"strong><br />If you have configured your <a href='options-reading."
|
1806 |
+
"php'>Settings ⇒ Reading</a> section to use a “front page” "
|
1807 |
+
"and/or a “posts page,” just edit those pages’s meta "
|
1808 |
+
"descriptions on the “Pages” tab. Otherwise, just use the Blog "
|
1809 |
+
"Homepage field.</li>\r\n"
|
|
|
1810 |
"</ul>\r\n"
|
1811 |
msgstr ""
|
1812 |
|
1813 |
+
#: modules/meta/meta-descriptions.php:226
|
|
|
1814 |
msgid ""
|
1815 |
"\r\n"
|
1816 |
"<ul>\r\n"
|
1823 |
"\t\t<p>If the problem persists, try disabling other SEO plugins that may be "
|
1824 |
"generating meta tags.</p>\r\n"
|
1825 |
"\t\t<p>Troubleshooting tip: Go to <a href='options-general.php?page=seo-"
|
1826 |
+
"ultimate'>Settings ⇒ SEO Ultimate</a> and enable the “Identify "
|
1827 |
+
"the plugin’s HTML code insertions with HTML comment tags” "
|
1828 |
+
"option. This will mark SEO Ultimate’s meta tags with comments, "
|
1829 |
+
"allowing you to see which meta tags are generated by SEO Ultimate and which "
|
1830 |
+
"aren’t.</p>\r\n"
|
1831 |
"\t</li>\r\n"
|
1832 |
"</ul>\r\n"
|
1833 |
msgstr ""
|
1841 |
msgstr ""
|
1842 |
|
1843 |
#: modules/meta/meta-keywords.php:38 modules/meta/meta-robots.php:22
|
1844 |
+
#: modules/opengraph/opengraph.php:317
|
1845 |
msgid "Sitewide Values"
|
1846 |
msgstr ""
|
1847 |
|
1848 |
#: modules/meta/meta-keywords.php:39 modules/noindex/noindex.php:50
|
1849 |
+
#: modules/opengraph/opengraph.php:318
|
1850 |
msgid "Default Values"
|
1851 |
msgstr ""
|
1852 |
|
1866 |
msgid "Blog Homepage Meta Keywords"
|
1867 |
msgstr ""
|
1868 |
|
1869 |
+
#: modules/meta/meta-keywords.php:170
|
1870 |
msgid "Meta Keywords:<br /><em>(separate with commas)</em>"
|
1871 |
msgstr ""
|
1872 |
|
1873 |
+
#: modules/meta/meta-keywords.php:179
|
1874 |
msgid ""
|
1875 |
"\r\n"
|
1876 |
"<p>Meta Keywords Editor lets you tell search engines what keywords are "
|
1877 |
"associated with the various pages on your site. Modern search engines "
|
1878 |
+
"don’t give meta keywords much weight, if any at all, but the option is "
|
1879 |
+
"there if you want to use it.</p>\r\n"
|
|
|
|
|
1880 |
msgstr ""
|
1881 |
|
1882 |
+
#: modules/meta/meta-keywords.php:185 modules/meta/meta-robots.php:63
|
1883 |
+
msgid "Sitewide Settings Tab"
|
1884 |
+
msgstr ""
|
1885 |
+
|
1886 |
+
#: modules/meta/meta-keywords.php:186
|
1887 |
msgid ""
|
1888 |
"\r\n"
|
1889 |
"<ul>\r\n"
|
1890 |
"\t<li><strong>Sitewide Keywords</strong> — Here you can enter keywords "
|
1891 |
+
"that describe the overall subject matter of your entire blog. Use commas to "
|
1892 |
"separate keywords. These keywords will be put in the <code>>meta "
|
1893 |
"name="keywords" /></code> tags of all webpages on the site "
|
1894 |
"(homepage, posts, pages, archives, etc.).</li>\r\n"
|
1895 |
+
"</ul>\r\n"
|
1896 |
+
msgstr ""
|
1897 |
+
|
1898 |
+
#: modules/meta/meta-keywords.php:195
|
1899 |
+
msgid ""
|
1900 |
+
"\r\n"
|
1901 |
+
"<ul>\r\n"
|
1902 |
"\t<li><strong>Blog Homepage Meta Keywords</strong> — These keywords "
|
1903 |
"will be applied only to the <em>blog</em> homepage. Note that if you’"
|
1904 |
"ve specified a “front page” under <a href='options-reading."
|
1907 |
"</ul>\r\n"
|
1908 |
msgstr ""
|
1909 |
|
1910 |
+
#: modules/meta/meta-keywords.php:204
|
1911 |
msgid ""
|
1912 |
"\r\n"
|
1913 |
"<ul>\r\n"
|
1914 |
+
"\t<li><strong>How do I edit the meta keywords of my homepage?</strong><br /"
|
1915 |
+
">If you have configured your <a href='options-reading.php'>Settings ⇒ "
|
1916 |
+
"Reading</a> section to use a “front page” and/or a “posts "
|
1917 |
+
"page,” just edit those pages’s meta keywords on the “"
|
1918 |
+
"Pages” tab. Otherwise, just use the Blog Homepage field.</li>\r\n"
|
|
|
|
|
|
|
|
|
|
|
1919 |
"\t<li><strong>What happens if I add a global keyword that I previously "
|
1920 |
"assigned to individual posts or pages?</strong><br />Don’t worry; Meta "
|
1921 |
"Keywords Editor will remove duplicate keywords automatically.</li>\r\n"
|
1922 |
"</ul>\r\n"
|
1923 |
msgstr ""
|
1924 |
|
1925 |
+
#: modules/meta/meta-keywords.php:214 modules/meta/meta-robots.php:103
|
1926 |
+
msgid ""
|
1927 |
+
"\r\n"
|
1928 |
+
"<ul>\r\n"
|
1929 |
+
"\t<li>\r\n"
|
1930 |
+
"\t\t<p><strong>What do I do if my site has multiple meta tags?</strong><br /"
|
1931 |
+
">First, try removing your theme’s built-in meta tags if it has them. "
|
1932 |
+
"Go to <a href='theme-editor.php' target='_blank'>Appearance ⇒ Editor</"
|
1933 |
+
"a> and edit <code>header.php</code>. Delete or comment-out any <code><"
|
1934 |
+
"meta></code> tags.</p>\r\n"
|
1935 |
+
"\t\t<p>If the problem persists, try disabling other SEO plugins that may be "
|
1936 |
+
"generating meta tags.</p>\r\n"
|
1937 |
+
"\t\t<p>Troubleshooting tip: Go to <a href='options-general.php?page=seo-"
|
1938 |
+
"ultimate'>Settings ⇒ SEO Ultimate</a> and enable the “Insert "
|
1939 |
+
"comments around HTML code insertions” option. This will mark SEO "
|
1940 |
+
"Ultimate’s meta tags with comments, allowing you to see which meta "
|
1941 |
+
"tags are generated by SEO Ultimate and which aren’t.</p>\r\n"
|
1942 |
+
"\t</li>\r\n"
|
1943 |
+
"</ul>\r\n"
|
1944 |
+
msgstr ""
|
1945 |
+
|
1946 |
#: modules/meta/meta-robots.php:12
|
1947 |
msgid "Meta Robot Tags Editor"
|
1948 |
msgstr ""
|
2000 |
#: modules/meta/meta-robots.php:64
|
2001 |
msgid ""
|
2002 |
"\r\n"
|
|
|
|
|
2003 |
"<ul>\r\n"
|
2004 |
+
"\t<li><strong>Don’t use this site’s Open Directory / Yahoo! "
|
2005 |
+
"Directory description in search results</strong> — If your site is "
|
2006 |
+
"listed in the <a href='http://www.dmoz.org/' target='_blank'>Open Directory "
|
2007 |
+
"(DMOZ)</a> or the <a href='http://dir.yahoo.com/' target='_blank'>Yahoo! "
|
2008 |
+
"Directory</a>, some search engines may use your directory listing as the "
|
2009 |
+
"meta description. These boxes tell search engines not to do that and will "
|
2010 |
+
"give you full control over your meta descriptions. These settings have no "
|
2011 |
+
"effect if your site isn’t listed in the Open Directory or Yahoo! "
|
2012 |
+
"Directory respectively.</li>\r\n"
|
2013 |
+
"\t<li><strong>Don’t cache or archive this site</strong> — When "
|
2014 |
+
"you check this box, Meta Editor will ask search engines (Google, Yahoo!, "
|
2015 |
+
"Bing, etc.) and archivers (Archive.org, etc.) to <em>not</em> make cached or "
|
|
|
|
|
|
|
2016 |
"archived “copies” of your site.</li>\r\n"
|
2017 |
+
"</ul>\r\n"
|
2018 |
+
msgstr ""
|
2019 |
+
|
2020 |
+
#: modules/meta/meta-robots.php:73
|
2021 |
+
msgid "Default Values Tab"
|
2022 |
+
msgstr ""
|
2023 |
+
|
2024 |
+
#: modules/meta/meta-robots.php:74
|
2025 |
+
msgid ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026 |
"\r\n"
|
2027 |
+
"<p><strong>Prevent indexing of…</strong></p>\r\n"
|
2028 |
+
"<ul>\r\n"
|
2029 |
+
"\t<li><strong>Administration back-end pages</strong> — Tells spiders "
|
2030 |
+
"not to index the administration area (the part you’re in now), in the "
|
2031 |
+
"unlikely event a spider somehow gains access to the administration. "
|
2032 |
+
"Recommended.</li>\r\n"
|
2033 |
+
"\t<li><strong>Author archives</strong> — Tells spiders not to index "
|
2034 |
+
"author archives. Useful if your blog only has one author.</li>\r\n"
|
2035 |
+
"\t<li><strong>Blog search pages</strong> — Tells spiders not to index "
|
2036 |
+
"the result pages of WordPress's blog search function. Recommended.</li>\r\n"
|
2037 |
+
"\t<li><strong>Category archives</strong> — Tells spiders not to index "
|
2038 |
+
"category archives. Recommended only if you don't use categories.</li>\r\n"
|
2039 |
+
"\t<li><strong>Comment feeds</strong> — Tells spiders not to index the "
|
2040 |
+
"RSS feeds that exist for every post's comments. (These comment feeds are "
|
2041 |
"totally separate from your normal blog feeds.)</li>\r\n"
|
2042 |
+
"\t<li><strong>Comment subpages</strong> — Tells spiders not to index "
|
2043 |
+
"posts' comment subpages.</li>\r\n"
|
2044 |
+
"\t<li><strong>Date-based archives</strong> — Tells spiders not to "
|
2045 |
"index day/month/year archives. Recommended, since these pages have little "
|
2046 |
"keyword value.</li>\r\n"
|
2047 |
+
"\t<li><strong>Subpages of the homepage</strong> — Tells spiders not to "
|
2048 |
+
"index the homepage's subpages (page 2, page 3, etc). Recommended.</li>\r\n"
|
2049 |
+
"\t<li><strong>Tag archives</strong> — Tells spiders not to index tag "
|
2050 |
+
"archives. Recommended only if you don't use tags.</li>\r\n"
|
2051 |
+
"\t<li><strong>User login/registration pages</strong> — Tells spiders "
|
2052 |
+
"not to index WordPress's user login and registration pages. Recommended.</li>"
|
2053 |
"\r\n"
|
2054 |
+
"</ul>\r\n"
|
2055 |
+
msgstr ""
|
2056 |
+
|
2057 |
+
#: modules/meta/meta-robots.php:92
|
2058 |
+
msgid "Bulk Editor Tabs"
|
2059 |
+
msgstr ""
|
2060 |
+
|
2061 |
+
#: modules/meta/meta-robots.php:93
|
2062 |
+
msgid ""
|
2063 |
+
"\r\n"
|
2064 |
+
"<ul>\r\n"
|
2065 |
+
"\t<li><strong>Noindex</strong> — Checking this for an item will ask "
|
2066 |
+
"search engines to remove that item’s webpage from their indices. Use "
|
2067 |
+
"this to remove pages that you don’t want showing up in search results "
|
2068 |
+
"(such as a Privacy Policy page, for example).</li>\r\n"
|
2069 |
+
"\t<li><strong>Nofollow</strong> — Checking this for an item will tell "
|
2070 |
+
"search engines to ignore the links to other webpages that are on that "
|
2071 |
"item’s webpage. Note: this is page-level “meta nofollow,” "
|
2072 |
"not to be confused with link-level “rel nofollow.”</li>\r\n"
|
|
|
|
|
2073 |
"</ul>\r\n"
|
2074 |
msgstr ""
|
2075 |
|
2076 |
+
#: modules/meta/webmaster-verify.php:12 modules/meta/webmaster-verify.php:93
|
2077 |
msgid "Webmaster Verification Assistant"
|
2078 |
msgstr ""
|
2079 |
|
2097 |
msgid "Meta Tag"
|
2098 |
msgstr ""
|
2099 |
|
2100 |
+
#: modules/meta/webmaster-verify.php:82
|
2101 |
msgid ""
|
2102 |
"\r\n"
|
2103 |
"<ul>\r\n"
|
2116 |
"</ul>\r\n"
|
2117 |
msgstr ""
|
2118 |
|
2119 |
+
#: modules/misc/misc.php:11 plugin/class.seo-ultimate.php:1508
|
2120 |
msgid "Miscellaneous"
|
2121 |
msgstr ""
|
2122 |
|
2134 |
msgid "Modules"
|
2135 |
msgstr ""
|
2136 |
|
2137 |
+
#: modules/modules/modules.php:54
|
2138 |
+
msgid ""
|
2139 |
+
"Like SEO Ultimate? Check out the WP Ultimate theme from SEO Design Solutions."
|
2140 |
+
msgstr ""
|
2141 |
+
|
2142 |
+
#: modules/modules/modules.php:62
|
2143 |
msgid ""
|
2144 |
"SEO Ultimate’s features are located in groups called “modules."
|
2145 |
"” By default, most of these modules are listed in the “"
|
2148 |
"upper-right-hand corner of your administration screen."
|
2149 |
msgstr ""
|
2150 |
|
2151 |
+
#: modules/modules/modules.php:64
|
2152 |
msgid ""
|
2153 |
"The Module Manager lets you disable or hide modules you don’t use. "
|
2154 |
"You can also silence modules from displaying bubble alerts on the menu."
|
2155 |
msgstr ""
|
2156 |
|
2157 |
+
#: modules/modules/modules.php:68
|
2158 |
msgid "Modules updated."
|
2159 |
msgstr ""
|
2160 |
|
2161 |
+
#: modules/modules/modules.php:73
|
2162 |
msgid "Status"
|
2163 |
msgstr ""
|
2164 |
|
2165 |
+
#: modules/modules/modules.php:74
|
2166 |
msgid "Module"
|
2167 |
msgstr ""
|
2168 |
|
2169 |
+
#: modules/modules/modules.php:87
|
2170 |
msgid "Enabled"
|
2171 |
msgstr ""
|
2172 |
|
2173 |
+
#: modules/modules/modules.php:88
|
2174 |
msgid "Silenced"
|
2175 |
msgstr ""
|
2176 |
|
2177 |
+
#: modules/modules/modules.php:89
|
2178 |
msgid "Hidden"
|
2179 |
msgstr ""
|
2180 |
|
2181 |
+
#: modules/modules/modules.php:90
|
2182 |
msgid "Disabled"
|
2183 |
msgstr ""
|
2184 |
|
2185 |
+
#: modules/modules/modules.php:189
|
2186 |
msgid "Options Help"
|
2187 |
msgstr ""
|
2188 |
|
2189 |
+
#: modules/modules/modules.php:190
|
2190 |
msgid ""
|
2191 |
"\r\n"
|
2192 |
+
"<p>SEO Ultimate’s features are located in groups called “modules."
|
2193 |
+
"” By default, most of these modules are listed in the “"
|
2194 |
+
"SEO” menu on the left.</p>\r\n"
|
2195 |
"<p>The Module Manager lets you customize the visibility and accessibility of "
|
2196 |
"each module; here are the options available:</p>\r\n"
|
2197 |
"<ul>\r\n"
|
2209 |
"</ul>\r\n"
|
2210 |
msgstr ""
|
2211 |
|
2212 |
+
#: modules/modules/modules.php:204
|
2213 |
msgid ""
|
2214 |
"\r\n"
|
2215 |
"<ul>\r\n"
|
2309 |
msgstr ""
|
2310 |
|
2311 |
#: modules/noindex/noindex.php:69 modules/noindex/noindex.php:80
|
2312 |
+
#: modules/opengraph/opengraph.php:288 modules/opengraph/opengraph.php:390
|
2313 |
+
#: modules/opengraph/opengraph.php:391
|
2314 |
msgid "Use default"
|
2315 |
msgstr ""
|
2316 |
|
2332 |
|
2333 |
#: modules/noindex/noindex.php:96
|
2334 |
msgid ""
|
2335 |
+
"Note: The <a href=\"options-reading.php\">“discourage search "
|
2336 |
+
"engines” checkbox</a> will block indexing of the entire site, "
|
2337 |
+
"regardless of which options are set below."
|
2338 |
msgstr ""
|
2339 |
|
2340 |
#: modules/noindex/noindex.php:99
|
2401 |
msgid "Open Graph"
|
2402 |
msgstr ""
|
2403 |
|
2404 |
+
#: modules/opengraph/opengraph.php:290
|
2405 |
msgid "Type"
|
2406 |
msgstr ""
|
2407 |
|
2408 |
+
#: modules/opengraph/opengraph.php:295
|
2409 |
msgid "Title"
|
2410 |
msgstr ""
|
2411 |
|
2412 |
+
#: modules/opengraph/opengraph.php:300
|
2413 |
msgid "Description"
|
2414 |
msgstr ""
|
2415 |
|
2416 |
+
#: modules/opengraph/opengraph.php:305
|
2417 |
msgid "Image"
|
2418 |
msgstr ""
|
2419 |
|
2420 |
+
#: modules/opengraph/opengraph.php:328
|
2421 |
msgid "Site Name"
|
2422 |
msgstr ""
|
2423 |
|
2424 |
+
#: modules/opengraph/opengraph.php:329
|
2425 |
msgid "Facebook App ID"
|
2426 |
msgstr ""
|
2427 |
|
2428 |
+
#: modules/opengraph/opengraph.php:330
|
2429 |
msgid "This Site’s Twitter Handle"
|
2430 |
msgstr ""
|
2431 |
|
2432 |
+
#: modules/opengraph/opengraph.php:337
|
2433 |
msgid "Default Types"
|
2434 |
msgstr ""
|
2435 |
|
2436 |
+
#: modules/opengraph/opengraph.php:339
|
2437 |
msgid "Post Type"
|
2438 |
msgstr ""
|
2439 |
|
2440 |
+
#: modules/opengraph/opengraph.php:340
|
2441 |
msgid "Open Graph Type"
|
2442 |
msgstr ""
|
2443 |
|
2444 |
+
#: modules/opengraph/opengraph.php:341
|
2445 |
msgid "Twitter Type"
|
2446 |
msgstr ""
|
2447 |
|
2448 |
+
#: modules/opengraph/opengraph.php:356 modules/opengraph/opengraph.php:361
|
2449 |
msgid "Default Image"
|
2450 |
msgstr ""
|
2451 |
|
2452 |
+
#: modules/opengraph/opengraph.php:359
|
2453 |
msgid ""
|
2454 |
"In the box below, you can specify an image URL or an image from your media "
|
2455 |
"library to use as a default image in the event that there is no image "
|
2456 |
"otherwise specified for a given webpage on your site."
|
2457 |
msgstr ""
|
2458 |
|
2459 |
+
#: modules/opengraph/opengraph.php:368
|
2460 |
+
msgid "Include author data for posts"
|
2461 |
+
msgstr ""
|
2462 |
+
|
2463 |
+
#: modules/opengraph/opengraph.php:368
|
2464 |
+
msgid "Open Graph Data"
|
2465 |
+
msgstr ""
|
2466 |
+
|
2467 |
+
#: modules/opengraph/opengraph.php:370
|
2468 |
+
msgid "Use the non-validating code prescribed by Open Graph and Twitter"
|
2469 |
+
msgstr ""
|
2470 |
+
|
2471 |
+
#: modules/opengraph/opengraph.php:371
|
2472 |
+
msgid "Alter the code to validate as XHTML"
|
2473 |
+
msgstr ""
|
2474 |
+
|
2475 |
+
#: modules/opengraph/opengraph.php:372
|
2476 |
+
msgid "Alter the code to validate as HTML5"
|
2477 |
+
msgstr ""
|
2478 |
+
|
2479 |
+
#: modules/opengraph/opengraph.php:373
|
2480 |
+
msgid "HTML Validation"
|
2481 |
+
msgstr ""
|
2482 |
+
|
2483 |
+
#: modules/opengraph/opengraph.php:379 modules/titles/titles.php:91
|
2484 |
msgid "Blog Homepage Title"
|
2485 |
msgstr ""
|
2486 |
|
2487 |
+
#: modules/opengraph/opengraph.php:380
|
2488 |
msgid "Blog Homepage Description"
|
2489 |
msgstr ""
|
2490 |
|
2491 |
+
#: modules/opengraph/opengraph.php:381
|
2492 |
msgid "Blog Homepage Image"
|
2493 |
msgstr ""
|
2494 |
|
2495 |
+
#: modules/opengraph/opengraph.php:387 modules/widgets/widgets.php:140
|
2496 |
msgid "Title:"
|
2497 |
msgstr ""
|
2498 |
|
2499 |
+
#: modules/opengraph/opengraph.php:388
|
2500 |
msgid "Description:"
|
2501 |
msgstr ""
|
2502 |
|
2503 |
+
#: modules/opengraph/opengraph.php:389
|
2504 |
msgid "Image:"
|
2505 |
msgstr ""
|
2506 |
|
2507 |
+
#: modules/opengraph/opengraph.php:390
|
2508 |
msgid "Open Graph Type:"
|
2509 |
msgstr ""
|
2510 |
|
2511 |
+
#: modules/opengraph/opengraph.php:391
|
2512 |
msgid "Twitter Type:"
|
2513 |
msgstr ""
|
2514 |
|
2515 |
+
#: modules/opengraph/opengraph.php:416
|
2516 |
msgid "Featured Image: %s"
|
2517 |
msgstr ""
|
2518 |
|
2519 |
+
#: modules/opengraph/opengraph.php:424
|
2520 |
+
#: modules/rich-snippets/rich-snippets.php:358
|
2521 |
msgid "None"
|
2522 |
msgstr ""
|
2523 |
|
2524 |
+
#: modules/opengraph/opengraph.php:425
|
2525 |
msgid "Internet"
|
2526 |
msgstr ""
|
2527 |
|
2528 |
+
#: modules/opengraph/opengraph.php:426
|
2529 |
msgid "Article"
|
2530 |
msgstr ""
|
2531 |
|
2532 |
+
#: modules/opengraph/opengraph.php:427
|
2533 |
msgid "Blog"
|
2534 |
msgstr ""
|
2535 |
|
2536 |
+
#: modules/opengraph/opengraph.php:428
|
2537 |
msgid "Profile"
|
2538 |
msgstr ""
|
2539 |
|
2540 |
+
#: modules/opengraph/opengraph.php:429
|
2541 |
msgid "Website"
|
2542 |
msgstr ""
|
2543 |
|
2544 |
+
#: modules/opengraph/opengraph.php:430
|
2545 |
msgid "Products"
|
2546 |
msgstr ""
|
2547 |
|
2548 |
+
#: modules/opengraph/opengraph.php:431
|
2549 |
msgid "Book"
|
2550 |
msgstr ""
|
2551 |
|
2552 |
+
#: modules/opengraph/opengraph.php:432
|
2553 |
msgid "Music"
|
2554 |
msgstr ""
|
2555 |
|
2556 |
+
#: modules/opengraph/opengraph.php:433
|
2557 |
msgid "Album"
|
2558 |
msgstr ""
|
2559 |
|
2560 |
+
#: modules/opengraph/opengraph.php:434
|
2561 |
msgid "Playlist"
|
2562 |
msgstr ""
|
2563 |
|
2564 |
+
#: modules/opengraph/opengraph.php:435
|
2565 |
msgid "Radio Station"
|
2566 |
msgstr ""
|
2567 |
|
2568 |
+
#: modules/opengraph/opengraph.php:436
|
2569 |
msgid "Song"
|
2570 |
msgstr ""
|
2571 |
|
2572 |
+
#: modules/opengraph/opengraph.php:437
|
2573 |
msgid "Videos"
|
2574 |
msgstr ""
|
2575 |
|
2576 |
+
#: modules/opengraph/opengraph.php:438
|
2577 |
msgid "Movie"
|
2578 |
msgstr ""
|
2579 |
|
2580 |
+
#: modules/opengraph/opengraph.php:439
|
2581 |
msgid "TV Episode"
|
2582 |
msgstr ""
|
2583 |
|
2584 |
+
#: modules/opengraph/opengraph.php:440
|
2585 |
msgid "TV Show"
|
2586 |
msgstr ""
|
2587 |
|
2588 |
+
#: modules/opengraph/opengraph.php:441
|
2589 |
msgid "Video"
|
2590 |
msgstr ""
|
2591 |
|
2592 |
+
#: modules/opengraph/opengraph.php:448
|
2593 |
msgid "Regular"
|
2594 |
msgstr ""
|
2595 |
|
2596 |
+
#: modules/opengraph/opengraph.php:449
|
2597 |
+
#: modules/rich-snippets/rich-snippets.php:121
|
2598 |
msgid "Photo"
|
2599 |
msgstr ""
|
2600 |
|
2601 |
+
#: modules/opengraph/opengraph.php:471
|
2602 |
msgid "Twitter Handle"
|
2603 |
msgstr ""
|
2604 |
|
2605 |
+
#: modules/opengraph/opengraph.php:480
|
2606 |
+
msgid ""
|
2607 |
+
"\r\n"
|
2608 |
+
"<ul>\r\n"
|
2609 |
+
"\t<li><strong>What it does:</strong> Open Graph Integrator makes it easy for "
|
2610 |
+
"you to convey information about your site to social networks like Facebook, "
|
2611 |
+
"Twitter, and Google+.</li>\r\n"
|
2612 |
+
"\t<li><strong>Why it helps:</strong> By providing this Open Graph data, you "
|
2613 |
+
"can customize how these social networks will present your site when people "
|
2614 |
+
"share it with their followers.</li>\r\n"
|
2615 |
+
"\t<li><strong>How to use it:</strong> The “Sitewide Values” tab "
|
2616 |
+
"lets you specify data that applies to your entire site. The “Default "
|
2617 |
+
"Values” tab lets you specify default data for your posts, pages, etc. "
|
2618 |
+
"The bulk editor tabs let you override those defaults on individual posts and "
|
2619 |
+
"pages. If the authors on your site fill in the “Twitter Handle” "
|
2620 |
+
"field which Open Graph Integrator adds to the <a href='profile.php'>profile "
|
2621 |
+
"editor</a>, Open Graph Integrator will communicate that information to "
|
2622 |
+
"Twitter as well.</li>\r\n"
|
2623 |
+
"</ul>\r\n"
|
2624 |
+
msgstr ""
|
2625 |
+
|
2626 |
#: modules/permalinks/permalinks.php:15
|
2627 |
msgid "Permalink Tweaker"
|
2628 |
msgstr ""
|
2629 |
|
2630 |
+
#: modules/permalinks/permalinks.php:75
|
2631 |
msgid ""
|
2632 |
"To use the Permalinks Tweaker, you must disable default (query-string) "
|
2633 |
"permalinks in your <a href=\"options-permalink.php\">Permalink Settings</a>."
|
2634 |
msgstr ""
|
2635 |
|
2636 |
+
#: modules/permalinks/permalinks.php:100
|
2637 |
msgid "Remove the URL bases of..."
|
2638 |
msgstr ""
|
2639 |
|
2640 |
+
#: modules/permalinks/permalinks.php:105
|
2641 |
msgid "Before"
|
2642 |
msgstr ""
|
2643 |
|
2644 |
+
#: modules/permalinks/permalinks.php:107
|
2645 |
msgid "After"
|
2646 |
msgstr ""
|
2647 |
|
2648 |
+
#: modules/permalinks/permalinks.php:127
|
2649 |
msgid "term archive"
|
2650 |
msgstr ""
|
2651 |
|
2652 |
+
#: modules/permalinks/permalinks.php:128
|
2653 |
msgid "page"
|
2654 |
msgstr ""
|
2655 |
|
2656 |
+
#: modules/permalinks/permalinks.php:129
|
2657 |
msgid "URL Conflict Resolution"
|
2658 |
msgstr ""
|
2659 |
|
2660 |
+
#: modules/permalinks/permalinks.php:129
|
2661 |
msgid ""
|
2662 |
"If a term archive and a Page with the same slug end up having the same URL "
|
2663 |
"because of the term’s base being removed, the URL should be given to "
|
2665 |
msgstr ""
|
2666 |
|
2667 |
#: modules/rich-snippets/rich-snippets.php:14
|
2668 |
+
#: modules/rich-snippets/rich-snippets.php:411
|
2669 |
msgid "Rich Snippet Creator"
|
2670 |
msgstr ""
|
2671 |
|
2672 |
+
#: modules/rich-snippets/rich-snippets.php:25
|
2673 |
+
msgid ""
|
2674 |
+
"Rich Snippet Creator adds a “Search Result Type” dropdown to the "
|
2675 |
+
"WordPress content editor screen. To add rich snippet data to a post, select "
|
2676 |
+
"“Review” or “Place” from a post’s “"
|
2677 |
+
"Search Result Type” dropdown and fill in the fields that appear."
|
2678 |
+
msgstr ""
|
2679 |
+
|
2680 |
+
#: modules/rich-snippets/rich-snippets.php:33
|
2681 |
msgid "Schema.org Microdata"
|
2682 |
msgstr ""
|
2683 |
|
2684 |
+
#: modules/rich-snippets/rich-snippets.php:46
|
2685 |
+
#: modules/rich-snippets/rich-snippets.php:346
|
2686 |
msgid "Review"
|
2687 |
msgstr ""
|
2688 |
|
2689 |
+
#: modules/rich-snippets/rich-snippets.php:51
|
2690 |
msgid "Name of Reviewed Item"
|
2691 |
msgstr ""
|
2692 |
|
2693 |
+
#: modules/rich-snippets/rich-snippets.php:54
|
2694 |
msgid "Star Rating"
|
2695 |
msgstr ""
|
2696 |
|
2697 |
+
#: modules/rich-snippets/rich-snippets.php:67
|
2698 |
msgid "Image of Reviewed Item"
|
2699 |
msgstr ""
|
2700 |
|
2701 |
+
#: modules/rich-snippets/rich-snippets.php:72
|
2702 |
msgid "Review Author"
|
2703 |
msgstr ""
|
2704 |
|
2705 |
+
#: modules/rich-snippets/rich-snippets.php:77
|
2706 |
msgid "Date Reviewed"
|
2707 |
msgstr ""
|
2708 |
|
2709 |
+
#: modules/rich-snippets/rich-snippets.php:85
|
2710 |
+
#: modules/rich-snippets/rich-snippets.php:347
|
2711 |
msgid "Place"
|
2712 |
msgstr ""
|
2713 |
|
2714 |
+
#: modules/rich-snippets/rich-snippets.php:89
|
2715 |
msgid "Address"
|
2716 |
msgstr ""
|
2717 |
|
2718 |
+
#: modules/rich-snippets/rich-snippets.php:93
|
2719 |
msgid "Street Address"
|
2720 |
msgstr ""
|
2721 |
|
2722 |
+
#: modules/rich-snippets/rich-snippets.php:96
|
2723 |
msgid "PO Box"
|
2724 |
msgstr ""
|
2725 |
|
2726 |
+
#: modules/rich-snippets/rich-snippets.php:99
|
2727 |
+
#: modules/rich-snippets/rich-snippets.php:102
|
2728 |
msgid "City"
|
2729 |
msgstr ""
|
2730 |
|
2731 |
+
#: modules/rich-snippets/rich-snippets.php:105
|
2732 |
msgid "Country"
|
2733 |
msgstr ""
|
2734 |
|
2735 |
+
#: modules/rich-snippets/rich-snippets.php:108
|
2736 |
msgid "Postal Code"
|
2737 |
msgstr ""
|
2738 |
|
2739 |
+
#: modules/rich-snippets/rich-snippets.php:113
|
2740 |
msgid "Fax Number"
|
2741 |
msgstr ""
|
2742 |
|
2743 |
+
#: modules/rich-snippets/rich-snippets.php:116
|
2744 |
msgid "Map URL"
|
2745 |
msgstr ""
|
2746 |
|
2747 |
+
#: modules/rich-snippets/rich-snippets.php:130
|
2748 |
msgid "Phone Number"
|
2749 |
msgstr ""
|
2750 |
|
2751 |
+
#: modules/rich-snippets/rich-snippets.php:307
|
2752 |
msgid "Schema.org markup generated by %1$s (%2$s)"
|
2753 |
msgstr ""
|
2754 |
|
2755 |
+
#: modules/rich-snippets/rich-snippets.php:345
|
2756 |
msgid "Standard"
|
2757 |
msgstr ""
|
2758 |
|
2759 |
+
#: modules/rich-snippets/rich-snippets.php:348
|
2760 |
msgid "Search Result Type:"
|
2761 |
msgstr ""
|
2762 |
|
2763 |
+
#: modules/rich-snippets/rich-snippets.php:353
|
2764 |
msgid "Name of Reviewed Item:"
|
2765 |
msgstr ""
|
2766 |
|
2767 |
+
#: modules/rich-snippets/rich-snippets.php:355
|
2768 |
msgid "Image of Reviewed Item:"
|
2769 |
msgstr ""
|
2770 |
|
2771 |
+
#: modules/rich-snippets/rich-snippets.php:359
|
2772 |
msgid "0.5 stars"
|
2773 |
msgstr ""
|
2774 |
|
2775 |
+
#: modules/rich-snippets/rich-snippets.php:360
|
2776 |
msgid "1 star"
|
2777 |
msgstr ""
|
2778 |
|
2779 |
+
#: modules/rich-snippets/rich-snippets.php:361
|
2780 |
msgid "1.5 stars"
|
2781 |
msgstr ""
|
2782 |
|
2783 |
+
#: modules/rich-snippets/rich-snippets.php:362
|
2784 |
msgid "2 stars"
|
2785 |
msgstr ""
|
2786 |
|
2787 |
+
#: modules/rich-snippets/rich-snippets.php:363
|
2788 |
msgid "2.5 stars"
|
2789 |
msgstr ""
|
2790 |
|
2791 |
+
#: modules/rich-snippets/rich-snippets.php:364
|
2792 |
msgid "3 stars"
|
2793 |
msgstr ""
|
2794 |
|
2795 |
+
#: modules/rich-snippets/rich-snippets.php:365
|
2796 |
msgid "3.5 stars"
|
2797 |
msgstr ""
|
2798 |
|
2799 |
+
#: modules/rich-snippets/rich-snippets.php:366
|
2800 |
msgid "4 stars"
|
2801 |
msgstr ""
|
2802 |
|
2803 |
+
#: modules/rich-snippets/rich-snippets.php:367
|
2804 |
msgid "4.5 stars"
|
2805 |
msgstr ""
|
2806 |
|
2807 |
+
#: modules/rich-snippets/rich-snippets.php:368
|
2808 |
msgid "5 stars"
|
2809 |
msgstr ""
|
2810 |
|
2811 |
+
#: modules/rich-snippets/rich-snippets.php:369
|
2812 |
msgid "Star Rating for Reviewed Item:"
|
2813 |
msgstr ""
|
2814 |
|
2815 |
+
#: modules/rich-snippets/rich-snippets.php:375
|
2816 |
msgid "Street Address:"
|
2817 |
msgstr ""
|
2818 |
|
2819 |
+
#: modules/rich-snippets/rich-snippets.php:376
|
2820 |
msgid "Post Office Box Number:"
|
2821 |
msgstr ""
|
2822 |
|
2823 |
+
#: modules/rich-snippets/rich-snippets.php:377
|
2824 |
msgid "City:"
|
2825 |
msgstr ""
|
2826 |
|
2827 |
+
#: modules/rich-snippets/rich-snippets.php:378
|
2828 |
msgid "State or Region:"
|
2829 |
msgstr ""
|
2830 |
|
2831 |
+
#: modules/rich-snippets/rich-snippets.php:379
|
2832 |
msgid "Country:"
|
2833 |
msgstr ""
|
2834 |
|
2835 |
+
#: modules/rich-snippets/rich-snippets.php:380
|
2836 |
msgid "Postal Code:"
|
2837 |
msgstr ""
|
2838 |
|
2839 |
+
#: modules/rich-snippets/rich-snippets.php:381
|
2840 |
msgid "Address:"
|
2841 |
msgstr ""
|
2842 |
|
2843 |
+
#: modules/rich-snippets/rich-snippets.php:382
|
2844 |
msgid "Map Page:"
|
2845 |
msgstr ""
|
2846 |
|
2847 |
+
#: modules/rich-snippets/rich-snippets.php:383
|
2848 |
msgid "Phone Number:"
|
2849 |
msgstr ""
|
2850 |
|
2851 |
+
#: modules/rich-snippets/rich-snippets.php:384
|
2852 |
msgid "Fax Number:"
|
2853 |
msgstr ""
|
2854 |
|
2855 |
+
#: modules/rich-snippets/rich-snippets.php:385
|
2856 |
msgid "Photo:"
|
2857 |
msgstr ""
|
2858 |
|
2859 |
+
#: modules/rich-snippets/rich-snippets.php:394
|
2860 |
msgid ""
|
2861 |
"\r\n"
|
2862 |
"<ul>\r\n"
|
2863 |
"\t<li><strong>What it does:</strong> Rich Snippet Creator adds special code "
|
2864 |
+
"(called Schema.org data) to your posts that asks Google and other major "
|
2865 |
+
"search engines to display special pertinent information (known as Rich "
|
2866 |
+
"Snippets) in search results for certain types of content. For example, if "
|
2867 |
+
"you’ve written a product review, you can use Rich Snippet Creator to "
|
2868 |
+
"ask Google to display the star rating that you gave the product in your "
|
2869 |
+
"review next to your review webpage when it appears in search results.</li>"
|
2870 |
+
"\r\n"
|
2871 |
"\t<li><strong>Why it helps:</strong> Rich Snippet Creator enhances the "
|
2872 |
"search engine results for your content by asking Google to add extra, eye-"
|
2873 |
"catching info that could help draw in more search engine visitors.</li>\r\n"
|
2874 |
+
"\t<li><strong>How it works:</strong> When editing one of your posts or "
|
2875 |
"pages, see if your content fits one of the available rich snippet types (for "
|
2876 |
+
"example, a review). If so, select that type from the “Search Result "
|
2877 |
"Type” dropdown box. Once you select the applicable type, additional "
|
2878 |
"options will appear that vary based on the type selected. For example, a "
|
2879 |
+
"“Star Rating for Reviewed Item” field will appear if you select "
|
2880 |
+
"the “Review” type. Once you save the post/page, Rich Snippet "
|
2881 |
+
"Creator will add the special code to it. You can remove this code at any "
|
2882 |
+
"time by selecting “Standard” from the “Search Result "
|
2883 |
+
"Type” dropdown and resaving the post/page.</li>\r\n"
|
2884 |
"</ul>\r\n"
|
2885 |
msgstr ""
|
2886 |
|
2887 |
+
#: modules/rich-snippets/rich-snippets.php:402
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2888 |
msgid ""
|
2889 |
"\r\n"
|
2890 |
"<ul>\r\n"
|
2893 |
"href='http://www.google.com/webmasters/tools/richsnippets' "
|
2894 |
"target='_blank'>Google’s testing tool</a> to make sure Google can find "
|
2895 |
"the rich snippet code on your site. If no code is found, check and make sure "
|
2896 |
+
"you’ve enabled rich snippets for that particular post/page.</p><p>Note "
|
2897 |
+
"that having the code on a post/page doesn’t guarantee that Google will "
|
2898 |
"actually use it to create a rich snippet. If Google is able to read your "
|
2899 |
"code but isn’t using it to generate rich snippets, you can ask Google "
|
2900 |
"to do so using <a href='http://www.google.com/support/webmasters/bin/request."
|
2911 |
msgid "SEO Design Solutions Whitepapers"
|
2912 |
msgstr ""
|
2913 |
|
2914 |
+
#. #-#-#-#-# plugin.pot (SEO Ultimate 7.6) #-#-#-#-#
|
2915 |
#. Author of the plugin/theme
|
2916 |
#: modules/sds-blog/sds-blog.php:49
|
2917 |
msgid "SEO Design Solutions"
|
2928 |
msgid "Global Settings"
|
2929 |
msgstr ""
|
2930 |
|
2931 |
+
#: modules/settings/global-settings.php:41
|
2932 |
msgid "Identify the plugin’s HTML code insertions with HTML comment tags"
|
2933 |
msgstr ""
|
2934 |
|
2935 |
+
#: modules/settings/global-settings.php:42
|
2936 |
msgid "Enable nofollow’d attribution link on my site"
|
2937 |
msgstr ""
|
2938 |
|
2939 |
+
#: modules/settings/global-settings.php:43
|
2940 |
msgid "Add CSS styles to the attribution link"
|
2941 |
msgstr ""
|
2942 |
|
2943 |
+
#: modules/settings/global-settings.php:47
|
2944 |
+
msgid "Show the promo image for WP Ultimate on the Module Manager page"
|
2945 |
+
msgstr ""
|
2946 |
+
|
2947 |
#: modules/settings/install.php:18
|
2948 |
msgid "Upgrade/Downgrade/Reinstall"
|
2949 |
msgstr ""
|
2964 |
msgid "Reinstall"
|
2965 |
msgstr ""
|
2966 |
|
2967 |
+
#: modules/settings/install.php:82 modules/settings/install.php:220
|
2968 |
msgid "You do not have sufficient permissions to upgrade plugins on this site."
|
2969 |
msgstr ""
|
2970 |
|
2985 |
"using the WordPress plugin upgrader."
|
2986 |
msgstr ""
|
2987 |
|
2988 |
+
#: modules/settings/install.php:108 modules/settings/install.php:202
|
2989 |
msgid ""
|
2990 |
"You do not have sufficient permissions to downgrade plugins on this site."
|
2991 |
msgstr ""
|
3007 |
#: modules/settings/install.php:128
|
3008 |
msgid ""
|
3009 |
"Downgrading to versions earlier than %s is not supported because doing so "
|
3010 |
+
"will result the loss of some or all of your SEO Ultimate settings."
|
3011 |
msgstr ""
|
3012 |
|
3013 |
#: modules/settings/install.php:130
|
3016 |
"again later."
|
3017 |
msgstr ""
|
3018 |
|
3019 |
+
#: modules/settings/install.php:136 modules/settings/install.php:211
|
3020 |
msgid ""
|
3021 |
"You do not have sufficient permissions to reinstall plugins on this site."
|
3022 |
msgstr ""
|
3035 |
msgid "Latest Version"
|
3036 |
msgstr ""
|
3037 |
|
3038 |
+
#: modules/settings/install.php:199
|
3039 |
msgid "Downgrade to SEO Ultimate %s"
|
3040 |
msgstr ""
|
3041 |
|
3042 |
+
#: modules/settings/install.php:208
|
3043 |
msgid "Reinstall SEO Ultimate %s"
|
3044 |
msgstr ""
|
3045 |
|
3046 |
+
#: modules/settings/install.php:217
|
3047 |
msgid "Upgrade to SEO Ultimate %s"
|
3048 |
msgstr ""
|
3049 |
|
3231 |
msgid "SEO Ultimate Plugin Settings"
|
3232 |
msgstr ""
|
3233 |
|
3234 |
+
#. #-#-#-#-# plugin.pot (SEO Ultimate 7.6) #-#-#-#-#
|
3235 |
#. Plugin Name of the plugin/theme
|
3236 |
+
#: modules/settings/settings.php:26 plugin/class.seo-ultimate.php:858
|
3237 |
msgid "SEO Ultimate"
|
3238 |
msgstr ""
|
3239 |
|
3285 |
msgstr ""
|
3286 |
|
3287 |
#: modules/settings/uninstall.php:18 modules/settings/uninstall.php:22
|
3288 |
+
#: plugin/class.seo-ultimate.php:1321
|
3289 |
msgid "Uninstall"
|
3290 |
msgstr ""
|
3291 |
|
3330 |
msgstr ""
|
3331 |
|
3332 |
#: modules/sharing-buttons/sharing-buttons.php:12
|
3333 |
+
#: modules/sharing-buttons/sharing-buttons.php:80
|
3334 |
msgid "Sharing Facilitator"
|
3335 |
msgstr ""
|
3336 |
|
3354 |
msgid "Which provider would you like to use for your sharing buttons?"
|
3355 |
msgstr ""
|
3356 |
|
3357 |
+
#: modules/sharing-buttons/sharing-buttons.php:69
|
3358 |
msgid ""
|
3359 |
"\r\n"
|
3360 |
"<ul>\r\n"
|
3716 |
"</ul>\r\n"
|
3717 |
msgstr ""
|
3718 |
|
|
|
|
|
|
|
|
|
3719 |
#: modules/titles/titles.php:432
|
3720 |
msgid ""
|
3721 |
"\r\n"
|
3722 |
"<p>Here’s documentation for the options on the “Settings” "
|
3723 |
"tab.</p>\r\n"
|
3724 |
"<ul>\r\n"
|
3725 |
+
"\t<li><strong>Convert lowercase category/tag names to title case when used "
|
3726 |
+
"in title tags</strong> — If your Tag Title Format is set to <code>"
|
3727 |
+
"{tag} | {blog}</code> and you have a tag called “blue widgets,” "
|
3728 |
+
"your title tag would be <code>blue widgets | My WordPress Blog</code>. "
|
3729 |
+
"Enabling this setting would capitalize the words in “blue "
|
3730 |
+
"widgets” so that the title tag would be <code>Blue Widgets | My "
|
3731 |
+
"WordPress Blog</code> instead.</li>\r\n"
|
3732 |
"\t<li>\r\n"
|
3733 |
"\t\t<p><strong>Rewrite Method</strong> — This setting controls the "
|
3734 |
"method by which Title Tag Rewriter edits your site’s <code><"
|
3780 |
"</ul>\r\n"
|
3781 |
msgstr ""
|
3782 |
|
3783 |
+
#: modules/titles/titles.php:470
|
3784 |
msgid ""
|
3785 |
"\r\n"
|
3786 |
"<ul>\r\n"
|
3803 |
"</ul>\r\n"
|
3804 |
msgstr ""
|
3805 |
|
3806 |
+
#: modules/titles/titles.php:481
|
3807 |
msgid ""
|
3808 |
"\r\n"
|
3809 |
"<ul>\r\n"
|
3957 |
msgstr ""
|
3958 |
|
3959 |
#: modules/wp-settings/wp-settings.php:14
|
|
|
|
|
|
|
|
|
3960 |
msgid "Settings Monitor"
|
3961 |
msgstr ""
|
3962 |
|
3963 |
+
#: modules/wp-settings/wp-settings.php:29
|
3964 |
msgid "Blog is visible to search engines"
|
3965 |
msgstr ""
|
3966 |
|
3967 |
+
#: modules/wp-settings/wp-settings.php:30
|
3968 |
msgid "WordPress will allow search engines to visit your site."
|
3969 |
msgstr ""
|
3970 |
|
3971 |
+
#: modules/wp-settings/wp-settings.php:32
|
3972 |
msgid "Blog is hidden from search engines"
|
3973 |
msgstr ""
|
3974 |
|
3975 |
+
#: modules/wp-settings/wp-settings.php:33
|
3976 |
msgid ""
|
3977 |
+
"WordPress is configured to discourage search engines. This will nullify your "
|
3978 |
"site’s SEO and should be resolved immediately."
|
3979 |
msgstr ""
|
3980 |
|
3981 |
+
#: modules/wp-settings/wp-settings.php:37
|
3982 |
msgid "Query-string permalinks enabled"
|
3983 |
msgstr ""
|
3984 |
|
3985 |
+
#: modules/wp-settings/wp-settings.php:38
|
3986 |
msgid ""
|
3987 |
"It is highly recommended that you use a non-default and non-numeric "
|
3988 |
"permalink structure."
|
3989 |
msgstr ""
|
3990 |
|
3991 |
+
#: modules/wp-settings/wp-settings.php:42
|
3992 |
msgid "Pathinfo permalinks enabled"
|
3993 |
msgstr ""
|
3994 |
|
3995 |
+
#: modules/wp-settings/wp-settings.php:43
|
3996 |
msgid ""
|
3997 |
"Pathinfo permalinks add a keyword-less “index.php” prefix. This "
|
3998 |
"is not ideal, but it may be beyond your control (since it’s likely "
|
3999 |
"caused by your site’s web hosting setup)."
|
4000 |
msgstr ""
|
4001 |
|
4002 |
+
#: modules/wp-settings/wp-settings.php:48
|
4003 |
msgid "Permalinks include the post slug"
|
4004 |
msgstr ""
|
4005 |
|
4006 |
+
#: modules/wp-settings/wp-settings.php:49
|
4007 |
msgid ""
|
4008 |
"Including a version of the post’s title helps provide keyword-rich "
|
4009 |
"URLs."
|
4010 |
msgstr ""
|
4011 |
|
4012 |
+
#: modules/wp-settings/wp-settings.php:51
|
4013 |
msgid "Permalinks do not include the post slug"
|
4014 |
msgstr ""
|
4015 |
|
4016 |
+
#: modules/wp-settings/wp-settings.php:52
|
4017 |
msgid ""
|
4018 |
"It is highly recommended that you include the %postname% variable in the "
|
4019 |
"permalink structure."
|
4020 |
msgstr ""
|
4021 |
|
4022 |
+
#: modules/wp-settings/wp-settings.php:62
|
4023 |
msgid ""
|
4024 |
"Settings Monitor analyzes your blog’s settings and notifies you of any "
|
4025 |
"problems. If any issues are found, they will show up in red or yellow below."
|
4026 |
msgstr ""
|
4027 |
|
4028 |
+
#: modules/wp-settings/wp-settings.php:74
|
4029 |
msgid "Go to setting »"
|
4030 |
msgstr ""
|
4031 |
|
4032 |
+
#: plugin/class.seo-ultimate.php:858
|
4033 |
msgid "SEO"
|
4034 |
msgstr ""
|
4035 |
|
4036 |
+
#: plugin/class.seo-ultimate.php:1043
|
4037 |
msgid ""
|
4038 |
"It looks like you made changes to the settings of this SEO Ultimate module. "
|
4039 |
"If you leave before saving, those changes will be lost."
|
4040 |
msgstr ""
|
4041 |
|
4042 |
+
#: plugin/class.seo-ultimate.php:1137 plugin/class.seo-ultimate.php:1577
|
4043 |
msgid "SEO Settings"
|
4044 |
msgstr ""
|
4045 |
|
4046 |
+
#: plugin/class.seo-ultimate.php:1176
|
4047 |
msgid ""
|
4048 |
"%1$s is known to cause conflicts with SEO Ultimate. Please deactivate %1$s "
|
4049 |
"if you wish to continue using SEO Ultimate."
|
4050 |
msgstr ""
|
4051 |
|
4052 |
+
#: plugin/class.seo-ultimate.php:1220
|
4053 |
msgid "new module"
|
4054 |
msgstr ""
|
4055 |
|
4056 |
+
#: plugin/class.seo-ultimate.php:1220
|
4057 |
msgid "new modules"
|
4058 |
msgstr ""
|
4059 |
|
4060 |
+
#: plugin/class.seo-ultimate.php:1221
|
4061 |
msgid "new feature"
|
4062 |
msgstr ""
|
4063 |
|
4064 |
+
#: plugin/class.seo-ultimate.php:1221
|
4065 |
msgid "new features"
|
4066 |
msgstr ""
|
4067 |
|
4068 |
+
#: plugin/class.seo-ultimate.php:1222
|
4069 |
msgid "bugfix"
|
4070 |
msgstr ""
|
4071 |
|
4072 |
+
#: plugin/class.seo-ultimate.php:1222
|
4073 |
msgid "bugfixes"
|
4074 |
msgstr ""
|
4075 |
|
4076 |
+
#: plugin/class.seo-ultimate.php:1223
|
4077 |
msgid "improvement"
|
4078 |
msgstr ""
|
4079 |
|
4080 |
+
#: plugin/class.seo-ultimate.php:1223
|
4081 |
msgid "improvements"
|
4082 |
msgstr ""
|
4083 |
|
4084 |
+
#: plugin/class.seo-ultimate.php:1224
|
4085 |
msgid "security fix"
|
4086 |
msgstr ""
|
4087 |
|
4088 |
+
#: plugin/class.seo-ultimate.php:1224
|
4089 |
msgid "security fixes"
|
4090 |
msgstr ""
|
4091 |
|
4092 |
+
#: plugin/class.seo-ultimate.php:1225
|
4093 |
msgid "new language pack"
|
4094 |
msgstr ""
|
4095 |
|
4096 |
+
#: plugin/class.seo-ultimate.php:1225
|
4097 |
msgid "new language packs"
|
4098 |
msgstr ""
|
4099 |
|
4100 |
+
#: plugin/class.seo-ultimate.php:1226
|
4101 |
msgid "language pack update"
|
4102 |
msgstr ""
|
4103 |
|
4104 |
+
#: plugin/class.seo-ultimate.php:1226
|
4105 |
msgid "language pack updates"
|
4106 |
msgstr ""
|
4107 |
|
4108 |
+
#: plugin/class.seo-ultimate.php:1257
|
4109 |
msgid "%d %s"
|
4110 |
msgstr ""
|
4111 |
|
4112 |
+
#: plugin/class.seo-ultimate.php:1263
|
4113 |
msgid "Upgrade now to get %s. %s."
|
4114 |
msgstr ""
|
4115 |
|
4116 |
+
#: plugin/class.seo-ultimate.php:1265
|
4117 |
msgid "View changelog"
|
4118 |
msgstr ""
|
4119 |
|
4120 |
+
#: plugin/class.seo-ultimate.php:1342
|
4121 |
msgid "Active Modules: "
|
4122 |
msgstr ""
|
4123 |
|
4124 |
+
#: plugin/class.seo-ultimate.php:1409
|
4125 |
msgid ""
|
4126 |
"<strong>SEO Ultimate Notice:</strong> Your blog is configured to block "
|
4127 |
+
"search engine spiders. To resolve this, <a href=\"options-reading.php\" "
|
4128 |
+
"target=\"_blank\">go to your Reading settings</a> and disable the “"
|
4129 |
+
"discourage search engines” option."
|
4130 |
msgstr ""
|
4131 |
|
4132 |
+
#: plugin/class.seo-ultimate.php:1505
|
4133 |
msgid "Search Engine Listing"
|
4134 |
msgstr ""
|
4135 |
|
4136 |
+
#: plugin/class.seo-ultimate.php:1506
|
4137 |
msgid "Social Networks Listing"
|
4138 |
msgstr ""
|
4139 |
|
4140 |
+
#: plugin/class.seo-ultimate.php:1507
|
4141 |
msgid "Links"
|
4142 |
msgstr ""
|
4143 |
|
4144 |
+
#: plugin/class.seo-ultimate.php:1607
|
4145 |
msgid "%1$s %2$s by %3$s"
|
4146 |
msgstr ""
|
4147 |
|
4148 |
+
#: plugin/class.seo-ultimate.php:1794
|
4149 |
msgid "Home"
|
4150 |
msgstr ""
|
4151 |
|
4152 |
+
#: plugin/class.seo-ultimate.php:1865
|
4153 |
msgid "Author Archives"
|
4154 |
msgstr ""
|
4155 |
|
4156 |
+
#: plugin/class.seo-ultimate.php:1894
|
4157 |
msgid "Link Masks"
|
4158 |
msgstr ""
|
4159 |
|