/** * Retrieve all custom field names set in SEO -> * * @return array */ private function get_custom_field_names() { $custom_field_names = array(); $post = $this->get_post(); $options = get_option(WPSEO_Options::get_option_instance('wpseo_titles')->option_name, array()); if (is_object($post)) { $target_option = 'page-analyse-extra-' . $post->post_type; if (array_key_exists($target_option, $options)) { $custom_field_names = explode(',', $options[$target_option]); } } return $custom_field_names; }
/** * Filter for adding custom fields to page analysis * * Based on the configured custom fields for page analysis. this filter will get the needed values from post_meta * and add them to the $page_content. Page analysis will be able to scan the content of these customs fields by * doing this. - If value doesn't exists as a post-meta value, there will be nothing included. * * @param string $page_content The content of the current post text. * @param object $post The total object of the post content. * * @return string $page_content */ public function filter_page_analysis($page_content, $post) { $options = get_option(WPSEO_Options::get_option_instance('wpseo_titles')->option_name, array()); $target_option = 'page-analyse-extra-' . $post->post_type; if (array_key_exists($target_option, $options)) { $custom_fields = explode(',', $options[$target_option]); if (is_array($custom_fields)) { foreach ($custom_fields as $custom_field) { $custom_field_data = get_post_meta($post->ID, $custom_field, true); if (!empty($custom_field_data)) { $page_content .= ' ' . $custom_field_data; } } } } return $page_content; }
$unzipped = unzip_file($file['file'], $p_path); if (!is_wp_error($unzipped)) { $filename = $p_path . 'settings.ini'; if (@is_file($filename) && is_readable($filename)) { $options = parse_ini_file($filename, true); if (is_array($options) && $options !== array()) { $old_wpseo_version = null; if (isset($options['wpseo']['version']) && $options['wpseo']['version'] !== '') { $old_wpseo_version = $options['wpseo']['version']; } foreach ($options as $name => $optgroup) { if ($name === 'wpseo_taxonomy_meta') { $optgroup = json_decode(urldecode($optgroup['wpseo_taxonomy_meta']), true); } // Make sure that the imported options are cleaned/converted on import $option_instance = WPSEO_Options::get_option_instance($name); if (is_object($option_instance) && method_exists($option_instance, 'import')) { $optgroup = $option_instance->import($optgroup, $old_wpseo_version, $options); } elseif (WP_DEBUG === true || defined('WPSEO_DEBUG') && WPSEO_DEBUG === true) { $content .= '<p><strong>' . sprintf(__('Setting "%s" is no longer used and has been discarded.', 'wordpress-seo'), $name) . '</strong></p>'; } } $content .= '<p><strong>' . __('Settings successfully imported.', 'wordpress-seo') . '</strong></p>'; } else { $content .= '<p><strong>' . __('Settings could not be imported:', 'wordpress-seo') . ' ' . __('No settings found in file.', 'wordpress-seo') . '</strong></p>'; } unset($options, $name, $optgroup); } else { $content .= '<p><strong>' . __('Settings could not be imported:', 'wordpress-seo') . ' ' . __('Unzipping failed - file settings.ini not found.', 'wordpress-seo') . '</strong></p>'; } @unlink($filename);
/** * Parse the option group and import it * * @param string $name * @param array $opt_group * @param array $options */ private function parse_option_group($name, $opt_group, $options) { if ($name === 'wpseo_taxonomy_meta') { $opt_group = json_decode(urldecode($opt_group['wpseo_taxonomy_meta']), true); } // Make sure that the imported options are cleaned/converted on import $option_instance = WPSEO_Options::get_option_instance($name); if (is_object($option_instance) && method_exists($option_instance, 'import')) { $option_instance->import($opt_group, $this->old_wpseo_version, $options); } elseif (WP_DEBUG === true || defined('WPSEO_DEBUG') && WPSEO_DEBUG === true) { $this->msg = sprintf(__('Setting "%s" is no longer used and has been discarded.', 'wordpress-seo'), $name); } }
public function import_seo_settings($file) { if (!empty($file)) { $upload_dir = wp_upload_dir(); if (!defined('DIRECTORY_SEPARATOR')) { define('DIRECTORY_SEPARATOR', '/'); } $p_path = $upload_dir['basedir'] . DIRECTORY_SEPARATOR . 'wpseo-import' . DIRECTORY_SEPARATOR; if (!isset($GLOBALS['wp_filesystem']) || !is_object($GLOBALS['wp_filesystem'])) { WP_Filesystem(); } $unzipped = unzip_file($file, $p_path); if (!is_wp_error($unzipped)) { $filename = $p_path . 'settings.ini'; if (@is_file($filename) && is_readable($filename)) { $options = parse_ini_file($filename, true); if (is_array($options) && $options !== array()) { $old_wpseo_version = null; if (isset($options['wpseo']['version']) && $options['wpseo']['version'] !== '') { $old_wpseo_version = $options['wpseo']['version']; } foreach ($options as $name => $optgroup) { if ($name === 'wpseo_taxonomy_meta') { $optgroup = json_decode(urldecode($optgroup['wpseo_taxonomy_meta']), true); } // Make sure that the imported options are cleaned/converted on import $option_instance = WPSEO_Options::get_option_instance($name); if (is_object($option_instance) && method_exists($option_instance, 'import')) { $optgroup = $option_instance->import($optgroup, $old_wpseo_version, $options); } } return true; } else { throw new Exception(__('Settings could not be imported:', 'wordpress-seo')); } unset($options, $name, $optgroup); } else { throw new Exception(__('Settings could not be imported:', 'wordpress-seo')); } @unlink($filename); @unlink($p_path); } else { throw new Exception(__('Settings could not be imported:', 'wordpress-seo') . ' ' . sprintf(__('Unzipping failed with error "%s".', 'wordpress-seo'), $unzipped->get_error_message())); } unset($zip, $unzipped); @unlink($file); } else { throw new Exception(__('Settings could not be imported:', 'wordpress-seo') . ' ' . __('Upload failed.', 'wordpress-seo')); } return false; }