Código causando lentidão – WP
-
Olá Pessoal, dentro do meu tema. Tenho um arquivo que esta causando uma enorme lentidão quando o site passa de 150 acessos simultâneos. o error_log mostra que o erro esta dentro deste arquivo, mas não consigo identificar qual é o erro e o que possa estar causando essa lentidão.
obs o error_log não mostra a linha, mas o erro é
('passei do if',0
Segue o código do arquivo class-rascunho.php
<?php /* Class auto draft */ class Brasa_guerreiro_Rascunho{ public function __construct(){ //add_action( 'save_post', array(&$this, 'save') ); add_action( 'wp', array($this,'add_cron') ); add_action( 'brasa_anuncio_cron', array($this,'do_cron') ); add_action( 'pre_get_posts', array($this, 'show_draft') ); add_action( 'wp_ajax_save_post_guerreiro', array($this, 'save_guerreiro') ); add_action( 'wp_ajax_save_post_anuncio', array($this, 'save_anuncio') ); } public function add_cron(){ if( wp_next_scheduled( 'brasa_anuncio_cron' ) ) return; wp_schedule_event( time(), 'hourly', 'brasa_anuncio_cron' ); } private function invalid_date($date){ $today = new DateTime(); $today->modify('-1 day'); $post_date = new DateTime(); $post_date->setTimestamp($date); if($post_date > $today){ return true; } else{ return false; } } public function do_cron(){ // WP_Query arguments $today = new DateTime(); $today->modify('-1 day'); $args = array ( 'suppress_filters' => true, 'post_type' => 'anuncio', 'post_status' => 'publish', 'posts_per_page' => -1, 'tax_query' => array( array( 'taxonomy' => 'tipo-anuncio', 'field' => 'slug', 'terms' => 'vitrine-guerreiros', ), ), 'meta_query' => array( array( 'key' => 'wpcf-data-fim', 'compare' => '<', 'value' => $today->getTimestamp() ), ), ); // The Query $posts = get_posts( $args ); if(!is_array($posts) || empty($posts)) return; foreach($posts as $anuncio){ // The Loop if(!get_post_meta( $anuncio->ID, '_wpcf_belongs_guerreiro_id', true )) continue; if($this->invalid_date(get_post_meta( $anuncio->ID, 'wpcf-data-fim', true))) continue; error_log('passei do if',0); global $wpdb; //wp_remove_object_terms( $anuncio->ID, 'vitrine-guerreiros', 'tipo-anuncio' ); $_edited = $wpdb->update( $wpdb->posts, array( 'post_status' => 'draft' ), array( 'ID' => get_post_meta( $anuncio->ID, '_wpcf_belongs_guerreiro_id', true ) ) ); error_log(print_r($_edited,true),0); error_log(print_r('id::'.get_post_meta( $anuncio->ID, '_wpcf_belongs_guerreiro_id', true ),true),0); } } public function save($post_id){ $id = $_POST['post_ID']; if (defined('DOING_AJAX') && DOING_AJAX) return; if (isset($_GET['action']) && $_GET['action'] == 'trash') return; if($_POST['post_type'] == 'anuncio'){ $this->save_anuncio($id); } if($_POST['post_type'] == 'guerreiro'){ $this->save_guerreiro($id); } } public function save_anuncio(){ $post_id = $_POST['post_ID']; $have_term = false; // WP_Query arguments $today = new DateTime(); $today->modify('-1 day'); $args = array ( 'post_type' => 'anuncio', 'posts_per_page' => -1, 'meta_query' => array( array( 'key' => '_wpcf_belongs_guerreiro_id', 'value' => get_post_meta( $post_id, '_wpcf_belongs_guerreiro_id', true ), ), array( 'key' => 'wpcf-data-fim', 'compare' => '>=', 'value' => $today->getTimestamp() ), ), ); // The Query $query = new WP_Query( $args ); // The Loop if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); if(has_term( 'vitrine-guerreiros', 'tipo-anuncio' )){ $have_term = true; break; } } wp_reset_postdata(); } global $wpdb; if($have_term == true){ $_edited = $wpdb->update( $wpdb->posts, array( 'post_status' => 'publish' ), array( 'ID' => get_post_meta( $post_id, '_wpcf_belongs_guerreiro_id', true ) ) ); } else{ $_edited = $wpdb->update( $wpdb->posts, array( 'post_status' => 'draft' ), array( 'ID' => get_post_meta( $post_id, '_wpcf_belongs_guerreiro_id', true ) ) ); } } public function save_guerreiro(){ $post_id = $_POST['post_id']; $have_term = false; // WP_Query arguments $today = new DateTime(); $today->modify('-1 day'); $args = array ( 'post_type' => 'anuncio', 'meta_query' => array( array( 'key' => '_wpcf_belongs_guerreiro_id', 'value' => $post_id, ), array( 'key' => 'wpcf-data-fim', 'compare' => '>=', 'value' => $today->getTimestamp() ), ), ); // The Query $query = new WP_Query( $args ); if ( $query->have_posts() ){ while ( $query->have_posts() ){ $query->the_post(); if(has_term( 'vitrine-guerreiros', 'tipo-anuncio' )){ $have_term = true; break; } } wp_reset_postdata(); } global $wpdb; if($have_term == true){ $_edited = $wpdb->update( $wpdb->posts, array( 'post_status' => 'publish' ), array( 'ID' => $post_id ) ); } else{ $_edited = $wpdb->update( $wpdb->posts, array( 'post_status' => 'draft' ), array( 'ID' => $post_id ) ); } } public function show_draft($query){ if(!is_admin()) return; if ( isset($_GET['action']) && $_GET['action'] == 'edit' || isset($_GET['post_type']) && $_GET['post_type'] == 'anuncio' && !isset($_GET['action']) ){ $query->set('post_status','any'); } } } new Brasa_guerreiro_Rascunho(); ?>
Visualizando 1 resposta (de um total de 1)
Visualizando 1 resposta (de um total de 1)
- O tópico ‘Código causando lentidão – WP’ está fechado para novas respostas.