WP Meta SEO - Version 3.5.2

Version Description

  • Fix : Create robots.txt file for multisite
  • Fix : Add meta tags og:type and fb:app_id (Facebook page share)
Download this release

Release Info

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

Code changes from version 3.5.1 to 3.5.2

css/metaseo_sitemap.css CHANGED
@@ -60,4 +60,9 @@ a:active {
60
  .wpms_langcheckbox{
61
  line-height: 28px;
62
  vertical-align: middle;
 
 
 
 
 
63
  }
60
  .wpms_langcheckbox{
61
  line-height: 28px;
62
  vertical-align: middle;
63
+ }
64
+
65
+ #menu_source_menus .wpms_row{
66
+ width: 100%;
67
+ float: left;
68
  }
inc/class.metaseo-admin.php CHANGED
@@ -23,6 +23,7 @@ class MetaSeo_Admin {
23
  "metaseo_title_home" => "",
24
  "metaseo_desc_home" => "",
25
  "metaseo_showfacebook" => "",
 
26
  "metaseo_showtwitter" => "",
27
  "metaseo_twitter_card" => "summary",
28
  "metaseo_showkeywords" => 0,
@@ -935,6 +936,7 @@ class MetaSeo_Admin {
935
  add_settings_field('metaseo_title_home', __('Homepage meta title', 'wp-meta-seo'), array($this, 'metaseo_title_home'), 'metaseo_settings', 'metaseo_dashboard', array('label_for' => __('You can define your home page meta title in the content itself (a page, a post category…), if for some reason it’s not possible, use this setting', 'wp-meta-seo')));
936
  add_settings_field('metaseo_desc_home', __('Homepage meta description', 'wp-meta-seo'), array($this, 'metaseo_desc_home'), 'metaseo_settings', 'metaseo_dashboard', array('label_for' => __('You can define your home page meta description in the content itself (a page, a post category…), if for some reason it’s not possible, use this setting', 'wp-meta-seo')));
937
  add_settings_field('metaseo_showfacebook', __('Facebook profile URL', 'wp-meta-seo'), array($this, 'showfacebook'), 'metaseo_settings', 'metaseo_dashboard', array('label_for' => __('Used as profile in case of social sharing content on Facebook', 'wp-meta-seo')));
 
938
  add_settings_field('metaseo_showtwitter', __('Twitter Username', 'wp-meta-seo'), array($this, 'showtwitter'), 'metaseo_settings', 'metaseo_dashboard', array('label_for' => __('Used as profile in case of social sharing content on Twitter', 'wp-meta-seo')));
939
  add_settings_field('metaseo_twitter_card', __('The default card type to use', 'wp-meta-seo'), array($this, 'showtwittercard'), 'metaseo_settings', 'metaseo_dashboard', array('label_for' => __('Choose the Twitter card size generated when sharing a content', 'wp-meta-seo')));
940
  add_settings_field('metaseo_metatitle_tab', __('Meta title as page title', 'wp-meta-seo'), array($this, 'showmetatitletab'), 'metaseo_settings', 'metaseo_dashboard', array('label_for' => __('Usually not recommended as meta information is for search engines and content title for readers, but in some case... :)', 'wp-meta-seo')));
@@ -1119,7 +1121,15 @@ class MetaSeo_Admin {
1119
  $face = isset($this->settings['metaseo_showfacebook']) ? $this->settings['metaseo_showfacebook'] : '';
1120
  echo '<input id="metaseo_showfacebook" name="_metaseo_settings[metaseo_showfacebook]" type="text" value="' . esc_attr($face) . '" size="50"/>';
1121
  }
1122
-
 
 
 
 
 
 
 
 
1123
  /*
1124
  * Display showtwitter input
1125
  */
23
  "metaseo_title_home" => "",
24
  "metaseo_desc_home" => "",
25
  "metaseo_showfacebook" => "",
26
+ "metaseo_showfbappid" => "",
27
  "metaseo_showtwitter" => "",
28
  "metaseo_twitter_card" => "summary",
29
  "metaseo_showkeywords" => 0,
936
  add_settings_field('metaseo_title_home', __('Homepage meta title', 'wp-meta-seo'), array($this, 'metaseo_title_home'), 'metaseo_settings', 'metaseo_dashboard', array('label_for' => __('You can define your home page meta title in the content itself (a page, a post category…), if for some reason it’s not possible, use this setting', 'wp-meta-seo')));
937
  add_settings_field('metaseo_desc_home', __('Homepage meta description', 'wp-meta-seo'), array($this, 'metaseo_desc_home'), 'metaseo_settings', 'metaseo_dashboard', array('label_for' => __('You can define your home page meta description in the content itself (a page, a post category…), if for some reason it’s not possible, use this setting', 'wp-meta-seo')));
938
  add_settings_field('metaseo_showfacebook', __('Facebook profile URL', 'wp-meta-seo'), array($this, 'showfacebook'), 'metaseo_settings', 'metaseo_dashboard', array('label_for' => __('Used as profile in case of social sharing content on Facebook', 'wp-meta-seo')));
939
+ add_settings_field('metaseo_showfbappid', __('Facebook App ID', 'wp-meta-seo'), array($this, 'showfbappid'), 'metaseo_settings', 'metaseo_dashboard', array('label_for' => __('Used as facebook app ID in case of social sharing content on Facebook', 'wp-meta-seo')));
940
  add_settings_field('metaseo_showtwitter', __('Twitter Username', 'wp-meta-seo'), array($this, 'showtwitter'), 'metaseo_settings', 'metaseo_dashboard', array('label_for' => __('Used as profile in case of social sharing content on Twitter', 'wp-meta-seo')));
941
  add_settings_field('metaseo_twitter_card', __('The default card type to use', 'wp-meta-seo'), array($this, 'showtwittercard'), 'metaseo_settings', 'metaseo_dashboard', array('label_for' => __('Choose the Twitter card size generated when sharing a content', 'wp-meta-seo')));
942
  add_settings_field('metaseo_metatitle_tab', __('Meta title as page title', 'wp-meta-seo'), array($this, 'showmetatitletab'), 'metaseo_settings', 'metaseo_dashboard', array('label_for' => __('Usually not recommended as meta information is for search engines and content title for readers, but in some case... :)', 'wp-meta-seo')));
1121
  $face = isset($this->settings['metaseo_showfacebook']) ? $this->settings['metaseo_showfacebook'] : '';
1122
  echo '<input id="metaseo_showfacebook" name="_metaseo_settings[metaseo_showfacebook]" type="text" value="' . esc_attr($face) . '" size="50"/>';
1123
  }
1124
+
1125
+ /*
1126
+ * Display fb app id input
1127
+ */
1128
+ public function showfbappid() {
1129
+ $appid = isset($this->settings['metaseo_showfbappid']) ? $this->settings['metaseo_showfbappid'] : '';
1130
+ echo '<input id="metaseo_showfbappid" name="_metaseo_settings[metaseo_showfbappid]" type="text" value="' . esc_attr($appid) . '" size="50"/>';
1131
+ }
1132
+
1133
  /*
1134
  * Display showtwitter input
1135
  */
inc/class.metaseo-sitemap.php CHANGED
@@ -1586,7 +1586,6 @@ ORDER BY p.post_date DESC",array($post_type,$taxo,$cat->slug));
1586
  * Display list menu in sitemap settings
1587
  */
1588
  public function wpms_loop($menuID, $level, $settings_sitemap, $term) {
1589
- global $wpdb;
1590
  $args = array(
1591
  'post_type' => 'nav_menu_item',
1592
  'posts_per_page' => -1,
@@ -1628,18 +1627,21 @@ ORDER BY p.post_date DESC",array($post_type,$taxo,$cat->slug));
1628
  $select_frequency = $this->wpms_view_select_frequency('frequency_menu_' . $submenu->ID, '_metaseo_settings_sitemap[wpms_sitemap_menus][' . $submenu->post_id . '][frequency]', $settings_sitemap['wpms_sitemap_menus'][$submenu->ID]['frequency']);
1629
 
1630
  if (empty($settings_sitemap['wpms_check_firstsave'])) {
1631
- $checkbox = $space . '<input class="cb_sitemaps_menu wpms_xmap_menu nav_menu' . $term->slug . '" checked name="_metaseo_settings_sitemap[wpms_sitemap_menus][' . $submenu->ID . '][menu_id]" type="checkbox" value="' . $submenu->ID . '">';
1632
  } else {
1633
  if (isset($settings_sitemap['wpms_sitemap_menus'][$submenu->ID]['menu_id']) && $settings_sitemap['wpms_sitemap_menus'][$submenu->ID]['menu_id'] == $submenu->ID) {
1634
- $checkbox = $space . '<input class="cb_sitemaps_menu wpms_xmap_menu nav_menu' . $term->slug . '" checked name="_metaseo_settings_sitemap[wpms_sitemap_menus][' . $submenu->ID . '][menu_id]" type="checkbox" value="' . $submenu->ID . '">';
1635
  } else {
1636
- $checkbox = $space . '<input class="cb_sitemaps_menu wpms_xmap_menu nav_menu' . $term->slug . '" name="_metaseo_settings_sitemap[wpms_sitemap_menus][' . $submenu->ID . '][menu_id]" type="checkbox" value="' . $submenu->ID . '">';
1637
  }
1638
  }
1639
 
1640
  $this->html .= '<div class="wpms_row">';
1641
  $this->html .= '<div style="float:left;line-height:30px">';
1642
- $this->html .= $checkbox . $title;
 
 
 
1643
  $this->html .= '</div>';
1644
  $this->html .= '<div style="margin-left:200px">' . $select_priority . $select_frequency . '</div>';
1645
  $this->html .= '</div>';
@@ -1651,13 +1653,25 @@ ORDER BY p.post_date DESC",array($post_type,$taxo,$cat->slug));
1651
  /* Ajax generate sitemap to xml file */
1652
  public function wpms_regenerate_sitemaps() {
1653
  $info_file = $this->wpms_get_path_filename_sitemap();
1654
- $wpms_url_robot = ABSPATH . "robots.txt";
1655
  $wpms_url_home = site_url('/');
1656
  $this->metaseo_create_sitemap($this->wpms_sitemap_name);
1657
  if ($this->settings_sitemap['wpms_sitemap_root'] == 1) {
1658
  $this->metaseo_create_sitemap($this->wpms_sitemap_default_name);
1659
  }
1660
 
 
 
 
 
 
 
 
 
 
 
 
 
1661
  if (file_exists($wpms_url_robot) && !is_multisite()) {
1662
  if (!is_writable($wpms_url_robot))
1663
  @chmod($wpms_url_robot, 0755);
@@ -1665,9 +1679,6 @@ ORDER BY p.post_date DESC",array($post_type,$taxo,$cat->slug));
1665
  $file_content = file_get_contents($wpms_url_robot);
1666
  if (isset($this->settings_sitemap['wpms_sitemap_add']) && $this->settings_sitemap['wpms_sitemap_add'] == 1 && !preg_match('|Sitemap: ' . $wpms_url_home . $this->wpms_sitemap_name . '|', $file_content)) {
1667
  file_put_contents($wpms_url_robot, $file_content . "\nSitemap: " . $wpms_url_home . $this->wpms_sitemap_name);
1668
- } elseif (preg_match("|Sitemap: " . $wpms_url_home . $this->wpms_sitemap_name . "|", $file_content) && !isset($_POST['gglstmp_checkbox'])) {
1669
- $file_content = preg_replace("|\nSitemap: " . $wpms_url_home . $this->wpms_sitemap_name . "|", '', $file_content);
1670
- file_put_contents($wpms_url_robot, $file_content);
1671
  }
1672
  } else {
1673
  $error = __('Cannot edit "robots.txt". Check your permissions', 'wp-meta-seo');
1586
  * Display list menu in sitemap settings
1587
  */
1588
  public function wpms_loop($menuID, $level, $settings_sitemap, $term) {
 
1589
  $args = array(
1590
  'post_type' => 'nav_menu_item',
1591
  'posts_per_page' => -1,
1627
  $select_frequency = $this->wpms_view_select_frequency('frequency_menu_' . $submenu->ID, '_metaseo_settings_sitemap[wpms_sitemap_menus][' . $submenu->post_id . '][frequency]', $settings_sitemap['wpms_sitemap_menus'][$submenu->ID]['frequency']);
1628
 
1629
  if (empty($settings_sitemap['wpms_check_firstsave'])) {
1630
+ $checkbox = $space . '<input id="wpms_sitemap_menus_' . $submenu->ID . '" class="cb_sitemaps_menu wpms_xmap_menu nav_menu' . $term->slug . '" checked name="_metaseo_settings_sitemap[wpms_sitemap_menus][' . $submenu->ID . '][menu_id]" type="checkbox" value="' . $submenu->ID . '">';
1631
  } else {
1632
  if (isset($settings_sitemap['wpms_sitemap_menus'][$submenu->ID]['menu_id']) && $settings_sitemap['wpms_sitemap_menus'][$submenu->ID]['menu_id'] == $submenu->ID) {
1633
+ $checkbox = $space . '<input id="wpms_sitemap_menus_' . $submenu->ID . '" class="cb_sitemaps_menu wpms_xmap_menu nav_menu' . $term->slug . '" checked name="_metaseo_settings_sitemap[wpms_sitemap_menus][' . $submenu->ID . '][menu_id]" type="checkbox" value="' . $submenu->ID . '">';
1634
  } else {
1635
+ $checkbox = $space . '<input id="wpms_sitemap_menus_' . $submenu->ID . '" class="cb_sitemaps_menu wpms_xmap_menu nav_menu' . $term->slug . '" name="_metaseo_settings_sitemap[wpms_sitemap_menus][' . $submenu->ID . '][menu_id]" type="checkbox" value="' . $submenu->ID . '">';
1636
  }
1637
  }
1638
 
1639
  $this->html .= '<div class="wpms_row">';
1640
  $this->html .= '<div style="float:left;line-height:30px">';
1641
+ $this->html .= '<div class="pure-checkbox">';
1642
+ $this->html .= $checkbox;
1643
+ $this->html .= '<label for="wpms_sitemap_menus_' . $submenu->ID . '">'. $title .'</label>';
1644
+ $this->html .= '</div>';
1645
  $this->html .= '</div>';
1646
  $this->html .= '<div style="margin-left:200px">' . $select_priority . $select_frequency . '</div>';
1647
  $this->html .= '</div>';
1653
  /* Ajax generate sitemap to xml file */
1654
  public function wpms_regenerate_sitemaps() {
1655
  $info_file = $this->wpms_get_path_filename_sitemap();
1656
+ $wpms_url_robot = get_home_path() . 'robots.txt';
1657
  $wpms_url_home = site_url('/');
1658
  $this->metaseo_create_sitemap($this->wpms_sitemap_name);
1659
  if ($this->settings_sitemap['wpms_sitemap_root'] == 1) {
1660
  $this->metaseo_create_sitemap($this->wpms_sitemap_default_name);
1661
  }
1662
 
1663
+ if (isset($this->settings_sitemap['wpms_sitemap_add']) && $this->settings_sitemap['wpms_sitemap_add'] == 1) {
1664
+ if (!file_exists($wpms_url_robot) && !is_multisite() ) {
1665
+ ob_start();
1666
+ error_reporting( 0 );
1667
+ do_robots();
1668
+ $robots_content = ob_get_clean();
1669
+
1670
+ $f = fopen( $wpms_url_robot, 'x' );
1671
+ fwrite( $f, $robots_content );
1672
+ }
1673
+ }
1674
+
1675
  if (file_exists($wpms_url_robot) && !is_multisite()) {
1676
  if (!is_writable($wpms_url_robot))
1677
  @chmod($wpms_url_robot, 0755);
1679
  $file_content = file_get_contents($wpms_url_robot);
1680
  if (isset($this->settings_sitemap['wpms_sitemap_add']) && $this->settings_sitemap['wpms_sitemap_add'] == 1 && !preg_match('|Sitemap: ' . $wpms_url_home . $this->wpms_sitemap_name . '|', $file_content)) {
1681
  file_put_contents($wpms_url_robot, $file_content . "\nSitemap: " . $wpms_url_home . $this->wpms_sitemap_name);
 
 
 
1682
  }
1683
  } else {
1684
  $error = __('Cannot edit "robots.txt". Check your permissions', 'wp-meta-seo');
languages/wp-meta-seo-en_US.mo CHANGED
Binary file
readme.txt CHANGED
@@ -3,7 +3,8 @@ 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, redirect, redirection, 301, broken link
4
  Requires at least: 4.0
5
  Tested up to: 4.8.1
6
- Stable tag: 3.5.1
 
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -271,6 +272,10 @@ It could be! if you have a lot of pages that need to be indexed with no specific
271
 
272
  == Changelog ==
273
 
 
 
 
 
274
  = 3.5.1 =
275
  * Language filter for meta, images and sitemap XML
276
  * Fix : Encoding issue on dashboard page
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, redirect, redirection, 301, broken link
4
  Requires at least: 4.0
5
  Tested up to: 4.8.1
6
+ Stable tag: 3.5.2
7
+ Requires PHP: 5.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
272
 
273
  == Changelog ==
274
 
275
+ = 3.5.2 =
276
+ * Fix : Create robots.txt file for multisite
277
+ * Fix : Add meta tags og:type and fb:app_id (Facebook page share)
278
+
279
  = 3.5.1 =
280
  * Language filter for meta, images and sitemap XML
281
  * Fix : Encoding issue on dashboard page
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: 3.5.1
8
  * Text Domain: wp-meta-seo
9
  * Domain Path: /languages
10
  * Author: JoomUnited
@@ -75,7 +75,7 @@ if (!defined('URL'))
75
  define('URL', get_site_url());
76
 
77
  if (!defined('WPMSEO_VERSION')) {
78
- define('WPMSEO_VERSION', '3.5.1');
79
  }
80
 
81
  if (!defined('WPMS_CLIENTID')) {
@@ -351,6 +351,19 @@ if (is_admin()) {
351
  $current_url = 'http' . (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) ? 's' : '') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
352
  $current_url = esc_url($current_url);
353
 
 
 
 
 
 
 
 
 
 
 
 
 
 
354
  // create List array meta tag
355
  $patterns = array(
356
  'twitter_image' => array(
@@ -399,6 +412,14 @@ if (is_admin()) {
399
  '#<meta property="og:url" [^<>]+ ?>#i',
400
  '<meta property="og:url" content="' . $current_url . '" />',
401
  ($current_url != '' ? true : false)),
 
 
 
 
 
 
 
 
402
  'og:title' => array(
403
  '#<meta property="og:title" [^<>]+ ?>#i',
404
  '<meta property="og:title" content="' . $meta_facebook_title . '" />',
@@ -441,6 +462,10 @@ if (is_admin()) {
441
  unset($patterns['keywords']);
442
  }
443
 
 
 
 
 
444
  if ($meta_twitter_site == '') {
445
  unset($patterns['twitter_site']);
446
  }
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: 3.5.2
8
  * Text Domain: wp-meta-seo
9
  * Domain Path: /languages
10
  * Author: JoomUnited
75
  define('URL', get_site_url());
76
 
77
  if (!defined('WPMSEO_VERSION')) {
78
+ define('WPMSEO_VERSION', '3.5.2');
79
  }
80
 
81
  if (!defined('WPMS_CLIENTID')) {
351
  $current_url = 'http' . (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) ? 's' : '') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
352
  $current_url = esc_url($current_url);
353
 
354
+ if ( is_front_page() || is_home() ) {
355
+ $type = 'website';
356
+ }
357
+ elseif ( is_singular() ) {
358
+ $type = 'article';
359
+ }
360
+ else {
361
+ // We use "object" for archives etc. as article doesn't apply there.
362
+ $type = 'object';
363
+ }
364
+
365
+ /* for facebook application id */
366
+ $fbapp_id = $settings['metaseo_showfbappid'];
367
  // create List array meta tag
368
  $patterns = array(
369
  'twitter_image' => array(
412
  '#<meta property="og:url" [^<>]+ ?>#i',
413
  '<meta property="og:url" content="' . $current_url . '" />',
414
  ($current_url != '' ? true : false)),
415
+ 'og:type' => array(
416
+ '#<meta property="og:type" [^<>]+ ?>#i',
417
+ '<meta property="og:type" content="' . $type . '" />',
418
+ ($type != '' ? true : false)),
419
+ 'fb:app_id' => array(
420
+ '#<meta property="fb:app_id" [^<>]+ ?>#i',
421
+ '<meta property="fb:app_id" content="' . $fbapp_id . '" />',
422
+ ($type != '' ? true : false)),
423
  'og:title' => array(
424
  '#<meta property="og:title" [^<>]+ ?>#i',
425
  '<meta property="og:title" content="' . $meta_facebook_title . '" />',
462
  unset($patterns['keywords']);
463
  }
464
 
465
+ if (!isset($fbapp_id) || (isset($fbapp_id) && $fbapp_id == '')) {
466
+ unset($patterns['fb:app_id']);
467
+ }
468
+
469
  if ($meta_twitter_site == '') {
470
  unset($patterns['twitter_site']);
471
  }