WP Meta SEO - Version 1.6.0

Version Description

  • Add meta keywords edition in bulk editor
  • Add option to for SEO criteria validation
Download this release

Release Info

Developer JoomUnited
Plugin Icon 128x128 WP Meta SEO
Version 1.6.0
Comparing to
See all releases

Code changes from version 1.5.1 to 1.6.0

css/metabox-tabs.css CHANGED
@@ -435,7 +435,7 @@ div.wpmseo-tab-content {
435
position: relative;
436
}
437
438
- #metaseo_wpmseo_desc-length,#metaseo_wpmseo_title-length{
439
position: absolute;
440
left: 20px;
441
bottom: 12px;
@@ -448,7 +448,7 @@ div.wpmseo-tab-content {
448
padding: 0px 10px;
449
}
450
451
- #metaseo_wpmseo_desc-length.length-wrong,#metaseo_wpmseo_title-length.length-wrong{
452
background: none repeat scroll 0% 0% #FFCC00;
453
}
454
435
position: relative;
436
}
437
438
+ #metaseo_wpmseo_desc-length,#metaseo_wpmseo_title-length,#metaseo_wpmseo_keywords-length{
439
position: absolute;
440
left: 20px;
441
bottom: 12px;
448
padding: 0px 10px;
449
}
450
451
+ #metaseo_wpmseo_desc-length.length-wrong,#metaseo_wpmseo_title-length.length-wrong,#metaseo_wpmseo_keywords-length.length-wrong{
452
background: none repeat scroll 0% 0% #FFCC00;
453
}
454
css/metaseo_admin.css CHANGED
@@ -20,7 +20,7 @@ and open the template in the editor.
20
width: 30%;
21
}
22
23
- .title-len, .desc-len, .word-exceed {
24
color: #FFF;
25
border-radius: 2px;
26
min-width: 15px;
@@ -32,7 +32,7 @@ and open the template in the editor.
32
left: 15px;
33
}
34
35
- .title-len, .desc-len {
36
background: none repeat scroll 0% 0% #7ad03a;
37
38
}
@@ -137,7 +137,7 @@ a.info-content .tooltip-metacontent
137
padding:4px 6px;
138
}
139
.action-wrapper{
140
- width:38%;
141
float:left;
142
}
143
.snippet-wrapper{
20
width: 30%;
21
}
22
23
+ .title-len, .desc-len, .word-exceed , .keywords-len {
24
color: #FFF;
25
border-radius: 2px;
26
min-width: 15px;
32
left: 15px;
33
}
34
35
+ .title-len, .desc-len, .keywords-len {
36
background: none repeat scroll 0% 0% #7ad03a;
37
38
}
137
padding:4px 6px;
138
}
139
.action-wrapper{
140
+ /* width:38%;*/
141
float:left;
142
}
143
.snippet-wrapper{
inc/class.metaseo-admin.php CHANGED
@@ -15,8 +15,10 @@ class MetaSeo_Admin {
15
"metaseo_showfacebook"=>"",
16
"metaseo_showtwitter"=>"",
17
"metaseo_twitter_card"=>"summary",
18
"metaseo_showtmetablock"=>1,
19
- "metaseo_showsocial" => 1
20
);
21
$settings = get_option( '_metaseo_settings' );
22
@@ -44,7 +46,6 @@ class MetaSeo_Admin {
44
add_action( 'admin_init', array($this, 'stop_heartbeat') , 1 );
45
add_action('admin_init', array($this,'metaseo_field_settings'));
46
add_action('init', array($this,'wpms_load_langguage'));
47
- add_action('wp_ajax_metaseo_reload_analysis',array($this,'metaseo_reload_analysis'));
48
49
if(!get_option('wpms_set_ignore', false)){
50
add_option('wpms_set_ignore', 1, '', 'yes' );
@@ -52,7 +53,7 @@ class MetaSeo_Admin {
52
53
add_action('wp_ajax_wpms_set_ignore',array($this,'wpms_set_ignore'));
54
if ( '0' == get_option( 'blog_public' )) {
55
- add_action( 'admin_footer', array( $this, 'wpms_public_warning' ) );
56
}
57
}
58
@@ -102,6 +103,12 @@ class MetaSeo_Admin {
102
load_plugin_textdomain( 'wpms', false, dirname( plugin_basename( WPMSEO_FILE ) ) . '/languages/' );
103
}
104
105
function metaseo_reload_analysis() {
106
$tooltip_page = array();
107
$tooltip_page['title_in_heading'] = __('Check if a word of this content title is also in a title heading (h1, h2...)','wpms');
@@ -111,10 +118,14 @@ class MetaSeo_Admin {
111
$tooltip_page['meta_desc'] = __('Is the meta description of this page filled?','wpms');
112
$tooltip_page['image_resize'] = __('Check for image HTML resizing in content (usually image resized using handles)','wpms');
113
$tooltip_page['image_alt'] = __('Check for image Alt text and title','wpms');
114
-
115
if(empty($_POST['datas'])){
116
wp_send_json(false);
117
}
118
$check = 0;
119
$output = '';
120
// title heading
@@ -135,14 +146,14 @@ class MetaSeo_Admin {
135
}
136
137
if($test){
138
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['title_in_heading'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content heading','wpms').'</div>';
139
$check ++;
140
}else{
141
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['title_in_heading'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page title word in content heading','wpms').'</div>';
142
}
143
144
}else{
145
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['title_in_heading'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content heading','wpms').'</div>';
146
$check ++;
147
}
148
@@ -163,41 +174,41 @@ class MetaSeo_Admin {
163
}
164
165
if($test1){
166
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['title_in_content'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content','wpms').'</div>';
167
$check ++;
168
}else{
169
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['title_in_content'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page title word in content','wpms').'</div>';
170
}
171
172
// page url matches page title
173
$mtitle = $_POST['datas']['title'];
174
if($_POST['datas']['mpageurl'] == sanitize_title($mtitle)){
175
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['page_url'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page url matches with page title','wpms').'</div>';
176
$check ++;
177
}else{
178
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['page_url'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page url matches with page title','wpms').'</div>';
179
}
180
181
// meta title filled
182
- if($_POST['datas']['meta_title'] != '' && strlen($_POST['datas']['meta_title']) <= self::$title_length){
183
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['meta_title'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Meta title filled','wpms').'</div>';
184
$check++;
185
}else{
186
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['meta_title'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Meta title filled','wpms').'</div>';
187
}
188
189
// desc filled
190
- if($_POST['datas']['meta_desc'] != '' && strlen($_POST['datas']['meta_desc']) <= self::$desc_length){
191
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['meta_desc'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Meta description filled','wpms').'</div>';
192
$check++;
193
}else{
194
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['meta_desc'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Meta description filled','wpms').'</div>';
195
}
196
197
// image resize
198
if($_POST['datas']['content'] == '') {
199
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_resize'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Wrong image resize','wpms').'</div>';
200
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_alt'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Image have meta title or alt','wpms').'</div>';
201
$check += 2;
202
}else{
203
$dom = new DOMDocument;
@@ -225,29 +236,42 @@ class MetaSeo_Admin {
225
$img_wrong_alt = true;
226
}
227
}
228
-
229
- if($img_wrong){
230
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_resize'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Wrong image resize','wpms').'</div>';
231
- }else{
232
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_resize'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Wrong image resize','wpms').'</div>';
233
$check++;
234
}
235
236
- if($img_wrong_alt){
237
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_alt'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Image have meta title or alt','wpms').'</div>';
238
- }else{
239
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_alt'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Image have meta title or alt','wpms').'</div>';
240
$check++;
241
}
242
-
243
}else{
244
- $output .= '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_resize'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Wrong image resize','wpms').'</div>';
245
}
246
}
247
248
$circliful = ceil(100*($check)/7);
249
- wp_send_json(array('circliful' => $circliful,'output' => $output));
250
251
}
252
253
function metaseo_field_settings(){
@@ -258,8 +282,10 @@ class MetaSeo_Admin {
258
add_settings_field('metaseo_showfacebook', __('Facebook profile URL', 'wpms'), array( $this, 'showfacebook' ), 'metaseo_settings', 'metaseo_dashboard');
259
add_settings_field('metaseo_showtwitter', __('Twitter Username', 'wpms'), array( $this, 'showtwitter' ), 'metaseo_settings', 'metaseo_dashboard');
260
add_settings_field('metaseo_twitter_card', __('The default card type to use', 'wpms'), array( $this, 'showtwittercard' ), 'metaseo_settings', 'metaseo_dashboard');
261
add_settings_field('metaseo_showtmetablock', __('Meta block edition', 'wpms'), array( $this, 'showtmetablock' ), 'metaseo_settings', 'metaseo_dashboard');
262
add_settings_field('metaseo_showsocial', __('Social networks meta', 'wpms'), array( $this, 'showsocial' ), 'metaseo_settings', 'metaseo_dashboard');
263
}
264
265
public function showSettings(){
@@ -276,6 +302,14 @@ class MetaSeo_Admin {
276
echo '<input id="metaseo_desc_home" name="_metaseo_settings[metaseo_desc_home]" type="text" value="'.esc_attr( $home_desc ).'" size="50"/>';
277
}
278
279
public function showtmetablock(){
280
echo '<input name="_metaseo_settings[metaseo_showtmetablock]" type="hidden" value="0"/>';
281
?>
@@ -292,6 +326,14 @@ class MetaSeo_Admin {
292
<?php
293
}
294
295
public function showfacebook(){
296
$face = isset( $this->settings['metaseo_showfacebook'] ) ? $this->settings['metaseo_showfacebook'] : '';
297
echo '<input id="metaseo_showfacebook" name="_metaseo_settings[metaseo_showfacebook]" type="text" value="'.esc_attr( $face ).'" size="50"/>';
@@ -348,31 +390,40 @@ class MetaSeo_Admin {
348
// wp_die();
349
// }
350
351
- $response->msg = __('Modification was saved', 'wpms') ;
352
- if($metakey == 'metatitle') {
353
- if(!update_post_meta($postID, '_metaseo_metatitle', $value)) {
354
- $response->updated = false;
355
- $response->msg = __('Meta title was not saved', 'wpms') ;
356
- }
357
- else{
358
- $response->updated = true;
359
- $response->msg = __('Meta title was saved', 'wpms') ;
360
- }
361
- }
362
-
363
- if($metakey =='metadesc') {
364
- if(!update_post_meta($postID, '_metaseo_metadesc', $value)) {
365
- $response->updated = false;
366
- $response->msg = __('Meta description was not saved', 'wpms') ;
367
- }
368
- else{
369
- $response->updated = true;
370
$response->msg = __('Meta description was saved', 'wpms') ;
371
- }
372
- }
373
-
374
- echo json_encode($response);
375
- wp_die();
376
}
377
378
/**
@@ -422,9 +473,9 @@ class MetaSeo_Admin {
422
*
423
*/
424
function addAdminStylesheets() {
425
- wp_enqueue_style('wpmetaseoAdmin', plugins_url('css/metaseo_admin.css', dirname(__FILE__)));
426
- wp_enqueue_style('tooltip-metaimage', plugins_url('/css/tooltip-metaimage.css',dirname(__FILE__)));
427
- wp_enqueue_style('style', plugins_url('/css/style.css', dirname(__FILE__) ) );
428
}
429
430
function register_menu_page() {
@@ -725,23 +776,25 @@ class MetaSeo_Admin {
725
}
726
727
private function ajaxHandle(){
728
- //
729
- add_action( 'wp_ajax_scanPosts', array('MetaSeo_Image_List_Table', 'scan_posts_callback') );
730
- add_action( 'wp_ajax_load_posts', array('MetaSeo_Image_List_Table', 'load_posts_callback') );
731
- add_action( 'wp_ajax_optimize_imgs', array('MetaSeo_Image_List_Table', 'optimizeImages') );
732
- add_action( 'wp_ajax_updateMeta', array('MetaSeo_Image_List_Table', 'updateMeta_callback') );
733
- //add_action( 'wp_ajax_opt_checking', array('MetaSeo_Dashboard', 'optimizationChecking') );
734
- //
735
- add_action( 'wp_ajax_import_meta_data', array('MetaSeo_Content_List_Table', 'importMetaData') );
736
- add_action( 'wp_ajax_dismiss_import_meta', array('MetaSeo_Content_List_Table', 'dismissImport') );
737
- add_action('wp_ajax_wpms_bulk_post_copy',array($this,'wpms_bulk_post_copy_title'));
738
- add_action('wp_ajax_wpms_bulk_image_copy',array($this,'wpms_bulk_image_copy'));
739
-
740
- //
741
- add_action( 'added_post_meta' , array( 'MetaSeo_Content_List_Table', 'updateMetaSync' ), 99, 4);
742
- add_action( 'updated_post_meta', array( 'MetaSeo_Content_List_Table', 'updateMetaSync' ), 99, 4);
743
- add_action( 'deleted_post_meta', array( 'MetaSeo_Content_List_Table', 'deleteMetaSync' ), 99, 4);
744
-
745
}
746
747
}
15
"metaseo_showfacebook"=>"",
16
"metaseo_showtwitter"=>"",
17
"metaseo_twitter_card"=>"summary",
18
+ "metaseo_showkeywords"=>0,
19
"metaseo_showtmetablock"=>1,
20
+ "metaseo_showsocial" => 1,
21
+ "metaseo_seovalidate" => 0
22
);
23
$settings = get_option( '_metaseo_settings' );
24
46
add_action( 'admin_init', array($this, 'stop_heartbeat') , 1 );
47
add_action('admin_init', array($this,'metaseo_field_settings'));
48
add_action('init', array($this,'wpms_load_langguage'));
49
50
if(!get_option('wpms_set_ignore', false)){
51
add_option('wpms_set_ignore', 1, '', 'yes' );
53
54
add_action('wp_ajax_wpms_set_ignore',array($this,'wpms_set_ignore'));
55
if ( '0' == get_option( 'blog_public' )) {
56
+ add_action( 'admin_notices', array( $this, 'wpms_public_warning' ) );
57
}
58
}
59
103
load_plugin_textdomain( 'wpms', false, dirname( plugin_basename( WPMSEO_FILE ) ) . '/languages/' );
104
}
105
106
+ function metaseo_create_field($data_title,$alt,$dashicon,$label,$value_hidden){
107
+ $output = '<div class="metaseo_analysis metaseo_tool 123" data-title="'.$data_title.'" alt="'.$alt.'"><div class="metaseo-dashicons dashicons-before '.$dashicon.'"></div>'.$label.'</div>';
108
+ $output .= '<input type="hidden" class="wpms_analysis_hidden" name="wpms['.$data_title.']" value="'.$value_hidden.'">';
109
+ return $output;
110
+ }
111
+
112
function metaseo_reload_analysis() {
113
$tooltip_page = array();
114
$tooltip_page['title_in_heading'] = __('Check if a word of this content title is also in a title heading (h1, h2...)','wpms');
118
$tooltip_page['meta_desc'] = __('Is the meta description of this page filled?','wpms');
119
$tooltip_page['image_resize'] = __('Check for image HTML resizing in content (usually image resized using handles)','wpms');
120
$tooltip_page['image_alt'] = __('Check for image Alt text and title','wpms');
121
if(empty($_POST['datas'])){
122
wp_send_json(false);
123
}
124
+
125
+ if(isset($_POST['datas']['post_id'])){
126
+ update_post_meta($_POST['datas']['post_id'], 'wpms_validate_analysis', '');
127
+ }
128
+
129
$check = 0;
130
$output = '';
131
// title heading
146
}
147
148
if($test){
149
+ $output .= $this->metaseo_create_field('heading_title',$tooltip_page['title_in_heading'],'dashicons-yes',__('Page title word in content heading','wpms'),1);
150
$check ++;
151
}else{
152
+ $output .= $this->metaseo_create_field('heading_title',$tooltip_page['title_in_heading'],'icons-mwarning',__('Page title word in content heading','wpms'),0);
153
}
154
155
}else{
156
+ $output .= $this->metaseo_create_field('heading_title',$tooltip_page['title_in_heading'],'dashicons-yes',__('Page title word in content heading','wpms'),1);
157
$check ++;
158
}
159
174
}
175
176
if($test1){
177
+ $output .= $this->metaseo_create_field('content_title',$tooltip_page['title_in_content'],'dashicons-yes',__('Page title word in content','wpms'),1);
178
$check ++;
179
}else{
180
+ $output .= $this->metaseo_create_field('content_title',$tooltip_page['title_in_content'],'icons-mwarning',__('Page title word in content','wpms'),0);
181
}
182
183
// page url matches page title
184
$mtitle = $_POST['datas']['title'];
185
if($_POST['datas']['mpageurl'] == sanitize_title($mtitle)){
186
+ $output .= $this->metaseo_create_field('pageurl',$tooltip_page['page_url'],'dashicons-yes',__('Page url matches with page title','wpms'),1);
187
$check ++;
188
}else{
189
+ $output .= $this->metaseo_create_field('pageurl',$tooltip_page['page_url'],'icons-mwarning',__('Page url matches with page title','wpms'),0);
190
}
191
192
// meta title filled
193
+ if(($_POST['datas']['meta_title'] != '' && strlen($_POST['datas']['meta_title']) <= self::$title_length)){
194
+ $output .= $this->metaseo_create_field('metatitle',$tooltip_page['meta_title'],'dashicons-yes',__('Meta title filled','wpms'),1);
195
$check++;
196
}else{
197
+ $output .= $this->metaseo_create_field('metatitle',$tooltip_page['meta_title'],'icons-mwarning',__('Meta title filled','wpms'),0);
198
}
199
200
// desc filled
201
+ if(($_POST['datas']['meta_desc'] != '' && strlen($_POST['datas']['meta_desc']) <= self::$desc_length)){
202
+ $output .= $this->metaseo_create_field('metadesc',$tooltip_page['meta_desc'],'dashicons-yes',__('Meta description filled','wpms'),1);
203
$check++;
204
}else{
205
+ $output .= $this->metaseo_create_field('metadesc',$tooltip_page['meta_desc'],'icons-mwarning',__('Meta description filled','wpms'),0);
206
}
207
208
// image resize
209
if($_POST['datas']['content'] == '') {
210
+ $output .= $this->metaseo_create_field('imgresize',$tooltip_page['image_resize'],'dashicons-yes',__('Wrong image resize','wpms'),1);
211
+ $output .= $this->metaseo_create_field('imgalt',$tooltip_page['image_alt'],'dashicons-yes',__('Image have meta title or alt','wpms'),1);
212
$check += 2;
213
}else{
214
$dom = new DOMDocument;
236
$img_wrong_alt = true;
237
}
238
}
239
+
240
+ if($img_wrong == false){
241
+ $output .= $this->metaseo_create_field('imgresize',$tooltip_page['image_resize'],'dashicons-yes',__('Wrong image resize','wpms'),1);
242
$check++;
243
+ }else{
244
+ $output .= $this->metaseo_create_field('imgresize',$tooltip_page['image_resize'],'icons-mwarning',__('Wrong image resize','wpms'),0);
245
}
246
247
+ if($img_wrong_alt == false){
248
+ $output .= $this->metaseo_create_field('imgalt',$tooltip_page['image_alt'],'dashicons-yes',__('Image have meta title or alt','wpms'),1);
249
$check++;
250
+ }else{
251
+ $output .= $this->metaseo_create_field('imgalt',$tooltip_page['image_alt'],'icons-mwarning',__('Image have meta title or alt','wpms'),0);
252
}
253
}else{
254
+ $output .= $this->metaseo_create_field('imgresize',$tooltip_page['image_resize'],'icons-mwarning',__('Wrong image resize','wpms'),0);
255
+ $output .= $this->metaseo_create_field('imgalt',$tooltip_page['image_alt'],'icons-mwarning',__('Image have meta title or alt','wpms'),0);
256
}
257
}
258
259
$circliful = ceil(100*($check)/7);
260
+ wp_send_json(array('circliful' => $circliful,'output' => $output ,'check' => $check));
261
+
262
+ }
263
+
264
+ function metaseo_validate_analysis(){
265
+ $post_id = $_POST['post_id'];
266
+ $key = 'wpms_validate_analysis';
267
+ $analysis = get_post_meta($post_id, $key,true);
268
+ if(empty($analysis) ) {
269
+ $analysis = array();
270
+ }
271
272
+ $analysis[$_POST['field']] = 1;
273
+ update_post_meta($post_id, $key, $analysis);
274
+ wp_send_json(true);
275
}
276
277
function metaseo_field_settings(){
282
add_settings_field('metaseo_showfacebook', __('Facebook profile URL', 'wpms'), array( $this, 'showfacebook' ), 'metaseo_settings', 'metaseo_dashboard');
283
add_settings_field('metaseo_showtwitter', __('Twitter Username', 'wpms'), array( $this, 'showtwitter' ), 'metaseo_settings', 'metaseo_dashboard');
284
add_settings_field('metaseo_twitter_card', __('The default card type to use', 'wpms'), array( $this, 'showtwittercard' ), 'metaseo_settings', 'metaseo_dashboard');
285
+ add_settings_field('metaseo_showkeywords', __('Meta keywords', 'wpms'), array( $this, 'showkeywords' ), 'metaseo_settings', 'metaseo_dashboard');
286
add_settings_field('metaseo_showtmetablock', __('Meta block edition', 'wpms'), array( $this, 'showtmetablock' ), 'metaseo_settings', 'metaseo_dashboard');
287
add_settings_field('metaseo_showsocial', __('Social networks meta', 'wpms'), array( $this, 'showsocial' ), 'metaseo_settings', 'metaseo_dashboard');
288
+ add_settings_field('metaseo_seovalidate', __('Force SEO validation', 'wpms'), array( $this, 'showseovalidate' ), 'metaseo_settings', 'metaseo_dashboard');
289
}
290
291
public function showSettings(){
302
echo '<input id="metaseo_desc_home" name="_metaseo_settings[metaseo_desc_home]" type="text" value="'.esc_attr( $home_desc ).'" size="50"/>';
303
}
304
305
+ public function showkeywords(){
306
+ echo '<input name="_metaseo_settings[metaseo_showkeywords]" type="hidden" value="0"/>';
307
+ ?>
308
+ <label><input name="_metaseo_settings[metaseo_showkeywords]" type="checkbox" id="metaseo_showkeywords" value="1" <?php checked( 1, $this->settings['metaseo_showkeywords']); ?> />
309
+ <?php _e( 'Active meta keywords','wpms'); ?></label>
310
+ <?php
311
+ }
312
+
313
public function showtmetablock(){
314
echo '<input name="_metaseo_settings[metaseo_showtmetablock]" type="hidden" value="0"/>';
315
?>
326
<?php
327
}
328
329
+ public function showseovalidate(){
330
+ echo '<input name="_metaseo_settings[metaseo_seovalidate]" type="hidden" value="0"/>';
331
+ ?>
332
+ <label><input name="_metaseo_settings[metaseo_seovalidate]" type="checkbox" id="metaseo_seovalidate" value="1" <?php checked( 1, $this->settings['metaseo_seovalidate']); ?> />
333
+ <?php _e( 'Allow user to force on page SEO criteria validation by clicking on the icon','wpms' ); ?></label>
334
+ <?php
335
+ }
336
+
337
public function showfacebook(){
338
$face = isset( $this->settings['metaseo_showfacebook'] ) ? $this->settings['metaseo_showfacebook'] : '';
339
echo '<input id="metaseo_showfacebook" name="_metaseo_settings[metaseo_showfacebook]" type="text" value="'.esc_attr( $face ).'" size="50"/>';
390
// wp_die();
391
// }
392
393
+ $response->msg = __('Modification was saved', 'wpms') ;
394
+ if($metakey == 'metatitle') {
395
+ if(!update_post_meta($postID, '_metaseo_metatitle', $value)) {
396
+ $response->updated = false;
397
+ $response->msg = __('Meta title was not saved', 'wpms') ;
398
+ }
399
+ else{
400
+ $response->updated = true;
401
+ $response->msg = __('Meta title was saved', 'wpms') ;
402
+ }
403
+ }
404
+
405
+ if($metakey =='metadesc') {
406
+ if(!update_post_meta($postID, '_metaseo_metadesc', $value)) {
407
+ $response->updated = false;
408
+ $response->msg = __('Meta description was not saved', 'wpms') ;
409
+ }else{
410
+ $response->updated = true;
411
$response->msg = __('Meta description was saved', 'wpms') ;
412
+ }
413
+ }
414
+
415
+ if ($metakey == 'metakeywords') {
416
+ if (!update_post_meta($postID, '_metaseo_metakeywords', $value)) {
417
+ $response->updated = false;
418
+ $response->msg = __('Meta keywords was not saved', 'wpms');
419
+ } else {
420
+ $response->updated = true;
421
+ $response->msg = __('Meta keywords was saved', 'wpms');
422
+ }
423
+ }
424
+
425
+ echo json_encode($response);
426
+ wp_die();
427
}
428
429
/**
473
*
474
*/
475
function addAdminStylesheets() {
476
+ wp_enqueue_style('wpmetaseoAdmin', plugins_url('css/metaseo_admin.css', dirname(__FILE__)),array(), WPMSEO_VERSION);
477
+ wp_enqueue_style('tooltip-metaimage', plugins_url('/css/tooltip-metaimage.css',dirname(__FILE__)),array(), WPMSEO_VERSION);
478
+ wp_enqueue_style('style', plugins_url('/css/style.css', dirname(__FILE__) ),array(), WPMSEO_VERSION);
479
}
480
481
function register_menu_page() {
776
}
777
778
private function ajaxHandle(){
779
+ //
780
+ add_action( 'wp_ajax_scanPosts', array('MetaSeo_Image_List_Table', 'scan_posts_callback') );
781
+ add_action( 'wp_ajax_load_posts', array('MetaSeo_Image_List_Table', 'load_posts_callback') );
782
+ add_action( 'wp_ajax_optimize_imgs', array('MetaSeo_Image_List_Table', 'optimizeImages') );
783
+ add_action( 'wp_ajax_updateMeta', array('MetaSeo_Image_List_Table', 'updateMeta_callback') );
784
+ //add_action( 'wp_ajax_opt_checking', array('MetaSeo_Dashboard', 'optimizationChecking') );
785
+ //
786
+ add_action( 'wp_ajax_import_meta_data', array('MetaSeo_Content_List_Table', 'importMetaData') );
787
+ add_action( 'wp_ajax_dismiss_import_meta', array('MetaSeo_Content_List_Table', 'dismissImport') );
788
+ add_action('wp_ajax_wpms_bulk_post_copy',array($this,'wpms_bulk_post_copy_title'));
789
+ add_action('wp_ajax_wpms_bulk_image_copy',array($this,'wpms_bulk_image_copy'));
790
+
791
+ //
792
+ add_action( 'added_post_meta' , array( 'MetaSeo_Content_List_Table', 'updateMetaSync' ), 99, 4);
793
+ add_action( 'updated_post_meta', array( 'MetaSeo_Content_List_Table', 'updateMetaSync' ), 99, 4);
794
+ add_action( 'deleted_post_meta', array( 'MetaSeo_Content_List_Table', 'deleteMetaSync' ), 99, 4);
795
+
796
+ add_action('wp_ajax_metaseo_reload_analysis',array($this,'metaseo_reload_analysis'));
797
+ add_action('wp_ajax_metaseo_validate_analysis',array($this,'metaseo_validate_analysis'));
798
}
799
800
}
inc/class.metaseo-content-list-table.php CHANGED
@@ -137,9 +137,14 @@ class MetaSeo_Content_List_Table extends WP_List_Table {
137
'col_title' => __('Title', 'wpms'),
138
'col_snippet' => sprintf(__('Snippet Preview %s', 'wpms'),$info),
139
'col_meta_title' => __('Meta Title', 'wpms'),
140
- 'col_meta_desc' => __('Meta Description', 'wpms')
141
);
142
- //$columns['col_snippet'] .= $info;
143
return $columns;
144
}
145
@@ -207,10 +212,11 @@ class MetaSeo_Content_List_Table extends WP_List_Table {
207
$orderStr =' ORDER BY ' . $orderStr;
208
}
209
210
- $query = "SELECT ID, post_title, post_name, post_type, post_status , mt.meta_value AS metatitle, md.meta_value AS metadesc "
211
. " FROM $wpdb->posts "
212
. " LEFT JOIN (SELECT * FROM $wpdb->postmeta WHERE meta_key = '_metaseo_metatitle') mt ON mt.post_id = $wpdb->posts.ID "
213
. " LEFT JOIN (SELECT * FROM $wpdb->postmeta WHERE meta_key = '_metaseo_metadesc') md ON md.post_id = $wpdb->posts.ID "
214
. " WHERE ". implode(' AND ', $where) . $orderStr;
215
216
$total_items = $wpdb->query($query);
@@ -355,6 +361,12 @@ class MetaSeo_Content_List_Table extends WP_List_Table {
355
$input .= sprintf('<div class="title-len" id="%1$s"></div>', 'metaseo-metatitle-len' . $rec->ID);
356
echo sprintf('<td %2$s>%1$s</td>', $input, $attributes);
357
break;
358
359
case 'col_meta_desc':
360
$input = sprintf('</br><textarea class="large-text metaseo-metadesc" rows="3" id="%1$s" name="%2$s" autocomplete="off">%3$s</textarea>', 'metaseo-metadesc-' . $rec->ID, ' metades['. $rec->ID.']', (($rec->metadesc ) ? $rec->metadesc : ''));
137
'col_title' => __('Title', 'wpms'),
138
'col_snippet' => sprintf(__('Snippet Preview %s', 'wpms'),$info),
139
'col_meta_title' => __('Meta Title', 'wpms'),
140
);
141
+
142
+ $settings = get_option( '_metaseo_settings' );
143
+ if(isset($settings['metaseo_showkeywords']) && $settings['metaseo_showkeywords'] == 1){
144
+ $columns['col_meta_keywords'] = __('Meta Keywords', 'wpms');
145
+ }
146
+ $columns['col_meta_desc'] = __('Meta Description', 'wpms');
147
+
148
return $columns;
149
}
150
212
$orderStr =' ORDER BY ' . $orderStr;
213
}
214
215
+ $query = "SELECT ID, post_title, post_name, post_type, post_status , mt.meta_value AS metatitle, md.meta_value AS metadesc ,mk.meta_value AS metakeywords "
216
. " FROM $wpdb->posts "
217
. " LEFT JOIN (SELECT * FROM $wpdb->postmeta WHERE meta_key = '_metaseo_metatitle') mt ON mt.post_id = $wpdb->posts.ID "
218
. " LEFT JOIN (SELECT * FROM $wpdb->postmeta WHERE meta_key = '_metaseo_metadesc') md ON md.post_id = $wpdb->posts.ID "
219
+ . " LEFT JOIN (SELECT * FROM $wpdb->postmeta WHERE meta_key = '_metaseo_metakeywords') mk ON mk.post_id = $wpdb->posts.ID "
220
. " WHERE ". implode(' AND ', $where) . $orderStr;
221
222
$total_items = $wpdb->query($query);
361
$input .= sprintf('<div class="title-len" id="%1$s"></div>', 'metaseo-metatitle-len' . $rec->ID);
362
echo sprintf('<td %2$s>%1$s</td>', $input, $attributes);
363
break;
364
+
365
+ case 'col_meta_keywords':
366
+ $input = sprintf('</br><textarea class="large-text metaseo-metakeywords" rows="3" id="%1$s" name="%2$s" autocomplete="off">%3$s</textarea>', 'metaseo-metakeywords-' . $rec->ID, 'metakeywords['. $rec->ID.']', ( ($rec->metakeywords ) ? $rec->metakeywords : ''));
367
+ $input .= sprintf('<div class="keywords-len" id="%1$s"></div>', 'metaseo-metakeywords-len' . $rec->ID);
368
+ echo sprintf('<td %2$s>%1$s</td>', $input, $attributes);
369
+ break;
370
371
case 'col_meta_desc':
372
$input = sprintf('</br><textarea class="large-text metaseo-metadesc" rows="3" id="%1$s" name="%2$s" autocomplete="off">%3$s</textarea>', 'metaseo-metadesc-' . $rec->ID, ' metades['. $rec->ID.']', (($rec->metadesc ) ? $rec->metadesc : ''));
inc/class.metaseo-dashboard.php CHANGED
@@ -31,9 +31,6 @@ class MetaSeo_Dashboard {
31
$response = array(
32
'imgs_statis' => array(0, 0),
33
'imgs_metas_statis' => array(0, 0),
34
- 'meta_title_statis' => array(0, 0),
35
- 'meta_desc_statis' => array(0, 0),
36
- 'metacontent' => array(0, 0),
37
);
38
foreach ($meta_keys as $meta_key) {
39
$imgs_metas_are_good[$meta_key] = 0;
@@ -54,6 +51,8 @@ class MetaSeo_Dashboard {
54
$upload_dir = wp_upload_dir();
55
56
foreach ($posts as $post) {
57
$dom = $doc->loadHTML($post->post_content);
58
$tags = $doc->getElementsByTagName('img');
59
foreach ($tags as $tag) {
@@ -82,13 +81,12 @@ class MetaSeo_Dashboard {
82
$width = $height * ($ratio_origin);
83
}
84
85
- if ($real_width <= $width && $real_height <= $height) {
86
$imgs_are_good++;
87
}
88
-
89
foreach ($meta_keys as $meta_key) {
90
91
- if (trim($tag->getAttribute($meta_key))) {
92
$imgs_metas_are_good[$meta_key] ++;
93
}
94
}
@@ -97,7 +95,7 @@ class MetaSeo_Dashboard {
97
$imgs++;
98
}
99
}
100
-
101
//Report analytic of images optimization
102
$response['imgs_statis'][0] = $imgs_are_good;
103
$response['imgs_statis'][1] = $imgs;
@@ -105,40 +103,6 @@ class MetaSeo_Dashboard {
105
$response['imgs_metas_statis'][1] = $imgs;
106
}
107
108
- //Get number of post/page and number of images inserted into them
109
- $posts_counter = wp_count_posts('post');
110
- $pages_counter = wp_count_posts('page');
111
- $posts_pages_total = $posts_counter->publish + $pages_counter->publish;
112
- $response['meta_title_statis'][1] = $posts_pages_total;
113
- $response['meta_desc_statis'][1] = $posts_pages_total;
114
-
115
- $query = "SELECT `meta_key`, count( `meta_value` ) as total
116
- FROM $wpdb->postmeta
117
- WHERE `meta_key` = '_metaseo_metatitle' AND `meta_value` <> ''
118
- UNION (
119
- SELECT `meta_key`, count( `meta_value` ) as total
120
- FROM $wpdb->postmeta
121
- WHERE `meta_key` = '_metaseo_metadesc' AND `meta_value` <> ''
122
- )";
123
-
124
- $alias_names = array('_metaseo_metatitle' => 'meta_title_statis', '_metaseo_metadesc' => 'meta_desc_statis');
125
-
126
- $results = $wpdb->get_results($query);
127
- if (count($results) > 0) {
128
- $count_tt_desc = 0;
129
- foreach ($results as $result) {
130
- if ($result->meta_key === NULL) {
131
- continue;
132
- }
133
- //Report analytic of content meta
134
- $count_tt_desc +=(int) $result->total;
135
- $response[$alias_names[$result->meta_key]][0] = (int) $result->total;
136
- $response[$alias_names[$result->meta_key]][1] = $posts_pages_total;
137
- }
138
- $response['metacontent'][0] = ceil($count_tt_desc / 2);
139
- $response['metacontent'][1] = $posts_pages_total;
140
- }
141
-
142
return $response;
143
}
144
@@ -235,13 +199,16 @@ class MetaSeo_Dashboard {
235
return $results;
236
}else{
237
foreach ($mposts as $post){
238
$meta_title = get_post_meta($post->ID, '_metaseo_metatitle', true);
239
$meta_desc = get_post_meta($post->ID, '_metaseo_metadesc', true);
240
- if($meta_title != '' && strlen($meta_title) <= self::$meta_title_length ){
241
self::$metatitle_filled++;
242
}
243
244
- if($meta_desc != '' && strlen($meta_desc) <= self::$meta_desc_length ){
245
self::$metadesc_filled++;
246
}
247
}
31
$response = array(
32
'imgs_statis' => array(0, 0),
33
'imgs_metas_statis' => array(0, 0),
34
);
35
foreach ($meta_keys as $meta_key) {
36
$imgs_metas_are_good[$meta_key] = 0;
51
$upload_dir = wp_upload_dir();
52
53
foreach ($posts as $post) {
54
+ $meta_analysis = get_post_meta($post->ID, 'wpms_validate_analysis',true);
55
+ if(empty($meta_analysis)) $meta_analysis = array();
56
$dom = $doc->loadHTML($post->post_content);
57
$tags = $doc->getElementsByTagName('img');
58
foreach ($tags as $tag) {
81
$width = $height * ($ratio_origin);
82
}
83
84
+ if (($real_width <= $width && $real_height <= $height) || (!empty($meta_analysis) && !empty($meta_analysis['imgresize']))) {
85
$imgs_are_good++;
86
}
87
foreach ($meta_keys as $meta_key) {
88
89
+ if (trim($tag->getAttribute($meta_key)) || (!empty($meta_analysis) && !empty($meta_analysis['imgalt']))) {
90
$imgs_metas_are_good[$meta_key] ++;
91
}
92
}
95
$imgs++;
96
}
97
}
98
+
99
//Report analytic of images optimization
100
$response['imgs_statis'][0] = $imgs_are_good;
101
$response['imgs_statis'][1] = $imgs;
103
$response['imgs_metas_statis'][1] = $imgs;
104
}
105
106
return $response;
107
}
108
199
return $results;
200
}else{
201
foreach ($mposts as $post){
202
+ $meta_analysis = get_post_meta($post->ID, 'wpms_validate_analysis',true);
203
+ if(empty($meta_analysis)) $meta_analysis = array();
204
+
205
$meta_title = get_post_meta($post->ID, '_metaseo_metatitle', true);
206
$meta_desc = get_post_meta($post->ID, '_metaseo_metadesc', true);
207
+ if(($meta_title != '' && strlen($meta_title) <= self::$meta_title_length ) || (!empty($meta_analysis) && !empty($meta_analysis['metatitle']))){
208
self::$metatitle_filled++;
209
}
210
211
+ if(($meta_desc != '' && strlen($meta_desc) <= self::$meta_desc_length ) || (!empty($meta_analysis) && !empty($meta_analysis['metadesc'])) ){
212
self::$metadesc_filled++;
213
}
214
}
inc/class.metaseo-meta.php CHANGED
@@ -6,7 +6,9 @@ class WPMSEO_Meta {
6
public static $form_prefix = 'metaseo_wpmseo_';
7
public static $meta_length = 156;
8
public static $meta_title_length = 69;
9
public static $meta_length_reason = '';
10
public static $meta_fields = array(
11
'general' => array(
12
'snippetpreview' => array(
@@ -22,6 +24,14 @@ class WPMSEO_Meta {
22
'help' => '', // Translation added later.
23
'rows' => 2
24
),
25
'desc' => array(
26
'type' => 'textarea',
27
'title' => '', // Translation added later.
6
public static $form_prefix = 'metaseo_wpmseo_';
7
public static $meta_length = 156;
8
public static $meta_title_length = 69;
9
+ public static $meta_keywords_length = 256;
10
public static $meta_length_reason = '';
11
+
12
public static $meta_fields = array(
13
'general' => array(
14
'snippetpreview' => array(
24
'help' => '', // Translation added later.
25
'rows' => 2
26
),
27
+ 'keywords' => array(
28
+ 'type' => 'textarea',
29
+ 'title' => '', // Translation added later.
30
+ 'default_value' => '',
31
+ 'description' => '', // Translation added later.
32
+ 'help' => '', // Translation added later.
33
+ 'rows' => 2
34
+ ),
35
'desc' => array(
36
'type' => 'textarea',
37
'title' => '', // Translation added later.
inc/class.metaseo-metabox.php CHANGED
@@ -60,6 +60,16 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
60
self::$meta_fields['general']['title']['title'] = __('Search engine title', 'wpms');
61
self::$meta_fields['general']['title']['description'] = sprintf(__('<span id="metaseo_wpmseo_title-length">%s</span>'),self::$meta_length_reason);
62
self::$meta_fields['general']['title']['help'] = __('This is the title of your content that may be displayed in search engine results (meta title). By default it’s the content title (page title, post title…). 69 characters max allowed.', 'wpms');
63
64
self::$meta_fields['general']['desc']['title'] = __('Search engine description', 'wpms');
65
self::$meta_fields['general']['desc']['description'] = sprintf(__('<span id="metaseo_wpmseo_desc-length">%s</span>'),self::$meta_length_reason);
@@ -115,12 +125,31 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
115
wp_enqueue_script('metaseo-cliffpyles', plugins_url('js/cliffpyles.js', WPMSEO_FILE), array('jquery'),WPMSEO_VERSION, true);
116
wp_localize_script('m-wp-seo-metabox', 'wpmseoMetaboxL10n', $this->meta_seo_localize_script());
117
wp_localize_script( 'mwpseo-admin-media', 'wpmseoMediaL10n', $this->metaseo_localize_media_script() );
118
}
119
}
120
121
public function metaseo_localize_media_script() {
122
return array(
123
'choose_image' => __( 'Use Image', 'wpms' ),
124
);
125
}
126
@@ -177,18 +206,26 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
177
}
178
179
$cached_replacement_vars['sitename'] = get_option('blogname');
180
- return array_merge($cached_replacement_vars, array(
181
'field_prefix' => self::$form_prefix,
182
'choose_image' => __('Use Image', 'wpms'),
183
'wpmseo_meta_desc_length' => self::$meta_length,
184
'wpmseo_meta_title_length' => self::$meta_title_length,
185
'wpmseo_title_template' => $title_template,
186
'wpmseo_desc_template' => $desc_template,
187
'wpmseo_permalink_template' => $sample_permalink,
188
'wpmseo_keyword_suggest_nonce' => wp_create_nonce('wpmseo-get-suggest'),
189
'wpmseo_replace_vars_nonce' => wp_create_nonce('wpmseo-replace-vars'),
190
'no_parent_text' => __('(no parent)', 'wpms'),
191
- ));
192
}
193
194
function is_metabox_hidden($post_type = null) {
@@ -279,7 +316,13 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
279
echo '</div>';
280
}
281
282
- function metaseo_check_headingtitle($post,$meta_title,$tooltip_page){
283
if($meta_title != ''){
284
$words_meta_title = preg_split('~[^\p{L}\p{N}\']+~u',strtolower($meta_title));//explode(' ' , strtolower($meta_title));
285
$words_post_title = preg_split('~[^\p{L}\p{N}\']+~u',strtolower($post->post_title)); //explode(' ' , strtolower($post->post_title));
@@ -297,21 +340,21 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
297
$test = false;
298
}
299
300
- if($test){
301
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['title_in_heading'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content heading','wpms').'</div>';
302
$this->perc_score++;
303
}else{
304
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['title_in_heading'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page title word in content heading','wpms').'</div>';
305
}
306
307
}else{
308
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['title_in_heading'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content heading','wpms').'</div>';
309
$this->perc_score++;
310
}
311
return $output;
312
}
313
314
- function metaseo_check_content($post,$tooltip_page){
315
$words_meta_title = preg_split('~[^\p{L}\p{N}\']+~u',strtolower($post->post_title));
316
$words_post_content = preg_split('~[^\p{L}\p{N}\']+~u',strtolower($post->post_content));
317
$test1 = false;
@@ -325,54 +368,54 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
325
}else{
326
$test1 = false;
327
}
328
-
329
- if($test1){
330
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['title_in_content'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page title word in content','wpms').'</div>';
331
$this->perc_score++;
332
}else{
333
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['title_in_content'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page title word in content','wpms').'</div>';
334
}
335
336
return $output;
337
}
338
339
- function metaseo_check_pageurl($post,$tooltip_page){
340
$pageurl = get_permalink($post->ID);
341
$info = pathinfo($pageurl);
342
343
- if($info['filename'] == sanitize_title($post->post_title)){
344
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['page_url'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Page url matches with page title','wpms').'</div>';
345
$this->perc_score++;
346
}else{
347
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['page_url'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Page url matches with page title','wpms').'</div>';
348
}
349
350
return $output;
351
}
352
353
- function metaseo_check_metatitle($meta_title,$tooltip_page){
354
- if($meta_title != '' && strlen($meta_title) <= self::$meta_title_length){
355
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['meta_title'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Meta title filled','wpms').'</div>';
356
$this->perc_score++;
357
}else{
358
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['meta_title'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Meta title filled','wpms').'</div>';
359
}
360
return $output;
361
}
362
363
- function metaseo_check_metadesc($meta_desc,$tooltip_page){
364
- if($meta_desc != '' && strlen($meta_desc) <= self::$meta_length){
365
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['meta_desc'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Meta description filled','wpms').'</div>';
366
$this->perc_score++;
367
}else{
368
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['meta_desc'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Meta description filled','wpms').'</div>';
369
}
370
return $output;
371
}
372
373
- function metaseo_check_imageresize($content,$tooltip_page){
374
if($content == '') {
375
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_resize'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Wrong image resize','wpms').'</div>';
376
$this->perc_score++;
377
return $output;
378
}
@@ -395,22 +438,22 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
395
}
396
}
397
398
- if($img_wrong){
399
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_resize'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Wrong image resize','wpms').'</div>';
400
- }else{
401
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_resize'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Wrong image resize','wpms').'</div>';
402
$this->perc_score++;
403
}
404
405
}else{
406
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_resize'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Wrong image resize','wpms').'</div>';
407
}
408
return $output;
409
}
410
411
- function metaseo_check_imagealt($content,$tooltip_page){
412
if($content == '') {
413
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_alt'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Image have meta title or alt','wpms').'</div>';
414
$this->perc_score++;
415
return $output;
416
}
@@ -428,15 +471,15 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
428
}
429
}
430
431
- if($img_wrong){
432
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_alt'].'"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Image have meta title or alt','wpms').'</div>';
433
- }else{
434
- $output = '<div class="metaseo_analysis metaseo_tool" alt="'.$tooltip_page['image_alt'].'"><div class="metaseo-dashicons dashicons-before dashicons-yes"></div>'.__('Image have meta title or alt','wpms').'</div>';
435
$this->perc_score++;
436
}
437
438
}else{
439
- $output = '<div class="metaseo_analysis"><div class="metaseo-dashicons dashicons-before icons-mwarning"></div>'.__('Image have meta title or alt','wpms').'</div>';
440
}
441
return $output;
442
}
@@ -453,24 +496,27 @@ class WPMSEO_Metabox extends WPMSEO_Meta {
453
454
$meta_title = get_post_meta($post->ID, '_metaseo_metatitle', true);
455
$meta_desc = get_post_meta($post->ID, '_metaseo_metadesc', true);
456
- $headingtitle = $this->metaseo_check_headingtitle($post,$meta_title,$tooltip_page);
457
- $contenttitle = $this->metaseo_check_content($post,$tooltip_page);
458
- $output_pageurl = $this->metaseo_check_pageurl($post,$tooltip_page);
459
- $output_metatitle = $this->metaseo_check_metatitle($meta_title,$tooltip_page);
460
- $output_metadesc = $this->metaseo_check_metadesc($meta_desc,$tooltip_page);
461
- $output_imagewrong = $this->metaseo_check_imageresize($post->post_content,$tooltip_page);
462
- $output_imagealt = $this->metaseo_check_imagealt($post->post_content,$tooltip_page);
463
464
$output = '';
465
$circliful = ceil(100*($this->perc_score)/7);
466
//$output .= '<div class="metaseo_right"><div id="metaseo_circliful"data-dimension="250" data-text="'.$circliful.'%" data-info="" data-width="20" data-fontsize="38" data-percent="'.$circliful.'" data-fgcolor="#7bd095" data-bgcolor="#e5e5e5" style="color:#7bd095" ></div><div>';
467
$output .= '<div class="metaseo_left">
468
- <div class="metaseo-progress-bar">
469
<canvas id="inactiveProgress" class="metaseo-progress-inactive" height="275px" width="275px"></canvas>
470
<canvas id="activeProgress" class="metaseo-progress-active" height="275px" width="275px"></canvas>
471
<p>0%</p>
472
</div>
473
<input type="hidden" id="progressController" value="'.$circliful.'" />
474
</div>';
475
476
$output .= '<div class="metaseo_right">';
60
self::$meta_fields['general']['title']['title'] = __('Search engine title', 'wpms');
61
self::$meta_fields['general']['title']['description'] = sprintf(__('<span id="metaseo_wpmseo_title-length">%s</span>'),self::$meta_length_reason);
62
self::$meta_fields['general']['title']['help'] = __('This is the title of your content that may be displayed in search engine results (meta title). By default it’s the content title (page title, post title…). 69 characters max allowed.', 'wpms');
63
+
64
+ $settings = get_option( '_metaseo_settings' );
65
+ if(isset($settings['metaseo_showkeywords']) && $settings['metaseo_showkeywords'] == 1){
66
+ self::$meta_fields['general']['keywords']['title'] = __('Search engine keywords', 'wpms');
67
+ self::$meta_fields['general']['keywords']['description'] = '<span id="metaseo_wpmseo_keywords-length"></span>';
68
+ self::$meta_fields['general']['keywords']['help'] = __('This is the keywords of your content that may be displayed in search engine results (meta keywords).', 'wpms');
69
+ }else{
70
+ unset(self::$meta_fields['general']['keywords']);
71
+ }
72
+
73
74
self::$meta_fields['general']['desc']['title'] = __('Search engine description', 'wpms');
75
self::$meta_fields['general']['desc']['description'] = sprintf(__('<span id="metaseo_wpmseo_desc-length">%s</span>'),self::$meta_length_reason);
125
wp_enqueue_script('metaseo-cliffpyles', plugins_url('js/cliffpyles.js', WPMSEO_FILE), array('jquery'),WPMSEO_VERSION, true);
126
wp_localize_script('m-wp-seo-metabox', 'wpmseoMetaboxL10n', $this->meta_seo_localize_script());
127
wp_localize_script( 'mwpseo-admin-media', 'wpmseoMediaL10n', $this->metaseo_localize_media_script() );
128
+ wp_localize_script( 'metaseo-cliffpyles', 'wpmscliffpyles', $this->metaseo_localize_media_script() );
129
}
130
}
131
132
public function metaseo_localize_media_script() {
133
+ $this->settings = array(
134
+ "metaseo_title_home"=>"",
135
+ "metaseo_desc_home"=>"",
136
+ "metaseo_showfacebook"=>"",
137
+ "metaseo_showtwitter"=>"",
138
+ "metaseo_twitter_card"=>"summary",
139
+ "metaseo_showkeywords"=>0,
140
+ "metaseo_showtmetablock"=>1,
141
+ "metaseo_showsocial" => 1,
142
+ "metaseo_seovalidate" => 0
143
+ );
144
+ $settings = get_option( '_metaseo_settings' );
145
+
146
+ if(is_array($settings)){
147
+ $this->settings = array_merge($this->settings, $settings);
148
+ }
149
+
150
return array(
151
'choose_image' => __( 'Use Image', 'wpms' ),
152
+ 'use_validate' => $this->settings['metaseo_seovalidate']
153
);
154
}
155
206
}
207
208
$cached_replacement_vars['sitename'] = get_option('blogname');
209
+ $array_keyword = array(
210
'field_prefix' => self::$form_prefix,
211
'choose_image' => __('Use Image', 'wpms'),
212
'wpmseo_meta_desc_length' => self::$meta_length,
213
'wpmseo_meta_title_length' => self::$meta_title_length,
214
+ 'wpmseo_meta_keywords_length' => self::$meta_keywords_length,
215
'wpmseo_title_template' => $title_template,
216
'wpmseo_desc_template' => $desc_template,
217
'wpmseo_permalink_template' => $sample_permalink,
218
'wpmseo_keyword_suggest_nonce' => wp_create_nonce('wpmseo-get-suggest'),
219
'wpmseo_replace_vars_nonce' => wp_create_nonce('wpmseo-replace-vars'),
220
'no_parent_text' => __('(no parent)', 'wpms'),
221
+ 'show_keywords' => 0
222
+ );
223
+ $settings = get_option( '_metaseo_settings' );
224
+ if(isset($settings['metaseo_showkeywords']) && $settings['metaseo_showkeywords'] == 1){
225
+ $array_keyword['show_keywords'] = 1;
226
+ }
227
+
228
+ return array_merge($cached_replacement_vars, $array_keyword);
229
}
230
231
function is_metabox_hidden($post_type = null) {
316
echo '</div>';
317
}
318
319
+ function metaseo_create_field($data_title,$alt,$dashicon,$label,$value_hidden){
320
+ $output = '<div class="metaseo_analysis metaseo_tool 123" data-title="'.$data_title.'" alt="'.$alt.'"><div class="metaseo-dashicons dashicons-before '.$dashicon.'"></div>'.$label.'</div>';
321
+ $output .= '<input type="hidden" class="wpms_analysis_hidden" name="wpms['.$data_title.']" value="'.$value_hidden.'">';
322
+ return $output;
323
+ }
324
+
325
+ function metaseo_check_headingtitle($post,$meta_title,$tooltip_page,$meta_analysis){
326
if($meta_title != ''){
327
$words_meta_title = preg_split('~[^\p{L}\p{N}\']+~u',strtolower($meta_title));//explode(' ' , strtolower($meta_title));
328
$words_post_title = preg_split('~[^\p{L}\p{N}\']+~u',strtolower($post->post_title)); //explode(' ' , strtolower($post->post_title));
340
$test = false;
341
}
342
343
+ if($test || (!empty($meta_analysis) && !empty($meta_analysis['heading_title']))){
344
+ $output = $this->metaseo_create_field('heading_title',$tooltip_page['title_in_heading'],'dashicons-yes',__('Page title word in content heading','wpms'),1);
345
$this->perc_score++;
346
}else{
347
+ $output = $this->metaseo_create_field('heading_title',$tooltip_page['title_in_heading'],'icons-mwarning',__('Page title word in content heading','wpms'),0);
348
}
349
350
}else{
351
+ $output = $this->metaseo_create_field('heading_title',$tooltip_page['title_in_heading'],'dashicons-yes',__('Page title word in content heading','wpms'),1);
352
$this->perc_score++;
353
}
354
return $output;
355
}
356
357
+ function metaseo_check_content($post,$tooltip_page,$meta_analysis){
358
$words_meta_title = preg_split('~[^\p{L}\p{N}\']+~u',strtolower($post->post_title));
359
$words_post_content = preg_split('~[^\p{L}\p{N}\']+~u',strtolower($post->post_content));
360
$test1 = false;
368
}else{
369
$test1 = false;
370
}
371
+
372
+ if($test1 || (!empty($meta_analysis) && !empty($meta_analysis['content_title']))){
373
+ $output = $this->metaseo_create_field('content_title',$tooltip_page['title_in_content'],'dashicons-yes',__('Page title word in content','wpms'),1);
374
$this->perc_score++;
375
}else{
376
+ $output = $this->metaseo_create_field('content_title',$tooltip_page['title_in_content'],'icons-mwarning',__('Page title word in content','wpms'),0);
377
}
378
379
return $output;
380
}
381
382
+ function metaseo_check_pageurl($post,$tooltip_page,$meta_analysis){
383
$pageurl = get_permalink($post->ID);
384
$info = pathinfo($pageurl);
385
386
+ if($info['filename'] == sanitize_title($post->post_title) || (!empty($meta_analysis) && !empty($meta_analysis['pageurl']))){
387
+ $output = $this->metaseo_create_field('pageurl',$tooltip_page['page_url'],'dashicons-yes',__('Page url matches with page title','wpms'),1);
388
$this->perc_score++;
389
}else{
390
+ $output = $this->metaseo_create_field('pageurl',$tooltip_page['page_url'],'icons-mwarning',__('Page url matches with page title','wpms'),0);
391
}
392
393
return $output;
394
}
395
396
+ function metaseo_check_metatitle($meta_title,$tooltip_page,$meta_analysis){
397
+ if(($meta_title != '' && strlen($meta_title) <= self::$meta_title_length) || (!empty($meta_analysis) && !empty($meta_analysis['metatitle'])) ){
398
+ $output = $this->metaseo_create_field('metatitle',$tooltip_page['meta_title'],'dashicons-yes',__('Meta title filled','wpms'),1);
399
$this->perc_score++;
400
}else{
401
+ $output = $this->metaseo_create_field('metatitle',$tooltip_page['meta_title'],'icons-mwarning',__('Meta title filled','wpms'),0);
402
}
403
return $output;
404
}
405
406
+ function metaseo_check_metadesc($meta_desc,$tooltip_page,$meta_analysis){
407
+ if(($meta_desc != '' && strlen($meta_desc) <= self::$meta_length) || (!empty($meta_analysis) && !empty($meta_analysis['metadesc'])) ){
408
+ $output = $this->metaseo_create_field('metadesc',$tooltip_page['meta_desc'],'dashicons-yes',__('Meta description filled','wpms'),1);
409
$this->perc_score++;
410
}else{
411
+ $output = $this->metaseo_create_field('metadesc',$tooltip_page['meta_desc'],'icons-mwarning',__('Meta description filled','wpms'),0);
412
}
413
return $output;
414
}
415
416
+ function metaseo_check_imageresize($content,$tooltip_page,$meta_analysis){
417
if($content == '') {
418
+ $output = $this->metaseo_create_field('imgresize',$tooltip_page['image_resize'],'dashicons-yes',__('Wrong image resize','wpms'),1);
419
$this->perc_score++;
420
return $output;
421
}
438
}
439
}
440
441
+ if($img_wrong == false || (!empty($meta_analysis) && !empty($meta_analysis['imgresize']))){
442
+ $output = $this->metaseo_create_field('imgresize',$tooltip_page['image_resize'],'dashicons-yes',__('Wrong image resize','wpms'),1);
443
$this->perc_score++;
444
+ }else{
445
+ $output = $this->metaseo_create_field('imgresize',$tooltip_page['image_resize'],'icons-mwarning',__('Wrong image resize','wpms'),0);
446
}
447
448
}else{
449
+ $output = $this->metaseo_create_field('imgresize',$tooltip_page['image_resize'],'icons-mwarning',__('Wrong image resize','wpms'),0);
450
}
451
return $output;
452
}
453
454
+ function metaseo_check_imagealt($content,$tooltip_page,$meta_analysis){
455
if($content == '') {
456
+ $output = $this->metaseo_create_field('imgalt',$tooltip_page['image_alt'],'dashicons-yes',__('Image have meta title or alt','wpms'),1);
457
$this->perc_score++;
458
return $output;
459
}
471
}
472
}
473
474
+ if($img_wrong == false || (!empty($meta_analysis) && !empty($meta_analysis['imgalt']))){
475
+ $output = $this->metaseo_create_field('imgalt',$tooltip_page['image_alt'],'dashicons-yes',__('Image have meta title or alt','wpms'),1);
476
$this->perc_score++;
477
+ }else{
478
+ $output = $this->metaseo_create_field('imgalt',$tooltip_page['image_alt'],'icons-mwarning',__('Image have meta title or alt','wpms'),0);
479
}
480
481
}else{
482
+ $output = $this->metaseo_create_field('imgalt',$tooltip_page['image_alt'],'icons-mwarning',__('Image have meta title or alt','wpms'),0);
483
}
484
return $output;
485
}
496
497
$meta_title = get_post_meta($post->ID, '_metaseo_metatitle', true);
498
$meta_desc = get_post_meta($post->ID, '_metaseo_metadesc', true);
499
+ $meta_analysis = get_post_meta($post->ID, 'wpms_validate_analysis',true);
500
+ if(empty($meta_analysis)) $meta_analysis = array();
501
+ $headingtitle = $this->metaseo_check_headingtitle($post,$meta_title,$tooltip_page,$meta_analysis);
502
+ $contenttitle = $this->metaseo_check_content($post,$tooltip_page,$meta_analysis);
503
+ $output_pageurl = $this->metaseo_check_pageurl($post,$tooltip_page,$meta_analysis);
504
+ $output_metatitle = $this->metaseo_check_metatitle($meta_title,$tooltip_page,$meta_analysis);
505
+ $output_metadesc = $this->metaseo_check_metadesc($meta_desc,$tooltip_page,$meta_analysis);
506
+ $output_imagewrong = $this->metaseo_check_imageresize($post->post_content,$tooltip_page,$meta_analysis);
507
+ $output_imagealt = $this->metaseo_check_imagealt($post->post_content,$tooltip_page,$meta_analysis);
508
509
$output = '';
510
$circliful = ceil(100*($this->perc_score)/7);
511
//$output .= '<div class="metaseo_right"><div id="metaseo_circliful"data-dimension="250" data-text="'.$circliful.'%" data-info="" data-width="20" data-fontsize="38" data-percent="'.$circliful.'" data-fgcolor="#7bd095" data-bgcolor="#e5e5e5" style="color:#7bd095" ></div><div>';
512
$output .= '<div class="metaseo_left">
513
+ <div class="metaseo-progress-bar" data-post_id="'.$post->ID.'">
514
<canvas id="inactiveProgress" class="metaseo-progress-inactive" height="275px" width="275px"></canvas>
515
<canvas id="activeProgress" class="metaseo-progress-active" height="275px" width="275px"></canvas>
516
<p>0%</p>
517
</div>
518
<input type="hidden" id="progressController" value="'.$circliful.'" />
519
+ <input type="hidden" id="metaseo_alanysis_ok" value="'.$this->perc_score.'" />
520
</div>';
521
522
$output .= '<div class="metaseo_right">';
inc/pages/content-meta.php CHANGED
@@ -33,6 +33,11 @@ jQuery(document).ready(function($){
33
$('.metaseo-metatitle').each(function() {
34
metaseo_updateTitle(this.id, false, false);
35
});
36
$('.metaseo-metadesc').each(function() {
37
metaseo_updateDesc(this.id,false);
38
});
@@ -40,6 +45,10 @@ jQuery(document).ready(function($){
40
$('.metaseo-metatitle').bind('input propertychange', function() {
41
metaseo_updateTitle(this.id, true);
42
});
43
44
$('.metaseo-metadesc').bind('input propertychange', function() {
45
metaseo_updateDesc(this.id, true);
33
$('.metaseo-metatitle').each(function() {
34
metaseo_updateTitle(this.id, false, false);
35
});
36
+
37
+ $('.metaseo-metakeywords').each(function() {
38
+ metaseo_updatekeywords(this.id, false, false);
39
+ });
40
+
41
$('.metaseo-metadesc').each(function() {
42
metaseo_updateDesc(this.id,false);
43
});
45
$('.metaseo-metatitle').bind('input propertychange', function() {
46
metaseo_updateTitle(this.id, true);
47
});
48
+
49
+ $('.metaseo-metakeywords').bind('input propertychange', function() {
50
+ metaseo_updatekeywords(this.id, true);
51
+ });
52
53
$('.metaseo-metadesc').bind('input propertychange', function() {
54
metaseo_updateDesc(this.id, true);
inc/pages/dashboard.php CHANGED
@@ -9,7 +9,6 @@ $url = 'http://www.alexa.com/siteinfo/' . $site_name;
9
$dashboard = new MetaSeo_Dashboard();
10
$results = $dashboard->evolutive_dashboard();
11
$results_image = $dashboard->moptimizationChecking();
12
-
13
if(!empty($results_image['imgs_statis'][1])){
14
$percent_iresizing = ceil($results_image['imgs_statis'][0]/$results_image['imgs_statis'][1]*100);
15
}else{
9
$dashboard = new MetaSeo_Dashboard();
10
$results = $dashboard->evolutive_dashboard();
11
$results_image = $dashboard->moptimizationChecking();
12
if(!empty($results_image['imgs_statis'][1])){
13
$percent_iresizing = ceil($results_image['imgs_statis'][0]/$results_image['imgs_statis'][1]*100);
14
}else{
js/cliffpyles.js CHANGED
@@ -4,6 +4,11 @@ jQuery(document).ready(function ($) {
4
var iProgress = document.getElementById('inactiveProgress');
5
var aProgress = document.getElementById('activeProgress');
6
var iProgressCTX = iProgress.getContext('2d');
7
8
jQuery('#reload_analysis').on('click',function(){
9
$('.wpmseotab .spinner').css({'visibility':' inherit'}).show();
@@ -18,7 +23,7 @@ jQuery(document).ready(function ($) {
18
mcontent = tinyMCE.editors.content.getContent();
19
}
20
21
- var data = {'title':title , 'meta_title':meta_title , 'mpageurl':mpageurl , 'meta_desc':meta_desc , 'content':mcontent};
22
$.ajax({
23
dataType : 'json',
24
method : 'POST',
@@ -31,6 +36,7 @@ jQuery(document).ready(function ($) {
31
if(res != false){
32
$('.wpmseotab .spinner').hide();
33
$('.metaseo_right').html(res.output);
34
$('#progressController').val(res.circliful).change();
35
jQuery('.metaseo_tool').qtip({
36
content: {
@@ -66,7 +72,7 @@ jQuery(document).ready(function ($) {
66
var percentage = $(this).val() / 100;
67
drawProgress(aProgress, percentage, $pCaption);
68
});
69
-
70
function drawInactive(iProgressCTX) {
71
iProgressCTX.lineCap = 'square';
72
@@ -112,6 +118,36 @@ jQuery(document).ready(function ($) {
112
113
var percentage = $pc.val() / 100;
114
drawProgress(aProgress, percentage, $pCaption);
115
116
117
});
4
var iProgress = document.getElementById('inactiveProgress');
5
var aProgress = document.getElementById('activeProgress');
6
var iProgressCTX = iProgress.getContext('2d');
7
+ var mcheck = 0;
8
+ if(typeof wpmscliffpyles.use_validate != "undefined" && wpmscliffpyles.use_validate == 1){
9
+ wpms_validate_analysis();
10
+ }
11
+
12
13
jQuery('#reload_analysis').on('click',function(){
14
$('.wpmseotab .spinner').css({'visibility':' inherit'}).show();
23
mcontent = tinyMCE.editors.content.getContent();
24
}
25
26
+ var data = {'post_id': jQuery('.metaseo-progress-bar').data('post_id'),'title':title , 'meta_title':meta_title , 'mpageurl':mpageurl , 'meta_desc':meta_desc , 'content':mcontent};
27
$.ajax({
28
dataType : 'json',
29
method : 'POST',
36
if(res != false){
37
$('.wpmseotab .spinner').hide();
38
$('.metaseo_right').html(res.output);
39
+ mcheck = res.check;
40
$('#progressController').val(res.circliful).change();
41
jQuery('.metaseo_tool').qtip({
42
content: {
72
var percentage = $(this).val() / 100;
73
drawProgress(aProgress, percentage, $pCaption);
74
});
75
+
76
function drawInactive(iProgressCTX) {
77
iProgressCTX.lineCap = 'square';
78
118
119
var percentage = $pc.val() / 100;
120
drawProgress(aProgress, percentage, $pCaption);
121
+
122
+ function wpms_validate_analysis() {
123
+ jQuery(document).on('click', '.metaseo-dashicons.icons-mwarning', function(event) {
124
+ var $this = $(this);
125
+ jQuery(this).removeClass('icons-mwarning').addClass('dashicons-yes');
126
+ if(mcheck == 0){
127
+ mcheck = jQuery('#metaseo_alanysis_ok').val();
128
+ mcheck++;
129
+ }else{
130
+ mcheck++;
131
+ }
132
+ var circliful = Math.ceil((mcheck*100)/7);
133
+ jQuery.ajax({
134
+ dataType : 'json',
135
+ method : 'POST',
136
+ url : ajaxurl,
137
+ data: {
138
+ 'action': 'metaseo_validate_analysis',
139
+ 'post_id' : jQuery('.metaseo-progress-bar').data('post_id'),
140
+ 'field' : $this.parent('.metaseo_analysis').data('title'),
141
+ },
142
+ success: function(res){
143
+ if(res != false){
144
+ $('#progressController').val(circliful).change();
145
+ }
146
+ }
147
+ });
148
+
149
+ });
150
+ }
151
152
153
});
js/metaseo_admin.js CHANGED
@@ -5,6 +5,7 @@
5
*/
6
var title_max_len = 69;
7
var desc_max_len = 156;
8
var metaseoValueHolder = {};
9
var iUnchecked = 0;
10
@@ -22,6 +23,7 @@ function metaseo_clean(str) {
22
}
23
24
var oldTitleValues = {};
25
var oldDescValues = {};
26
var metaContentChangeWait;
27
function metaseo_updateTitle(metatitle_id, needToSave, updateSnippet) {
@@ -56,6 +58,36 @@ function metaseo_updateTitle(metatitle_id, needToSave, updateSnippet) {
56
oldTitleValues[postid] = title;
57
}
58
59
function metaseo_updateDesc(metadesc_id, needToSave) {
60
var desc = jQuery.trim(metaseo_clean(jQuery('#' + metadesc_id).val()));
61
var postid = metadesc_id.replace('metaseo-metadesc-', '');
5
*/
6
var title_max_len = 69;
7
var desc_max_len = 156;
8
+ var keywords_max_len = 256;
9
var metaseoValueHolder = {};
10
var iUnchecked = 0;
11
23
}
24
25
var oldTitleValues = {};
26
+ var oldKeywordsValues = {};
27
var oldDescValues = {};
28
var metaContentChangeWait;
29
function metaseo_updateTitle(metatitle_id, needToSave, updateSnippet) {
58
oldTitleValues[postid] = title;
59
}
60
61
+ function metaseo_updatekeywords(metakeywords_id, needToSave, updateSnippet) {
62
+ var keywords = jQuery.trim(metaseo_clean(jQuery('#' + metakeywords_id).val()));
63
+ var postid = metakeywords_id.replace('metaseo-metakeywords-', '');
64
+
65
+ var counter_id = 'metaseo-metakeywords-len' + postid;
66
+ console.log(keywords_max_len-keywords.length);
67
+ console.log(counter_id);
68
+ jQuery('#' + counter_id).text(keywords_max_len-keywords.length);
69
+
70
+ if (keywords.length >= keywords_max_len) {
71
+ jQuery('#' + counter_id).addClass('word-exceed');
72
+ }
73
+ else {
74
+ jQuery('#' + counter_id).removeClass('word-exceed');
75
+ }
76
+
77
+ // jQuery('#snippet_keywords' + postid).text(desc.substr(0, desc_max_len) );
78
+
79
+ if (needToSave === true && oldKeywordsValues[postid] != keywords ) {
80
+
81
+ clearTimeout(metaContentChangeWait);
82
+ metaContentChangeWait = setTimeout(function() {
83
+ saveMetaContentChanges('metakeywords', postid, keywords);
84
+ }, 1000);
85
+ }
86
+
87
+ //Push the new value into the array
88
+ oldKeywordsValues[postid] = keywords;
89
+ }
90
+
91
function metaseo_updateDesc(metadesc_id, needToSave) {
92
var desc = jQuery.trim(metaseo_clean(jQuery('#' + metadesc_id).val()));
93
var postid = metadesc_id.replace('metaseo-metadesc-', '');
js/wp-metaseo-metabox.js CHANGED
@@ -143,6 +143,19 @@ function msUpdateTitle(force) {
143
});
144
}
145
146
function msSanitizeTitle(title) {
147
title = msClean(title);
148
return title;
@@ -228,6 +241,9 @@ function msUpdateURL() {
228
}
229
230
function msUpdateSnippet() {
231
msUpdateURL();
232
msUpdateTitle();
233
msUpdateDesc();
@@ -259,19 +275,19 @@ function metaseo_status_length(len,id){
259
260
jQuery(document).ready(function ($) {
261
// add countdown for title and description
262
- var titleval = jQuery.trim(msClean(jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'title').val()));
263
- var descval = jQuery.trim(msClean(jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'desc').val()));
264
- if (titleval === '') {
265
- jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'title-length').html('<span class="good">'+ wpmseoMetaboxL10n.wpmseo_meta_title_length +'</span>');
266
- }else{
267
- metaseo_status_length(titleval.length,'#' + wpmseoMetaboxL10n.field_prefix + 'title-length');
268
- }
269
- if (descval === '') {
270
- jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'desc-length').html('<span class="good">'+ wpmseoMetaboxL10n.wpmseo_meta_desc_length +'</span>');
271
- }else{
272
- metaseo_status_length(descval.length,'#' + wpmseoMetaboxL10n.field_prefix + 'desc-length');
273
- }
274
-
275
var replacedVars = []; // jshint ignore:line
276
277
if (jQuery('.wpmseo-metabox-tabs-div').length > 0) {
@@ -314,6 +330,10 @@ jQuery(document).ready(function ($) {
314
jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'title').keyup(function () {
315
msUpdateTitle();
316
});
317
318
jQuery('#title').keyup(function () {
319
msUpdateTitle();
143
});
144
}
145
146
+ function msUpdateKeywords(){
147
+ var keywords = '';
148
+ var keywordsElm = jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'keywords');
149
+ var keywordsLengthError = jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'keywords-length-warning');
150
+ if (keywordsElm.val() !== '') {
151
+ var len = wpmseoMetaboxL10n.wpmseo_meta_keywords_length - keywordsElm.val().length;
152
+ metaseo_status_length(len,'#' + wpmseoMetaboxL10n.field_prefix + 'keywords-length');
153
+ jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'keywords-length').html(len);
154
+ } else {
155
+ jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'keywords-length').addClass('length-true').removeClass('length-wrong').html('<span class="good">'+ wpmseoMetaboxL10n.wpmseo_meta_keywords_length +'</span>');
156
+ }
157
+ }
158
+
159
function msSanitizeTitle(title) {
160
title = msClean(title);
161
return title;
241
}
242
243
function msUpdateSnippet() {
244
+ if(typeof wpmseoMetaboxL10n.show_keywords !="undefined" && wpmseoMetaboxL10n.show_keywords == 1){
245
+ msUpdateKeywords();
246
+ }
247
msUpdateURL();
248
msUpdateTitle();
249
msUpdateDesc();
275
276
jQuery(document).ready(function ($) {
277
// add countdown for title and description
278
+ // var titleval = jQuery.trim(msClean(jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'title').val()));
279
+ // var descval = jQuery.trim(msClean(jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'desc').val()));
280
+ // if (titleval === '') {
281
+ // jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'title-length').html('<span class="good">'+ wpmseoMetaboxL10n.wpmseo_meta_title_length +'</span>');
282
+ // }else{
283
+ // metaseo_status_length(titleval.length,'#' + wpmseoMetaboxL10n.field_prefix + 'title-length');
284
+ // }
285
+ // if (descval === '') {
286
+ // jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'desc-length').html('<span class="good">'+ wpmseoMetaboxL10n.wpmseo_meta_desc_length +'</span>');
287
+ // }else{
288
+ // metaseo_status_length(descval.length,'#' + wpmseoMetaboxL10n.field_prefix + 'desc-length');
289
+ // }
290
+ //
291
var replacedVars = []; // jshint ignore:line
292
293
if (jQuery('.wpmseo-metabox-tabs-div').length > 0) {
330
jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'title').keyup(function () {
331
msUpdateTitle();
332
});
333
+
334
+ jQuery('#' + wpmseoMetaboxL10n.field_prefix + 'keywords').keyup(function () {
335
+ msUpdateKeywords();
336
+ });
337
338
jQuery('#title').keyup(function () {
339
msUpdateTitle();
languages/wpms-en_US.mo CHANGED
Binary file
languages/wpms-en_US.po CHANGED
@@ -9,66 +9,66 @@ msgstr ""
9
"MIME-Version: 1.0\n"
10
"Content-Type: text/plain; charset=UTF-8\n"
11
"Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.8.5\n"
13
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
14
15
msgid "Twitter username (without @)"
16
msgstr "Twitter username (without @)"
17
18
msgid ""
19
- "2 plugins that are doing almost the same thing detected: disable AIO SEO or "
20
- "Yoast SEO to avoid conflict."
21
msgstr ""
22
- "2 plugins that are doing almost the same thing detected: disable AIO SEO or "
23
- "Yoast SEO to avoid conflict."
24
25
msgid ""
26
- "We have found that you’re using All In One SEO plugin, WP Meta SEO can "
27
- "import the meta from this plugin, %s"
28
msgstr ""
29
- "We have found that you’re using All In One SEO plugin, WP Meta SEO can "
30
- "import the meta from this plugin, %s"
31
32
msgid ""
33
- "We have found that you’re using Yoast SEO plugin, WP Meta SEO can import the "
34
- "meta from this plugin, %s"
35
msgstr ""
36
- "We have found that you’re using Yoast SEO plugin, WP Meta SEO can import the "
37
- "meta from this plugin, %s"
38
39
msgid "Results preview"
40
msgstr "Results preview"
41
42
msgid ""
43
- "This is a preview of what your content will looks like in search engine "
44
- "results: title, description and URL"
45
msgstr ""
46
- "This is a preview of what your content will looks like in search engine "
47
- "results: title, description and URL"
48
49
msgid "Search engine title"
50
msgstr "Search engine title"
51
52
msgid ""
53
- "This is the title of your content that may be displayed in search engine "
54
- "results (meta title). By default it’s the content title (page title, post "
55
- "title…). 69 characters max allowed."
56
msgstr ""
57
- "This is the title of your content that may be displayed in search engine "
58
- "results (meta title). By default it’s the content title (page title, post "
59
- "title…). 69 characters max allowed."
60
61
msgid "Search engine description"
62
msgstr "Search engine description"
63
64
msgid ""
65
- "The description of your content that may be displayed in search engine "
66
- "results aka meta description. By default search engine take an excerpt from "
67
- "your content (depending on the search query). 156 characters max allowed."
68
msgstr ""
69
- "The description of your content that may be displayed in search engine "
70
- "results aka meta description. By default search engine take an excerpt from "
71
- "your content (depending on the search query). 156 characters max allowed."
72
73
msgid "Facebook Title"
74
msgstr "Facebook Title"
@@ -212,11 +212,9 @@ msgid "Filter"
212
msgstr "Filter"
213
214
msgid ""
215
- "We didn't find any image which needed to be updated regarding meta "
216
- "information"
217
msgstr ""
218
- "We didn't find any image which needed to be updated regarding meta "
219
- "information"
220
221
msgid "This image has still not been inserted in any post!"
222
msgstr "This image has still not been inserted in any post!"
@@ -291,8 +289,8 @@ msgid ""
291
"This is a preview of what this content might looks like in Google's search "
292
"results."
293
msgstr ""
294
- "Prévisualisation de la manière dont le contenu sera affiché dans les "
295
- "résultats de recherche"
296
297
msgid "Snippet Preview %s"
298
msgstr "Snippet Preview %s"
@@ -429,8 +427,7 @@ msgstr "More information about WP Meta SEO"
429
msgid "Other plugins from JoomUnited"
430
msgstr "Other plugins from JoomUnited"
431
432
- msgid ""
433
- "Check if a word of this content title is also in a title heading (h1, h2...)"
434
msgstr ""
435
"Check if a word of this content title is also in a title heading (h1, h2...)"
436
@@ -447,65 +444,59 @@ msgid "Is the meta description of this page filled?"
447
msgstr "Is the meta description of this page filled?"
448
449
msgid ""
450
- "Check for image HTML resizing in content (usually image resized using "
451
- "handles)"
452
msgstr ""
453
- "Check for image HTML resizing in content (usually image resized using "
454
- "handles)"
455
456
msgid "Check for image Alt text and title"
457
msgstr "Check for image Alt text and title"
458
459
msgid ""
460
- "It's better using a permalink structure that is adding in your URL the "
461
- "category name and content title. This parameter can be changed in Settings > "
462
- "Permalinks WordPress menu. Tag recommended is %category%/%postname%"
463
msgstr ""
464
- "It's better using a permalink structure that is adding in your URL the "
465
- "category name and content title. This parameter can be changed in Settings > "
466
- "Permalinks WordPress menu. Tag recommended is %category%/%postname%"
467
468
msgid ""
469
- "Meta titles are displayed in search engine results as a page title. It's a "
470
- "good thing for SEO to have some custom and attractive ones. Be sure to fill "
471
- "at least the met information on your most popular pages"
472
msgstr ""
473
- "Meta titles are displayed in search engine results as a page title. It's a "
474
- "good thing for SEO to have some custom and attractive ones. Be sure to fill "
475
- "at least the met information on your most popular pages"
476
477
msgid ""
478
- "Meta descriptions are displayed in search engine results as a page "
479
- "description. It's a good thing for SEO to have some custom and attractive "
480
- "ones. Be sure to fill at least the meta information on your most popular "
481
- "pages."
482
msgstr ""
483
- "Meta descriptions are displayed in search engine results as a page "
484
- "description. It's a good thing for SEO to have some custom and attractive "
485
- "ones. Be sure to fill at least the meta information on your most popular "
486
- "pages."
487
488
msgid ""
489
- "Display image at its natural size, do not use HTML resize. It happens "
490
- "usually when you use handles to resize an image. You have a bulk edition "
491
- "tool to fix that."
492
msgstr ""
493
- "Display image at its natural size, do not use HTML resize. It happens "
494
- "usually when you use handles to resize an image. You have a bulk edition "
495
- "tool to fix that."
496
497
msgid ""
498
- "We recommend to use both alt text and image title. The main advantage is "
499
- "that it helps search engines discover your images and display them in image "
500
- "search results. Plus, these tags improve the accessibility of your site and "
501
- "give more information about your images. Use our bulk image tool to quickly "
502
- "check and fix that."
503
msgstr ""
504
- "We recommend to use both alt text and image title. The main advantage is "
505
- "that it helps search engines discover your images and display them in image "
506
- "search results. Plus, these tags improve the accessibility of your site and "
507
- "give more information about your images. Use our bulk image tool to quickly "
508
- "check and fix that."
509
510
msgid ""
511
"It is highly recommended to update or add new content on your website quite "
@@ -561,11 +552,11 @@ msgstr ""
561
"deactivate AIOSEO or Yoast in order to work more clearly!"
562
563
msgid ""
564
- "We have found that you’re using All In One Pack Plugin, WP Meta SEO can "
565
- "import the meta from this plugin, %s"
566
msgstr ""
567
- "We have found that you’re using All In One Pack Plugin, WP Meta SEO can "
568
- "import the meta from this plugin, %s"
569
570
msgid "Name is existing"
571
msgstr "Name is existing"
@@ -589,11 +580,9 @@ msgid "The post has been deleted before, please check again!"
589
msgstr "The post has been deleted before, please check again!"
590
591
msgid ""
592
- " This is a rendering of what this post might look like in Google's search "
593
- "results."
594
msgstr ""
595
- " This is a rendering of what this post might look like in Google's search "
596
- "results."
597
598
msgid "This post is not existed or deleted, please choose one another!"
599
msgstr "This post is not existed or deleted, please choose one another!"
@@ -609,3 +598,18 @@ msgstr "WP Meta SEO - Page optimization"
609
610
msgid "Meta title was saved"
611
msgstr "Meta title was saved"
9
"MIME-Version: 1.0\n"
10
"Content-Type: text/plain; charset=UTF-8\n"
11
"Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.7.4\n"
13
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
14
15
msgid "Twitter username (without @)"
16
msgstr "Twitter username (without @)"
17
18
msgid ""
19
+ "2 plugins that are doing almost the same thing detected: disable AIO SEO or Yoast "
20
+ "SEO to avoid conflict."
21
msgstr ""
22
+ "2 plugins that are doing almost the same thing detected: disable AIO SEO or Yoast "
23
+ "SEO to avoid conflict."
24
25
msgid ""
26
+ "We have found that you’re using All In One SEO plugin, WP Meta SEO can import the "
27
+ "meta from this plugin, %s"
28
msgstr ""
29
+ "We have found that you’re using All In One SEO plugin, WP Meta SEO can import the "
30
+ "meta from this plugin, %s"
31
32
msgid ""
33
+ "We have found that you’re using Yoast SEO plugin, WP Meta SEO can import the meta "
34
+ "from this plugin, %s"
35
msgstr ""
36
+ "We have found that you’re using Yoast SEO plugin, WP Meta SEO can import the meta "
37
+ "from this plugin, %s"
38
39
msgid "Results preview"
40
msgstr "Results preview"
41
42
msgid ""
43
+ "This is a preview of what your content will looks like in search engine results: "
44
+ "title, description and URL"
45
msgstr ""
46
+ "This is a preview of what your content will looks like in search engine results: "
47
+ "title, description and URL"
48
49
msgid "Search engine title"
50
msgstr "Search engine title"
51
52
msgid ""
53
+ "This is the title of your content that may be displayed in search engine results "
54
+ "(meta title). By default it’s the content title (page title, post title…). 69 "
55
+ "characters max allowed."
56
msgstr ""
57
+ "This is the title of your content that may be displayed in search engine results "
58
+ "(meta title). By default it’s the content title (page title, post title…). 69 "
59
+ "characters max allowed."
60
61
msgid "Search engine description"
62
msgstr "Search engine description"
63
64
msgid ""
65
+ "The description of your content that may be displayed in search engine results "
66
+ "aka meta description. By default search engine take an excerpt from your content "
67
+ "(depending on the search query). 156 characters max allowed."
68
msgstr ""
69
+ "The description of your content that may be displayed in search engine results "
70
+ "aka meta description. By default search engine take an excerpt from your content "
71
+ "(depending on the search query). 156 characters max allowed."
72
73
msgid "Facebook Title"
74
msgstr "Facebook Title"
212
msgstr "Filter"
213
214
msgid ""
215
+ "We didn't find any image which needed to be updated regarding meta information"
216
msgstr ""
217
+ "We didn't find any image which needed to be updated regarding meta information"
218
219
msgid "This image has still not been inserted in any post!"
220
msgstr "This image has still not been inserted in any post!"
289
"This is a preview of what this content might looks like in Google's search "
290
"results."
291
msgstr ""
292
+ "Prévisualisation de la manière dont le contenu sera affiché dans les résultats de "
293
+ "recherche"
294
295
msgid "Snippet Preview %s"
296
msgstr "Snippet Preview %s"
427
msgid "Other plugins from JoomUnited"
428
msgstr "Other plugins from JoomUnited"
429
430
+ msgid "Check if a word of this content title is also in a title heading (h1, h2...)"
431
msgstr ""
432
"Check if a word of this content title is also in a title heading (h1, h2...)"
433
444
msgstr "Is the meta description of this page filled?"
445
446
msgid ""
447
+ "Check for image HTML resizing in content (usually image resized using handles)"
448
msgstr ""
449
+ "Check for image HTML resizing in content (usually image resized using handles)"
450
451
msgid "Check for image Alt text and title"
452
msgstr "Check for image Alt text and title"
453
454
msgid ""
455
+ "It's better using a permalink structure that is adding in your URL the category "
456
+ "name and content title. This parameter can be changed in Settings > Permalinks "
457
+ "WordPress menu. Tag recommended is %category%/%postname%"
458
msgstr ""
459
+ "It's better using a permalink structure that is adding in your URL the category "
460
+ "name and content title. This parameter can be changed in Settings > Permalinks "
461
+ "WordPress menu. Tag recommended is %category%/%postname%"
462
463
msgid ""
464
+ "Meta titles are displayed in search engine results as a page title. It's a good "
465
+ "thing for SEO to have some custom and attractive ones. Be sure to fill at least "
466
+ "the met information on your most popular pages"
467
msgstr ""
468
+ "Meta titles are displayed in search engine results as a page title. It's a good "
469
+ "thing for SEO to have some custom and attractive ones. Be sure to fill at least "
470
+ "the met information on your most popular pages"
471
472
msgid ""
473
+ "Meta descriptions are displayed in search engine results as a page description. "
474
+ "It's a good thing for SEO to have some custom and attractive ones. Be sure to "
475
+ "fill at least the meta information on your most popular pages."
476
msgstr ""
477
+ "Meta descriptions are displayed in search engine results as a page description. "
478
+ "It's a good thing for SEO to have some custom and attractive ones. Be sure to "
479
+ "fill at least the meta information on your most popular pages."
480
481
msgid ""
482
+ "Display image at its natural size, do not use HTML resize. It happens usually "
483
+ "when you use handles to resize an image. You have a bulk edition tool to fix that."
484
msgstr ""
485
+ "Display image at its natural size, do not use HTML resize. It happens usually "
486
+ "when you use handles to resize an image. You have a bulk edition tool to fix that."
487
488
msgid ""
489
+ "We recommend to use both alt text and image title. The main advantage is that it "
490
+ "helps search engines discover your images and display them in image search "
491
+ "results. Plus, these tags improve the accessibility of your site and give more "
492
+ "information about your images. Use our bulk image tool to quickly check and fix "
493
+ "that."
494
msgstr ""
495
+ "We recommend to use both alt text and image title. The main advantage is that it "
496
+ "helps search engines discover your images and display them in image search "
497
+ "results. Plus, these tags improve the accessibility of your site and give more "
498
+ "information about your images. Use our bulk image tool to quickly check and fix "
499
+ "that."
500
501
msgid ""
502
"It is highly recommended to update or add new content on your website quite "
552
"deactivate AIOSEO or Yoast in order to work more clearly!"
553
554
msgid ""
555
+ "We have found that you’re using All In One Pack Plugin, WP Meta SEO can import "
556
+ "the meta from this plugin, %s"
557
msgstr ""
558
+ "We have found that you’re using All In One Pack Plugin, WP Meta SEO can import "
559
+ "the meta from this plugin, %s"
560
561
msgid "Name is existing"
562
msgstr "Name is existing"
580
msgstr "The post has been deleted before, please check again!"
581
582
msgid ""
583
+ " This is a rendering of what this post might look like in Google's search results."
584
msgstr ""
585
+ " This is a rendering of what this post might look like in Google's search results."
586
587
msgid "This post is not existed or deleted, please choose one another!"
588
msgstr "This post is not existed or deleted, please choose one another!"
598
599
msgid "Meta title was saved"
600
msgstr "Meta title was saved"
601
+
602
+ msgid "Meta keywords was saved"
603
+ msgstr "Meta keywords was saved"
604
+
605
+ msgid "Force SEO validation"
606
+ msgstr "Force SEO validation"
607
+
608
+ msgid "Allow user to force on page SEO criteria validation by clicking on the icon"
609
+ msgstr "Allow user to force on page SEO criteria validation by clicking on the icon"
610
+
611
+ msgid "Meta keywords"
612
+ msgstr "Meta keywords"
613
+
614
+ msgid "Active meta keywords"
615
+ msgstr "Active meta keywords"
languages/wpms-fr_FR.mo CHANGED
Binary file
languages/wpms-fr_FR.po CHANGED
@@ -18,54 +18,54 @@ msgid ""
18
"2 plugins that are doing almost the same thing detected: disable AIO SEO or "
19
"Yoast SEO to avoid conflict."
20
msgstr ""
21
- "2 plugins sont présent et font tous les 2 du SEO: merci de désactiver AIO "
22
- "SEO ou Yoast SEO pour éviter les conflits"
23
24
msgid ""
25
- "We have found that you’re using All In One SEO plugin, WP Meta SEO can "
26
- "import the meta from this plugin, %s"
27
msgstr ""
28
- "Vous utilisez le plugin All in one SEO, nous pouvons importer les meta de "
29
- "ce plugin pour vous, %s"
30
31
msgid ""
32
"We have found that you’re using Yoast SEO plugin, WP Meta SEO can import the "
33
"meta from this plugin, %s"
34
msgstr ""
35
- "Vous utilisez le plugin Yoast SEO, nous pouvons importer les meta de ce "
36
- "plugin pour vous, %s"
37
38
msgid "Results preview"
39
msgstr "Prévisualisation"
40
41
msgid ""
42
- "This is a preview of what your content will looks like in search engine "
43
- "results: title, description and URL"
44
msgstr "Prévisualisation des résultats de recherche, titre, description et URL"
45
46
msgid "Search engine title"
47
msgstr "Titre"
48
49
msgid ""
50
- "This is the title of your content that may be displayed in search engine "
51
- "results (meta title). By default it’s the content title (page title, post "
52
- "title…). 69 characters max allowed."
53
msgstr ""
54
"Ceci est le titre de votre contenu qui pourra être reprit par les moteurs de "
55
- "recherche (meta title). Par défaut il s'agit du titre du contenu. 69 "
56
- "caractères max"
57
58
msgid "Search engine description"
59
msgstr "Description"
60
61
msgid ""
62
- "The description of your content that may be displayed in search engine "
63
- "results aka meta description. By default search engine take an excerpt from "
64
- "your content (depending on the search query). 156 characters max allowed."
65
msgstr ""
66
- "Ceci est la description de votre contenu qui pourra être reprit par les "
67
- "moteurs de recherche (meta description). Par défaut il s'agit d'un extrait "
68
- "de votre contenu.156 caractères max"
69
70
msgid "Facebook Title"
71
msgstr "Titre facebook"
@@ -90,8 +90,8 @@ msgid ""
90
"Custom image to display when sharing this content on facebook, content "
91
"description override, recommended size is 1200px x 630px"
92
msgstr ""
93
- "Image customisé lors du partage de ce contenu sur Facebook, taille "
94
- "recommandée 1200px x 630px"
95
96
msgid "Twitter Title"
97
msgstr "Titre Twitter"
@@ -116,8 +116,8 @@ msgid ""
116
"Custom image to display when sharing this content on facebook, content "
117
"description override, recommended min size 440px X 220px"
118
msgstr ""
119
- "Image customisé lors du partage de ce contenu sur Twitter, taille "
120
- "recommandée 440px x 220px"
121
122
msgid "Use Image"
123
msgstr "Utiliser image"
@@ -201,8 +201,7 @@ msgid "Filter"
201
msgstr "Filtrer"
202
203
msgid ""
204
- "We didn't find any image which needed to be updated regarding meta "
205
- "information"
206
msgstr ""
207
"Nous n'avons trouvé aucune image qui ont besoin d'être optimisé pour le SEO"
208
@@ -253,8 +252,7 @@ msgstr "Le contenu est vide, merci de revérifier"
253
254
msgid "We can't get traffic rank from Alexa for this website"
255
msgstr ""
256
- "Nous n'avons pas assez d'info (de trafic) Alexa pour avoir le \"Traffic Rank"
257
- "\""
258
259
msgid "Meta Title"
260
msgstr "Meta titre"
@@ -281,8 +279,8 @@ msgid ""
281
"This is a preview of what this content might looks like in Google's search "
282
"results."
283
msgstr ""
284
- "Prévisualisation de ce à quoi votre contenu peut ressembler dans les "
285
- "résultats de recherche"
286
287
msgid "Snippet Preview %s"
288
msgstr "Prévisualisation %s"
@@ -331,8 +329,7 @@ msgstr "Bien joué ! Image remise à la bonne taille !"
331
332
msgid "Oops! An error occured when updating the post, please try again"
333
msgstr ""
334
- "Oups! Une erreur est survenue durant la mise à jour du post, merci de "
335
- "réessayer"
336
337
msgid "Resize image"
338
msgstr "Redimensionner image"
@@ -424,12 +421,11 @@ msgstr "Autres plugin de JoomUnited"
424
msgid ""
425
"Check if a word of this content title is also in a title heading (h1, h2...)"
426
msgstr ""
427
- "Vérifie si un mot du titre de page est aussi présent dans un titre du "
428
- "contenu (h1, h2...)"
429
430
msgid "Check if a word of this content title is also in the text"
431
- msgstr ""
432
- "Vérifie si un mot du titre de page est aussi présent dans le contenu texte"
433
434
msgid "Does the page title match with the permalink (URL structure)"
435
msgstr "Vérifie si le titre de page correspond à l'URL (permalien)"
@@ -441,71 +437,69 @@ msgid "Is the meta description of this page filled?"
441
msgstr "Est-ce que les meta description sont complétés?"
442
443
msgid ""
444
- "Check for image HTML resizing in content (usually image resized using "
445
- "handles)"
446
msgstr ""
447
- "Vérifie si des images sont redimensionnées en HTML (habituellement en "
448
- "utilisant les poignées)"
449
450
msgid "Check for image Alt text and title"
451
msgstr "Vérifie si les textes alt and titre d'images sont remplis"
452
453
msgid ""
454
- "It's better using a permalink structure that is adding in your URL the "
455
- "category name and content title. This parameter can be changed in Settings > "
456
- "Permalinks WordPress menu. Tag recommended is %category%/%postname%"
457
msgstr ""
458
- "Il est préférable d'utiliser des URL dont le nom de la catégorie et le titre "
459
- "de page sont en clair. Ce paramètre peut être modifié depuis le menu "
460
- "Paramètres > Permaliens. Le tag recommandé est %category%/%postname%"
461
462
msgid ""
463
- "Meta titles are displayed in search engine results as a page title. It's a "
464
- "good thing for SEO to have some custom and attractive ones. Be sure to fill "
465
- "at least the met information on your most popular pages"
466
msgstr ""
467
"Les titres Meta sont affichés dans les résultats de recherche comme titre de "
468
- "page. C'est une bonne chose de mettre des titres accrocheurs pour avoir un "
469
- "plus grand nombre de clics."
470
471
msgid ""
472
- "Meta descriptions are displayed in search engine results as a page "
473
- "description. It's a good thing for SEO to have some custom and attractive "
474
- "ones. Be sure to fill at least the meta information on your most popular "
475
- "pages."
476
msgstr ""
477
"Les Meta descroption sont affichés dans les résultats de recherche comme "
478
"description de page. C'est une bonne chose de mettre des descriptions "
479
"accrocheuses pour avoir un plus grand nombre de clics."
480
481
msgid ""
482
- "Display image at its natural size, do not use HTML resize. It happens "
483
- "usually when you use handles to resize an image. You have a bulk edition "
484
- "tool to fix that."
485
msgstr ""
486
- "Utilisez des images à leur taille naturelle, pas en les redimensionnant en "
487
- "HTML (avec les poignées). Avec WP Meta SEO, vous disposez d'un outil pour "
488
- "corriger cela"
489
490
msgid ""
491
- "We recommend to use both alt text and image title. The main advantage is "
492
- "that it helps search engines discover your images and display them in image "
493
- "search results. Plus, these tags improve the accessibility of your site and "
494
- "give more information about your images. Use our bulk image tool to quickly "
495
- "check and fix that."
496
msgstr ""
497
"Nous vous recommandons de compléter les le textes alternatif et les titres "
498
- "d'images. L'avantage c'est que cela permet aux moteur de recherche d'indexer "
499
- "vos images et apporte plus de contenu à vos pages. utilisez l'outil "
500
- "d'édition par lot pour aller plus vite! "
501
502
msgid ""
503
"It is highly recommended to update or add new content on your website quite "
504
"frequently. At least 3 updated or new content per month would be great :)"
505
msgstr ""
506
- "Il est fortement recommandé de mettre à jour ou d'ajouter du contenu sur "
507
- "votre site pour être mieux référencé. Au moins 3 mises à jour ou ajout de "
508
- "contenu par mois serait parfait :)"
509
510
msgid "Social networks meta"
511
msgstr "Meta réseaux sociaux"
@@ -554,11 +548,11 @@ msgstr ""
554
"essayez de désactiver AIO SEO ou Yoast SEO"
555
556
msgid ""
557
- "We have found that you’re using All In One Pack Plugin, WP Meta SEO can "
558
- "import the meta from this plugin, %s"
559
msgstr ""
560
- "Vous utilisez actuellement All In One SEO Plugin, WP Meta SEO put importer "
561
- "les données de ce plugin pour vous, %s"
562
563
msgid "Name is existing"
564
msgstr "Ce nom existe déjà"
@@ -601,3 +595,18 @@ msgstr "WP Meta SEO - Page optimisation"
601
602
msgid "Meta title was saved"
603
msgstr "Metz"
18
"2 plugins that are doing almost the same thing detected: disable AIO SEO or "
19
"Yoast SEO to avoid conflict."
20
msgstr ""
21
+ "2 plugins sont présent et font tous les 2 du SEO: merci de désactiver AIO SEO ou "
22
+ "Yoast SEO pour éviter les conflits"
23
24
msgid ""
25
+ "We have found that you’re using All In One SEO plugin, WP Meta SEO can import "
26
+ "the meta from this plugin, %s"
27
msgstr ""
28
+ "Vous utilisez le plugin All in one SEO, nous pouvons importer les meta de ce "
29
+ "plugin pour vous, %s"
30
31
msgid ""
32
"We have found that you’re using Yoast SEO plugin, WP Meta SEO can import the "
33
"meta from this plugin, %s"
34
msgstr ""
35
+ "Vous utilisez le plugin Yoast SEO, nous pouvons importer les meta de ce plugin "
36
+ "pour vous, %s"
37
38
msgid "Results preview"
39
msgstr "Prévisualisation"
40
41
msgid ""
42
+ "This is a preview of what your content will looks like in search engine results: "
43
+ "title, description and URL"
44
msgstr "Prévisualisation des résultats de recherche, titre, description et URL"
45
46
msgid "Search engine title"
47
msgstr "Titre"
48
49
msgid ""
50
+ "This is the title of your content that may be displayed in search engine results "
51
+ "(meta title). By default it’s the content title (page title, post title…). 69 "
52
+ "characters max allowed."
53
msgstr ""
54
"Ceci est le titre de votre contenu qui pourra être reprit par les moteurs de "
55
+ "recherche (meta title). Par défaut il s'agit du titre du contenu. 69 caractères "
56
+ "max"
57
58
msgid "Search engine description"
59
msgstr "Description"
60
61
msgid ""
62
+ "The description of your content that may be displayed in search engine results "
63
+ "aka meta description. By default search engine take an excerpt from your content "
64
+ "(depending on the search query). 156 characters max allowed."
65
msgstr ""
66
+ "Ceci est la description de votre contenu qui pourra être reprit par les moteurs "
67
+ "de recherche (meta description). Par défaut il s'agit d'un extrait de votre "
68
+ "contenu.156 caractères max"
69
70
msgid "Facebook Title"
71
msgstr "Titre facebook"
90
"Custom image to display when sharing this content on facebook, content "
91
"description override, recommended size is 1200px x 630px"
92
msgstr ""
93
+ "Image customisé lors du partage de ce contenu sur Facebook, taille recommandée "
94
+ "1200px x 630px"
95
96
msgid "Twitter Title"
97
msgstr "Titre Twitter"
116
"Custom image to display when sharing this content on facebook, content "
117
"description override, recommended min size 440px X 220px"
118
msgstr ""
119
+ "Image customisé lors du partage de ce contenu sur Twitter, taille recommandée "
120
+ "440px x 220px"
121
122
msgid "Use Image"
123
msgstr "Utiliser image"
201
msgstr "Filtrer"
202
203
msgid ""
204
+ "We didn't find any image which needed to be updated regarding meta information"
205
msgstr ""
206
"Nous n'avons trouvé aucune image qui ont besoin d'être optimisé pour le SEO"
207
252
253
msgid "We can't get traffic rank from Alexa for this website"
254
msgstr ""
255
+ "Nous n'avons pas assez d'info (de trafic) Alexa pour avoir le \"Traffic Rank\""
256
257
msgid "Meta Title"
258
msgstr "Meta titre"
279
"This is a preview of what this content might looks like in Google's search "
280
"results."
281
msgstr ""
282
+ "Prévisualisation de ce à quoi votre contenu peut ressembler dans les résultats "
283
+ "de recherche"
284
285
msgid "Snippet Preview %s"
286
msgstr "Prévisualisation %s"
329
330
msgid "Oops! An error occured when updating the post, please try again"
331
msgstr ""
332
+ "Oups! Une erreur est survenue durant la mise à jour du post, merci de réessayer"
333
334
msgid "Resize image"
335
msgstr "Redimensionner image"
421
msgid ""
422
"Check if a word of this content title is also in a title heading (h1, h2...)"
423
msgstr ""
424
+ "Vérifie si un mot du titre de page est aussi présent dans un titre du contenu "
425
+ "(h1, h2...)"
426
427
msgid "Check if a word of this content title is also in the text"
428
+ msgstr "Vérifie si un mot du titre de page est aussi présent dans le contenu texte"
429
430
msgid "Does the page title match with the permalink (URL structure)"
431
msgstr "Vérifie si le titre de page correspond à l'URL (permalien)"
437
msgstr "Est-ce que les meta description sont complétés?"
438
439
msgid ""
440
+ "Check for image HTML resizing in content (usually image resized using handles)"
441
msgstr ""
442
+ "Vérifie si des images sont redimensionnées en HTML (habituellement en utilisant "
443
+ "les poignées)"
444
445
msgid "Check for image Alt text and title"
446
msgstr "Vérifie si les textes alt and titre d'images sont remplis"
447
448
msgid ""
449
+ "It's better using a permalink structure that is adding in your URL the category "
450
+ "name and content title. This parameter can be changed in Settings > Permalinks "
451
+ "WordPress menu. Tag recommended is %category%/%postname%"
452
msgstr ""
453
+ "Il est préférable d'utiliser des URL dont le nom de la catégorie et le titre de "
454
+ "page sont en clair. Ce paramètre peut être modifié depuis le menu Paramètres > "
455
+ "Permaliens. Le tag recommandé est %category%/%postname%"
456
457
msgid ""
458
+ "Meta titles are displayed in search engine results as a page title. It's a good "
459
+ "thing for SEO to have some custom and attractive ones. Be sure to fill at least "
460
+ "the met information on your most popular pages"
461
msgstr ""
462
"Les titres Meta sont affichés dans les résultats de recherche comme titre de "
463
+ "page. C'est une bonne chose de mettre des titres accrocheurs pour avoir un plus "
464
+ "grand nombre de clics."
465
466
msgid ""
467
+ "Meta descriptions are displayed in search engine results as a page description. "
468
+ "It's a good thing for SEO to have some custom and attractive ones. Be sure to "
469
+ "fill at least the meta information on your most popular pages."
470
msgstr ""
471
"Les Meta descroption sont affichés dans les résultats de recherche comme "
472
"description de page. C'est une bonne chose de mettre des descriptions "
473
"accrocheuses pour avoir un plus grand nombre de clics."
474
475
msgid ""
476
+ "Display image at its natural size, do not use HTML resize. It happens usually "
477
+ "when you use handles to resize an image. You have a bulk edition tool to fix "
478
+ "that."
479
msgstr ""
480
+ "Utilisez des images à leur taille naturelle, pas en les redimensionnant en HTML "
481
+ "(avec les poignées). Avec WP Meta SEO, vous disposez d'un outil pour corriger "
482
+ "cela"
483
484
msgid ""
485
+ "We recommend to use both alt text and image title. The main advantage is that it "
486
+ "helps search engines discover your images and display them in image search "
487
+ "results. Plus, these tags improve the accessibility of your site and give more "
488
+ "information about your images. Use our bulk image tool to quickly check and fix "
489
+ "that."
490
msgstr ""
491
"Nous vous recommandons de compléter les le textes alternatif et les titres "
492
+ "d'images. L'avantage c'est que cela permet aux moteur de recherche d'indexer vos "
493
+ "images et apporte plus de contenu à vos pages. utilisez l'outil d'édition par "
494
+ "lot pour aller plus vite! "
495
496
msgid ""
497
"It is highly recommended to update or add new content on your website quite "
498
"frequently. At least 3 updated or new content per month would be great :)"
499
msgstr ""
500
+ "Il est fortement recommandé de mettre à jour ou d'ajouter du contenu sur votre "
501
+ "site pour être mieux référencé. Au moins 3 mises à jour ou ajout de contenu par "
502
+ "mois serait parfait :)"
503
504
msgid "Social networks meta"
505
msgstr "Meta réseaux sociaux"
548
"essayez de désactiver AIO SEO ou Yoast SEO"
549
550
msgid ""
551
+ "We have found that you’re using All In One Pack Plugin, WP Meta SEO can import "
552
+ "the meta from this plugin, %s"
553
msgstr ""
554
+ "Vous utilisez actuellement All In One SEO Plugin, WP Meta SEO put importer les "
555
+ "données de ce plugin pour vous, %s"
556
557
msgid "Name is existing"
558
msgstr "Ce nom existe déjà"
595
596
msgid "Meta title was saved"
597
msgstr "Metz"
598
+
599
+ msgid "Meta keywords was saved"
600
+ msgstr "Mot clés enregistrés"
601
+
602
+ msgid "Force SEO validation"
603
+ msgstr "Forcer validation SEO"
604
+
605
+ msgid "Allow user to force on page SEO criteria validation by clicking on the icon"
606
+ msgstr "Autoriser la validation forcée des critères SEO dans l'analyse des pages"
607
+
608
+ msgid "Meta keywords"
609
+ msgstr "Mot clés"
610
+
611
+ msgid "Active meta keywords"
612
+ msgstr "Activer les mot clés meta"
languages/wpms.pot CHANGED
@@ -494,4 +494,19 @@ msgid "Meta title was saved"
494
msgstr ""
495
496
msgid "Content Meta"
497
msgstr ""
494
msgstr ""
495
496
msgid "Content Meta"
497
+ msgstr ""
498
+
499
+ msgid "Meta keywords was saved"
500
+ msgstr ""
501
+
502
+ msgid "Force SEO validation"
503
+ msgstr ""
504
+
505
+ msgid "Allow user to force on page SEO criteria validation by clicking on the icon"
506
+ msgstr ""
507
+
508
+ msgid "Meta keywords"
509
+ msgstr ""
510
+
511
+ msgid "Active meta keywords"
512
msgstr ""
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: JoomUnited
3
Tags: google, webmaster tools, keywords, meta, meta description, meta keywords, meta title, robots meta, search engine optimization, seo, wordpress seo, yahoo, image optimization, image resize, custom post seo
4
Requires at least: 4.0
5
Tested up to: 4.3.1
6
- Stable tag: 1.5.1
7
License: GPLv2 or later
8
License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
@@ -26,9 +26,10 @@ WP Meta SEO gives you the control over all your meta content and images. Bulk SE
26
It was annoying to edit meta on an existing website, open each post, page and almost nobody was doing it. Especially if you need to edit content + image meta.
27
WP Meta SEO is going to list all posts, pages, custom post types and all images. Type your meta content and fix image size and everything is AJAX saved.
28
Plus, a bulk copy feature is available to save tons of time in your SEO optimization process:
29
- * Content title to All meta titles
30
* Image name to Image title
31
* Image name to Image alt
32
33
A bunch of people reduce the size of the pictures in content using handles that results to a HTML resizing. And that's something wrong for SEO, for page loading time and for image quality.
34
WP Meta SEO also include this feature in the bulk edition view, you are notified and you can now optimize the size of your images in articles, click fix and it's replaced in your content (no broken links).
@@ -40,6 +41,7 @@ WP Meta SEO also include this feature in the bulk edition view, you are notified
40
* Search engine snippet preview
41
* AJAX SEO analysis refresh
42
* 7 criteria of SEO analysis
43
* Check: Page title word in content heading
44
* Check: Page title word in content
45
* Check: Page URL matches with page title
@@ -124,7 +126,7 @@ So you'll be able to define SEO info for each instance.
124
Nope :) All your SEO content is properly stored in the database and automatic SEO checks are also cached or run every 72 hours (unless you force the process)
125
126
= Is WP Meta SEO compatible with 3rd party plugins? =
127
- YES it is :) All plugins and themes that are using custom post type are compatibler and you'll be able to setup SEO for those content. Plus Yoast SEO and All in one SEO content can also be imported.
128
129
= Can I translate WP Meta SEO? =
130
You're welcome! in the WP Meta SEO package you got English and French included as standard .po/.mo files. Use the .pot file also available in the /language folder to create your own.
@@ -146,6 +148,13 @@ WP Meta SEO is using HTML5 features so to be sure run the latest version of Chro
146
= Can I help with WP Meta SEO translation? =
147
Yes! you can contact us on our forum. SEO as its own language and expression, we would be happy to add yours.
148
149
== Screenshots ==
150
151
1. Main dashboard of the plugin with SEO optimization check
@@ -159,6 +168,10 @@ Yes! you can contact us on our forum. SEO as its own language and expression, we
159
160
== Changelog ==
161
162
= 1.5.1 =
163
* Fix home page meta not working on some themes
164
* Fix break foreach when search title in SEO content (title in heading)
@@ -219,4 +232,4 @@ Yes! you can contact us on our forum. SEO as its own language and expression, we
219
== Upgrade Notice ==
220
221
Update through the automatic WordPress updater, all WP Meta SEO content will remain in place.
222
- You WON'T loose any SEO content: meta, alt, titles,...
3
Tags: google, webmaster tools, keywords, meta, meta description, meta keywords, meta title, robots meta, search engine optimization, seo, wordpress seo, yahoo, image optimization, image resize, custom post seo
4
Requires at least: 4.0
5
Tested up to: 4.3.1
6
+ Stable tag: 1.6.0
7
License: GPLv2 or later
8
License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
26
It was annoying to edit meta on an existing website, open each post, page and almost nobody was doing it. Especially if you need to edit content + image meta.
27
WP Meta SEO is going to list all posts, pages, custom post types and all images. Type your meta content and fix image size and everything is AJAX saved.
28
Plus, a bulk copy feature is available to save tons of time in your SEO optimization process:
29
+ * Content title to All meta titles (optional meta keywords)
30
* Image name to Image title
31
* Image name to Image alt
32
+ * Optional keyword edition
33
34
A bunch of people reduce the size of the pictures in content using handles that results to a HTML resizing. And that's something wrong for SEO, for page loading time and for image quality.
35
WP Meta SEO also include this feature in the bulk edition view, you are notified and you can now optimize the size of your images in articles, click fix and it's replaced in your content (no broken links).
41
* Search engine snippet preview
42
* AJAX SEO analysis refresh
43
* 7 criteria of SEO analysis
44
+ * Force SEO criteria validation
45
* Check: Page title word in content heading
46
* Check: Page title word in content
47
* Check: Page URL matches with page title
126
Nope :) All your SEO content is properly stored in the database and automatic SEO checks are also cached or run every 72 hours (unless you force the process)
127
128
= Is WP Meta SEO compatible with 3rd party plugins? =
129
+ YES it is :) All plugins and themes that are using custom post type are compatible and you'll be able to setup SEO for those content. Plus, Yoast SEO and All in one SEO content can also be imported.
130
131
= Can I translate WP Meta SEO? =
132
You're welcome! in the WP Meta SEO package you got English and French included as standard .po/.mo files. Use the .pot file also available in the /language folder to create your own.
148
= Can I help with WP Meta SEO translation? =
149
Yes! you can contact us on our forum. SEO as its own language and expression, we would be happy to add yours.
150
151
+ = Why including meta keywords edition as it's not a SEO rank criteria? =
152
+ Because it may help in some case for SEO, mainly for multilingual website, it help search engines to validate the page language. Some automatic SEO tool may use it too.
153
+
154
+ = Some criteria of the SEO on page analysis does not fit my content =
155
+ Yes it maybe the case when, for example, you are calling 3rd party plugins in content or using specific page layouts. You have a global option to force validation of SEO criteria.
156
+ This manual SEO validation on click on the reload analysis button.
157
+
158
== Screenshots ==
159
160
1. Main dashboard of the plugin with SEO optimization check
168
169
== Changelog ==
170
171
+ = 1.6.0 =
172
+ * Add meta keywords edition in bulk editor
173
+ * Add option to for SEO criteria validation
174
+
175
= 1.5.1 =
176
* Fix home page meta not working on some themes
177
* Fix break foreach when search title in SEO content (title in heading)
232
== Upgrade Notice ==
233
234
Update through the automatic WordPress updater, all WP Meta SEO content will remain in place.
235
+ You WON'T lose any SEO content: meta, alt, titles...
wp-meta-seo.php CHANGED
@@ -4,7 +4,7 @@
4
* Plugin Name: WP Meta SEO
5
* Plugin URI: http://www.joomunited.com/wordpress-products/wp-meta-seo
6
* Description: WP Meta SEO is a plugin for WordPress to fill meta for content, images and main SEO info in a single view.
7
- * Version: 1.5.1
8
* Author: JoomUnited
9
* Author URI: http://www.joomunited.com
10
* License: GPL2
@@ -45,7 +45,7 @@ if (!defined('URL'))
45
define('URL', get_site_url());
46
47
if (!defined('WPMSEO_VERSION'))
48
- define('WPMSEO_VERSION', '1.5.1');
49
50
if (!defined('WPMSEO_FILE'))
51
define('WPMSEO_FILE', __FILE__);
@@ -94,6 +94,15 @@ if (is_admin()) {
94
if($meta_title == '') $meta_title = $wp_query->post->post_title;
95
$meta_title_esc = esc_attr($meta_title);
96
97
// get meta description
98
$meta_description = get_post_meta($wp_query->post->ID, '_metaseo_metadesc', true);
99
if($meta_description == '') {
@@ -106,8 +115,6 @@ if (is_admin()) {
106
$mpage_on_front = get_option('page_on_front');
107
$mshow_on_front = get_option('show_on_front');
108
109
- $settings = get_option( '_metaseo_settings' );
110
-
111
// check homepage is a page
112
if(get_post_meta($wp_query->post->ID, '_metaseo_metatitle', true) == '' && is_front_page() ){
113
$meta_title_esc = esc_attr($settings['metaseo_title_home']);
@@ -126,8 +133,7 @@ if (is_admin()) {
126
$twitter_desc = get_post_meta($wp_query->post->ID, '_metaseo_metatwitter-desc', true);
127
$meta_twitter_desc = esc_attr($twitter_desc);
128
if($meta_twitter_desc == '') $meta_twitter_desc = $meta_description_esc;
129
-
130
-
131
$sitename = get_bloginfo('name');
132
$meta_twitter_site = get_user_meta($wp_query->post->post_author,'mtwitter',true);
133
$facebook_admin = get_user_meta($wp_query->post->post_author,'mfacebook',true);
@@ -218,7 +224,10 @@ if (is_admin()) {
218
'#<meta name="description" [^<>]+ ?>#i',
219
'<meta name="description" content="' . $meta_description_esc . '" />',
220
($meta_description_esc != '' ? true : false)),
221
-
222
'title' => array(
223
'#<meta name="title" [^<>]+ ?>#i',
224
'<meta name="title" content="' . $meta_title_esc . '" />',
@@ -232,10 +241,14 @@ if (is_admin()) {
232
($meta_title_esc != '' ? true : false));
233
}
234
235
if($meta_twitter_site == ''){
236
unset($patterns['twitter_site']);
237
}
238
-
239
if($meta_twitter_image == ''){
240
unset($patterns['twitter_image']);
241
}
@@ -270,6 +283,7 @@ if (is_admin()) {
270
"metaseo_showfacebook"=>"",
271
"metaseo_showtwitter"=>"",
272
"metaseo_twitter_card"=>"summary",
273
"metaseo_showtmetablock"=>1,
274
"metaseo_showsocial" => 1
275
);
4
* Plugin Name: WP Meta SEO
5
* Plugin URI: http://www.joomunited.com/wordpress-products/wp-meta-seo
6
* Description: WP Meta SEO is a plugin for WordPress to fill meta for content, images and main SEO info in a single view.
7
+ * Version: 1.6.0
8
* Author: JoomUnited
9
* Author URI: http://www.joomunited.com
10
* License: GPL2
45
define('URL', get_site_url());
46
47
if (!defined('WPMSEO_VERSION'))
48
+ define('WPMSEO_VERSION', '1.6.0');
49
50
if (!defined('WPMSEO_FILE'))
51
define('WPMSEO_FILE', __FILE__);
94
if($meta_title == '') $meta_title = $wp_query->post->post_title;
95
$meta_title_esc = esc_attr($meta_title);
96
97
+ // get meta keyword
98
+ $settings = get_option( '_metaseo_settings' );
99
+ if(isset($settings['metaseo_showkeywords']) && $settings['metaseo_showkeywords'] == 1){
100
+ $meta_keywords = get_post_meta($wp_query->post->ID, '_metaseo_metakeywords', true);
101
+ $meta_keywords_esc = esc_attr($meta_keywords);
102
+ }else{
103
+ $meta_keywords_esc = '';
104
+ }
105
+
106
// get meta description
107
$meta_description = get_post_meta($wp_query->post->ID, '_metaseo_metadesc', true);
108
if($meta_description == '') {
115
$mpage_on_front = get_option('page_on_front');
116
$mshow_on_front = get_option('show_on_front');
117
118
// check homepage is a page
119
if(get_post_meta($wp_query->post->ID, '_metaseo_metatitle', true) == '' && is_front_page() ){
120
$meta_title_esc = esc_attr($settings['metaseo_title_home']);
133
$twitter_desc = get_post_meta($wp_query->post->ID, '_metaseo_metatwitter-desc', true);
134
$meta_twitter_desc = esc_attr($twitter_desc);
135
if($meta_twitter_desc == '') $meta_twitter_desc = $meta_description_esc;
136
+
137
$sitename = get_bloginfo('name');
138
$meta_twitter_site = get_user_meta($wp_query->post->post_author,'mtwitter',true);
139
$facebook_admin = get_user_meta($wp_query->post->post_author,'mfacebook',true);
224
'#<meta name="description" [^<>]+ ?>#i',
225
'<meta name="description" content="' . $meta_description_esc . '" />',
226
($meta_description_esc != '' ? true : false)),
227
+ 'keywords' => array(
228
+ '#<meta name="keywords" [^<>]+ ?>#i',
229
+ '<meta name="keywords" content="' . $meta_keywords_esc . '" />',
230
+ ($meta_keywords_esc != '' ? true : false)),
231
'title' => array(
232
'#<meta name="title" [^<>]+ ?>#i',
233
'<meta name="title" content="' . $meta_title_esc . '" />',
241
($meta_title_esc != '' ? true : false));
242
}
243
244
+ if($meta_keywords_esc == ''){
245
+ unset($patterns['keywords']);
246
+ }
247
+
248
if($meta_twitter_site == ''){
249
unset($patterns['twitter_site']);
250
}
251
+
252
if($meta_twitter_image == ''){
253
unset($patterns['twitter_image']);
254
}
283
"metaseo_showfacebook"=>"",
284
"metaseo_showtwitter"=>"",
285
"metaseo_twitter_card"=>"summary",
286
+ "metaseo_showkeywords"=>0,
287
"metaseo_showtmetablock"=>1,
288
"metaseo_showsocial" => 1
289
);