I would be more than happy to purchase the premium version if this isn’t an issue there.
Thank you!
]]>Regarding the issue at hand, I can confirm that the main cause for the resource overuse are the numerous admin-ajax.php executions which [name] already included in his last report. The previously shown slow database queries do point towards a performance problem with your website, but they are a result of the same script execution spike.
All of them are related to the execution of an event called scd_query_next_event. According to our checks, it is a part of the smart-countdown-fx plugin which is currently installed in your WordPress application. The problematic code in this case related to one of its widgets as shown here:
” add_action ( ‘wp_ajax_nopriv_scd_query_next_event’, ‘SmartCountdown_Widget::queryNextEvent’ );
add_action ( ‘wp_ajax_scd_query_next_event’, ‘SmartCountdown_Widget::queryNextEvent’ );”For example, the web traffic statistics of [main site] show it had 22,514 unique visitors for September. However, even if we take only the script executions related to the scd_query_next_event task and disregard each other PHP script, we get a total of 563,059 executions up to this point:
I’m still trying to get access to my account to disable the plugin until a fix can be made, but I thought you should know. (It’s been great up until this point!)
Also, could your plugin affect how comments are displayed at all? On this website only (which is the only one I use it on), all of my posts display the comments for the very first post ever made on the site (4 years ago). I thought it was a problem with the SG Optimizer plugin, as it happened every time the cache was cleared, but they’re insisting it’s not, and yours is the only different plugin I can think of.
Thanks!
]]>A: Is there a plugin that would identify which plugin is making the most queries?
B: Is there any way to identify how many queries a plugin will make prior to installation?
]]>departure date | return date | excursion
This has been working fine and I’ve the different prices for each excursion in a separate table (based on date ranges – high season, low season)
This works but I would prefer to include the prices within each row so users can easily see the pricing without having to figure it out for themselves.
departure date | return date | excursion | cabin1 price | cabin 2 price
Individual boats can have various cabin types, and number of cabin types, so I’ve added a further sub field (repeater with 2 sub fields = cabin type, cabin price)
Is this the best way? It feels like I have to a lot of data entry putting in (sometimes the same) cabin information and price for every row. An average of 52 times for each yearly schedule.
I’ve often found in the past that I have to update/change my set-up as I learn better ways of doing things. On this occasion, because there is potentially a lot of data entry, I thought it best to research the best way of doing it before moving too far forward.
Any help and advice would be much appreciated.
https://www.ads-software.com/plugins/advanced-custom-fields/
]]>He says:
I think I have a good lead on what might be going on.
There was a large increase in this particular query, which began taking more and more time as the the system became overloaded
# User@Host: humortimes[humortimes] @ localhost []
# Query_time: 46.554562 Lock_time: 0.025978 Rows_sent: 1344 Rows_examined: 6807
SET timestamp=1429902157;
SELECT option_name, option_value FROM siow8zcap_options WHERE autoload = ‘yes’;The options table is supposed to be relatively small, 6807 rows is a very large amount for this table. The table also takes up about 67MB which is huge for what this table is normally supposed to hold.
The table is full of rows that contain option_name and option_value pairs where the name is something like _transient_0dec5811fde913014dc86375ff163bfc, and the value is the HTML code for an entire gallery page, equally about 37KB.
The code begins with:
<div class=”ngg-galleryoverview” id=”ngg-gallery-310bf18217ad768cb23bd2ad55081101-13396″>So it looks like the ngg gallery plugin is putting an excess of entries into the options table which is causing lookups of the options table to take a long time. The options table is queried frequently, so in periods of high traffic it becomes problematic and becomes overloaded.
I have put a mysql index on the ‘autoload’ column which should hopefully speed up the queries a little bit, but ultimately the solution is to change the ngg setting that is causing these entries and then remove the existing ones.
Does this make sense to anyone? Could NextCellent be causing this problem?
https://www.ads-software.com/plugins/nextcellent-gallery-nextgen-legacy/
]]>Our tech put a monitor on it, and says that spikes they saw coincide with occasions of an UPDATE query responsible for about 75% of the database writes in the log over a one day period. He gave this info:
The query minus all the data is as follows:
442878 Query UPDATEwp_options
SEToption_value
WHEREoption_name
= ‘top_opt_already_tweeted_posts’A portion of the data is as follows:
i:0;s:5:\”32729\”;i:1;s:5:\”32898\”;i:2;s:5:\”32726\”;i:3;s:5:\”32832\”;
Does Revive Old Post need to write to the database so much? Is it a function of settings? Does it have anything to do with Excluded Posts settings? If so, can those be disabled? (I don’t see any way of deleting the Exclude setting for past posts.)
https://www.ads-software.com/plugins/tweet-old-post/
]]><?php
/*Template Name: Services */
get_header();
$prefix = 'tk_';
$enable_single = get_theme_option(tk_theme_name.'_gallery_gallery_single');
$page_headline = get_post_meta($post->ID, $prefix.'page_headline', true);
$page_headline_link = get_post_meta($post->ID, $prefix.'page_headline_link', true);
?>
<style>
#container > div.content.left > div > div > div.service-content.left.isotope > div:nth-child(n+6) {display :none!important;}
#container > div.content.left {height: 1535!important; }
</style>
<?php if(!empty($page_headline)) { ?>
<div class="blog-single-title left">
<div class="wrapper">
<span>
<?php if($page_headline_link){ ?>
<a href="<?php echo $page_headline_link; ?>">
<?php } ?>
<?php echo $page_headline; ?>
<?php if($page_headline_link){ ?>
</a>
<?php } ?>
</span>
</div><!--/wrapper-->
</div><!--blog-single-title-->
<?php } ?>
<?php if(empty($page_headline)) { ?>
<div class="border-top-pages left"></div><!--border-top-pages-->
<?php } ?>
<script type="text/javascript">
jQuery(function(){
var opts = {
lines: 9, // The number of lines to draw
length: 6, // The length of each line
width: 2, // The line thickness
radius: 5, // The radius of the inner circle
corners: 0.4, // Corner roundness (0..1)
rotate: 0, // The rotation offset
color: '#FFF', // #rgb or #rrggbb
speed: 1, // Rounds per second
trail: 60, // Afterglow percentage
shadow: true, // Whether to render a shadow
hwaccel: false, // Whether to use hardware acceleration
className: 'spinner', // The CSS class to assign to the spinner
zIndex: 2e9, // The z-index (defaults to 2000000000)
top: 'auto', // Top position relative to parent in px
left: 'auto' // Left position relative to parent in px
};
var target = document.getElementById('portfolio-loader');
var spinner = new Spinner(opts).spin(target);
var target2 = document.getElementById('portfolio-loader2');
var spinner2 = new Spinner(opts).spin(target2);
var target3 = document.getElementById('slider-loader');
var spinner3 = new Spinner(opts).spin(target3);
});
</script>
<!-- CONTENT -->
<div class="content left">
<div class="wrapper">
<div class="gallery-single-content left">
<div class="gallery-filter left" style="display: none;">
<span><?php _e('Filter:', tk_theme_name) ?></span>
<a href="#" data-filter="*" class="active-project active"><?php _e('All', tk_theme_name) ?><p></p></a>
<?php
global $wpdb;
$gallery_orderby = get_theme_option(tk_theme_name.'_gallery_gallery_orderby');
$gallery_order = get_theme_option(tk_theme_name.'_gallery_gallery_order');
$post_type_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_type = 'services' AND post_status = 'publish' ");
if(!empty ($post_type_ids )){
$post_type_cats = wp_get_object_terms( $post_type_ids, 'ct_services',array('orderby' => $gallery_orderby, 'order' => $gallery_order, 'fields' => 'ids') );
if($post_type_cats){
$post_type_cats = array_unique($post_type_cats);
}
}
$include_category = null;
if(!empty ($post_type_ids )){
foreach ($post_type_cats as $category_list) {
$cat = $category_list.",";
$include_category = $include_category.$cat;
$cat_name = get_term($category_list, 'ct_services');
?>
<a href="#" data-filter="<?php echo '.class-'.$category_list?>"><?php echo $cat_name->name ?><p></p></a>
<?php } }?>
</div><!--/gallery-filter-->
<?php
if($post->post_content) { ?>
<div class="gallery-text left">
<div class="shortcodes">
<?php
if ( have_posts() ) : while ( have_posts() ) : the_post();
the_content();
endwhile; endif;
?>
</div><!--/contact-text-->
</div><!--/gallery-text-->
<?php } ?>
<div class="portfolio-loader" id="portfolio-loader"></div>
<div class="service-content left">
<?php
$gallery_order = get_theme_option(tk_theme_name.'_gallery_gallery_order');
$args=array('post_type' => 'services', 'post_status' => 'publish', 'ignore_sticky_posts'=> 1, 'posts_per_page' => -1, 'order' => $gallery_order,);
//The Query
query_posts($args);
//The Loop
if ( have_posts() ) : while ( have_posts() ) : the_post();
$post_category = wp_get_post_terms( $post->ID, 'ct_services');
?>
<div class="service-one left <?php foreach($post_category as $post_cat){echo 'class-'.$post_cat->term_id.' ';}?>">
<?php if(has_post_thumbnail()){ ?>
<div class="service-image left"><?php the_post_thumbnail('service-template'); ?></div><!--/service-image-->
<?php
$fullwidth = '';
} else {
$fullwidth = 'fullwidth';
} ?>
<div class="service-title right <?php echo $fullwidth; ?>">
<span><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></span>
</div><!--/service-title-->
<div class="service-text right <?php echo $fullwidth; ?>">
<?php if(has_post_thumbnail()){ ?>
<p><?php the_excerpt_length(270); ?></p>
<?php } else { ?>
<p><?php the_excerpt_length(400); ?></p>
<?php } ?>
<span ><a href="<?php the_permalink(); ?>" class="btn btn-mini" style="float: right; background: #366507; padding: 3px 15px 3px 15px; color: #fff; font-family: Helvetica Neue, Helvetica, Arial, sans-serif; ">Mai mult...</a>
</div><!--/service-text-->
</div><!--/service-one-->
<?php endwhile; endif; ?>
</div><!--/service-content-->
</div><!--/gallery-single-content-->
</div><!--/wrapper-->
</div><!--/content-->
<script type="text/javascript">
jQuery(function(){
var opts = {
lines: 9, // The number of lines to draw
length: 6, // The length of each line
width: 2, // The line thickness
radius: 5, // The radius of the inner circle
corners: 0.4, // Corner roundness (0..1)
rotate: 0, // The rotation offset
color: '#FFF', // #rgb or #rrggbb
speed: 1, // Rounds per second
trail: 60, // Afterglow percentage
shadow: true, // Whether to render a shadow
hwaccel: false, // Whether to use hardware acceleration
className: 'spinner', // The CSS class to assign to the spinner
zIndex: 2e9, // The z-index (defaults to 2000000000)
top: 'auto', // Top position relative to parent in px
left: 'auto' // Left position relative to parent in px
};
var target = document.getElementById('portfolio-loader');
var spinner = new Spinner(opts).spin(target);
var target2 = document.getElementById('portfolio-loader2');
var spinner2 = new Spinner(opts).spin(target2);
})
jQuery(document).ready(function(){
//LOAD ISOTOPE
var container = jQuery('.service-content');
jQuery(container).imagesLoaded(function(){
jQuery('.portfolio-loader').attr('style', 'display:none');
jQuery(container).show().animate({opacity:1},1000);
jQuery('.service-content').show();
jQuery(container).isotope({
? ? ? ? ? ?layoutMode : 'fitRows' ,
itemSelector: '.service-one',
isAnimated: true,
animationEngine : 'jquery',
animationOptions: {
duration: 800,
easing: 'easeOutCubic',
queue: false
}
});
});
jQuery('.service-content').imagesLoaded(function(){
jQuery('.portfolio-loader2').attr('style', 'display:none');
jQuery('.gallery-single-images').attr('style', 'display:inline-block');
});
jQuery('.gallery-filter a').each(function(){
jQuery(this).click(function(){
jQuery('.gallery-filter a').each(function(){
jQuery(this).removeClass('active');
});
jQuery(this).addClass('active');
});
});
jQuery('.gallery-filter a').click(function(){
var selector = jQuery(this).attr('data-filter');
jQuery(container).isotope({ filter: selector });
return false;
});
jQuery(function($) {
jQuery("<select />").appendTo(".gallery-filter");
// Create default option "Go to..."
jQuery("<option />", {
"selected": "selected",
"value" : "",
"text" : "Mergi la..."
}).appendTo(".gallery-filter select");
// Populate dropdown with menu items
jQuery(".gallery-filter a").each(function() {
var el = $(this);
jQuery("<option />", {
"value" : el.attr("href"),
"data-filter" : el.attr("data-filter"),
"text" : el.text()
}).appendTo(".gallery-filter select");
});
// To make dropdown actually work
// To make more unobtrusive: https://css-tricks.com/4064-unobtrusive-page-changer/
jQuery(".gallery-filter select").change(function() {
var container = jQuery('.service-content');
var selector = jQuery(this).find("option:selected").attr('data-filter');
jQuery(container).isotope({ filter: selector });
return false;
});
});
});
</script>
<?php get_footer(); ?>
]]><!– WPPA+ BEGIN Featured photos on this site –>
<meta name=”” content=”https://mysite.com/wp-content/uploads/wppa/25.png?ver=8″ >
<meta name=”” content=”https://mysite.com/wp-content/uploads/wppa/95.png?ver=8″ >
<meta name=”” content=”https://mysite.com/wp-content/uploads/wppa/115.png?ver=8″
I am assuming this is related. Is there a setting I need to adjust to make this stop? I reset my WPPA settings back to default and I am not using any featured photos options (that I know of).
Thanks!
https://www.ads-software.com/plugins/wp-photo-album-plus/
]]>