Файловый менеджер - Редактировать - /home2/cocinasdalloway/constructorasmn.com/wp-content/plugins/siteseo/main/admin/export/csv.php
Назад
<?php /* * SiteSEO * https://siteseo.io/ * (c) SiteSEO Team <support@siteseo.io> */ /* Copyright 2016 - 2024 - Benjamin Denis (email : contact@seopress.org) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ if(! defined('ABSPATH')){ exit; } /////////////////////////////////////////////////////////////////////////////////////////////////// //Export SiteSEO metadata to CSV /////////////////////////////////////////////////////////////////////////////////////////////////// function siteseo_metadata_export() { siteseo_check_ajax_referer('siteseo_export_csv_metadata_nonce'); if ( ! is_admin()) { wp_send_json_error(); return; } if ( ! current_user_can(siteseo_capability('manage_options', 'migration'))) { wp_send_json_error(); return; } if (isset($_POST['offset'])) { $offset = absint(siteseo_opt_post('offset')); } $post_export = ''; if (isset($_POST['post_export'])) { $post_export = siteseo_opt_post('post_export'); } $term_export = ''; if (isset($_POST['term_export'])) { $term_export = siteseo_opt_post('term_export'); } //Get post types $siteseo_get_post_types = []; $postTypes = siteseo_get_service('WordPressData')->getPostTypes(); foreach ($postTypes as $siteseo_cpt_key => $siteseo_cpt_value) { $siteseo_get_post_types[] = $siteseo_cpt_key; } //Get taxonomies $siteseo_get_taxonomies = []; foreach (siteseo_get_service('WordPressData')->getTaxonomies() as $siteseo_tax_key => $siteseo_tax_value) { $siteseo_get_taxonomies[] = $siteseo_tax_key; } global $wpdb; global $post; //Count posts $count_items = 0; $i = 1; $sql = '('; $count = count($siteseo_get_post_types); foreach ($siteseo_get_post_types as $cpt) { $sql .= '(post_type = "' . $cpt . '")'; if ($i < $count) { $sql .= ' OR '; } ++$i; } $sql .= ')'; $total_count_posts = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->posts} WHERE $sql AND (post_status = 'publish' OR post_status = 'pending' OR post_status = 'draft' OR post_status = 'auto-draft' OR post_status = 'future' OR post_status = 'private' OR post_status = 'inherit' OR post_status = 'trash') "); //Count terms $total_count_terms = (int) $wpdb->get_var("SELECT count(*) FROM {$wpdb->terms}"); $increment = 200; $csv = ''; $csv = get_option('siteseo_metadata_csv'); $download_url = ''; $settings['id'] = []; $settings['post_title'] = []; $settings['url'] = []; $settings['meta_title'] = []; $settings['meta_desc'] = []; $settings['fb_title'] = []; $settings['fb_desc'] = []; $settings['fb_img'] = []; $settings['tw_title'] = []; $settings['tw_desc'] = []; $settings['tw_img'] = []; $settings['noindex'] = []; $settings['nofollow'] = []; $settings['noimageindex'] = []; $settings['noarchive'] = []; $settings['nosnippet'] = []; $settings['canonical_url'] = []; $settings['primary_cat'] = []; $settings['redirect_active'] = []; $settings['redirect_status'] = []; $settings['redirect_type'] = []; $settings['redirect_url'] = []; $settings['target_kw'] = []; $metas_key = [ 'meta_title' => '_siteseo_titles_title', 'meta_desc' => '_siteseo_titles_desc', 'fb_title' => '_siteseo_social_fb_title', 'fb_desc' => '_siteseo_social_fb_desc', 'fb_img' => '_siteseo_social_fb_img', 'tw_title' => '_siteseo_social_twitter_title', 'tw_desc' => '_siteseo_social_twitter_desc', 'tw_img' => '_siteseo_social_twitter_img', 'noindex' => '_siteseo_robots_index', 'nofollow' => '_siteseo_robots_follow', 'noimageindex' => '_siteseo_robots_imageindex', 'noarchive' => '_siteseo_robots_archive', 'nosnippet' => '_siteseo_robots_snippet', 'canonical_url' => '_siteseo_robots_canonical', 'primary_cat' => '_siteseo_robots_primary_cat', 'redirect_active' => '_siteseo_redirections_enabled', 'redirect_status' => '_siteseo_redirections_logged_status', 'redirect_type' => '_siteseo_redirections_type', 'redirect_url' => '_siteseo_redirections_value', 'target_kw' => '_siteseo_analysis_target_kw', ]; //Posts if ('done' != $post_export) { if ($offset > $total_count_posts) { wp_reset_query(); $count_items = $total_count_posts; //Reset offset once Posts export is done $offset = 0; update_option('siteseo_metadata_csv', $csv, false); $post_export = 'done'; } else { $args = [ 'post_type' => $siteseo_get_post_types, 'posts_per_page' => $increment, 'offset' => $offset, 'post_status' => 'any', 'order' => 'DESC', 'orderby' => 'date', ]; $args = apply_filters('siteseo_metadata_query_args', $args, $siteseo_get_post_types, $increment, $offset); $meta_query = get_posts($args); if ($meta_query) { // The Loop foreach ($meta_query as $post) { array_push($settings['id'], $post->ID); array_push($settings['post_title'], $post->post_title); array_push($settings['url'], get_permalink($post)); foreach($metas_key as $key => $meta_key) { if (get_post_meta($post->ID, $meta_key, true)) { array_push($settings[$key], get_post_meta($post->ID, $meta_key, true)); } else { array_push($settings[$key], ''); } } $csv[] = array_merge( $settings['id'], $settings['post_title'], $settings['url'], $settings['meta_title'], $settings['meta_desc'], $settings['fb_title'], $settings['fb_desc'], $settings['fb_img'], $settings['tw_title'], $settings['tw_desc'], $settings['tw_img'], $settings['noindex'], $settings['nofollow'], $settings['noimageindex'], $settings['noarchive'], $settings['nosnippet'], $settings['canonical_url'], $settings['primary_cat'], $settings['redirect_active'], $settings['redirect_status'], $settings['redirect_type'], $settings['redirect_url'], $settings['target_kw'] ); //Clean arrays $settings['id'] = []; $settings['post_title'] = []; $settings['url'] = []; $settings['meta_title'] = []; $settings['meta_desc'] = []; $settings['fb_title'] = []; $settings['fb_desc'] = []; $settings['fb_img'] = []; $settings['tw_title'] = []; $settings['tw_desc'] = []; $settings['tw_img'] = []; $settings['noindex'] = []; $settings['nofollow'] = []; $settings['noimageindex'] = []; $settings['noarchive'] = []; $settings['nosnippet'] = []; $settings['canonical_url'] = []; $settings['primary_cat'] = []; $settings['redirect_active'] = []; $settings['redirect_status'] = []; $settings['redirect_type'] = []; $settings['redirect_url'] = []; $settings['target_kw'] = []; } } $offset += $increment; if ($offset >= $total_count_posts) { $count_items = $total_count_posts; } else { $count_items = $offset; } update_option('siteseo_metadata_csv', $csv, false); } } elseif ('done' != $term_export) { //Terms if ($offset > $total_count_terms) { $count_items = $total_count_terms + $total_count_posts; update_option('siteseo_metadata_csv', $csv, false); $post_export = 'done'; $term_export = 'done'; } else { $args = [ 'taxonomy' => $siteseo_get_taxonomies, 'number' => $increment, 'offset' => $offset, 'order' => 'DESC', 'orderby' => 'date', 'hide_empty' => false, ]; $args = apply_filters('siteseo_metadata_query_terms_args', $args, $siteseo_get_taxonomies, $increment, $offset); $meta_query = get_terms($args); if ($meta_query) { // The Loop foreach ($meta_query as $term) { array_push($settings['id'], $term->term_id); array_push($settings['post_title'], $term->name); array_push($settings['url'], get_term_link($term)); foreach($metas_key as $key => $meta_key) { if (get_term_meta($term->term_id, $meta_key, true)) { array_push($settings[$key], get_term_meta($term->term_id, $meta_key, true)); } else { array_push($settings[$key], ''); } } $csv[] = array_merge( $settings['id'], $settings['post_title'], $settings['url'], $settings['meta_title'], $settings['meta_desc'], $settings['fb_title'], $settings['fb_desc'], $settings['fb_img'], $settings['tw_title'], $settings['tw_desc'], $settings['tw_img'], $settings['noindex'], $settings['nofollow'], $settings['noimageindex'], $settings['noarchive'], $settings['nosnippet'], $settings['canonical_url'], $settings['primary_cat'], $settings['redirect_active'], $settings['redirect_status'], $settings['redirect_type'], $settings['redirect_url'], $settings['target_kw'] ); //Clean arrays $settings['id'] = []; $settings['post_title'] = []; $settings['url'] = []; $settings['meta_title'] = []; $settings['meta_desc'] = []; $settings['fb_title'] = []; $settings['fb_desc'] = []; $settings['fb_img'] = []; $settings['tw_title'] = []; $settings['tw_desc'] = []; $settings['tw_img'] = []; $settings['noindex'] = []; $settings['nofollow'] = []; $settings['noimageindex'] = []; $settings['noarchive'] = []; $settings['nosnippet'] = []; $settings['canonical_url'] = []; $settings['primary_cat'] = []; $settings['redirect_active'] = []; $settings['redirect_status'] = []; $settings['redirect_type'] = []; $settings['redirect_url'] = []; $settings['target_kw'] = []; } } $offset += $increment; if ($offset >= $total_count_terms) { $count_items = $total_count_terms + $total_count_posts; } elseif ($offset === 200) { $count_items = $total_count_posts + 200; } else { $count_items += $offset; } $post_export = 'done'; update_option('siteseo_metadata_csv', $csv, false); } } else { $post_export = 'done'; $term_export = 'done'; } //Create download URL if ('done' === $post_export && 'done' === $term_export) { $post_data['action'] = siteseo_opt_post('action'); $post_data['offset'] = siteseo_opt_post('offset'); $post_data['post_export'] = siteseo_opt_post('post_export'); $post_data['term_export'] = siteseo_opt_post('term_export'); $post_data['_ajax_nonce'] = siteseo_opt_post('_ajax_nonce'); $args = array_merge($post_data, [ 'nonce' => wp_create_nonce('siteseo_csv_batch_export_nonce'), 'page' => 'siteseo-import-export', 'siteseo_action' => 'siteseo_download_batch_export', ]); $download_url = add_query_arg($args, admin_url('admin.php')); $offset = 'done'; } //Return data to JSON $data = []; $data['count'] = $count_items; $data['total'] = $total_count_posts + $total_count_terms; $data['offset'] = $offset; $data['url'] = $download_url; $data['post_export'] = $post_export; $data['term_export'] = $term_export; wp_send_json_success($data); } add_action('wp_ajax_siteseo_metadata_export', 'siteseo_metadata_export');
| ver. 1.4 |
Github
|
.
| PHP 8.2.22 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка