上下文:我创建了一个商店搜索网站,该网站在其数据库中列出了大约1300家商店。用户输入他们的邮政编码,然后将10个最接近的商店返回给他们,以便对出售所宣传产品的商店进行邮政编码。
以下代码(php)是我一直用于初始搜索的代码,它正在查找自定义分类中的数据并创建一个数组,以便以后使用该数据来进一步计算距离。
// If lat & lng supplied, find the 10 nearest stores
if( isset( $_GET['lat'] ) && isset( $_GET['lng'] ) ){
$latlng = true;
global $wp_query;
// If the country has been set, add it to the query
if( isset($_GET['country']) && $_GET['country'] == "true" ){
if($_GET['ss'] == "UAE"){
$countryname = "United Arab Emirates";
} else {
$countryname = $_GET['ss'];
}
$args = array_merge( $wp_query->query, array( 'posts_per_page' => -1,
'meta_key' => 'latitude',
'store-country' => $countryname ) );
} else {
$args = array_merge( $wp_query->query, array( 'posts_per_page' => -1,
'meta_key' => 'latitude' ) );
}
//echo $wp_query->found_posts;
query_posts($args);
上面的代码直接位于<?php get_header(); ?>
正在发生的事情是页面标题正在加载,而页面的其余部分无法加载页面。
我发现此行存在问题:
$args = array_merge( $wp_query->query, array( 'posts_per_page' => -1,
如果我将posts_per_page设置为400或者代码开始工作以下的任何内容,则会返回信息并且页面继续正常,我只是无法恢复我需要的所有条目。如果我的参赛作品少于400个,则不会出现问题,但是我需要能够带回1300个参赛作品,随着产品被添加到更多商店,这个数字会不断增加。
据我所知-1应该带回所有没有pagenation的条目,但是有些东西失败了,我被迫为posts_per_page提供一个特定的数字,考虑到情况似乎是不合理的。
它在我的本地主机上工作正常,它刚刚在网站上线时发生,我被认为必须是我的托管服务提供商提供的服务器设置,但我不知道他们会是什么,或者情况确实如此。
答案 0 :(得分:1)
如果我将posts_per_page设置为400或代码开始工作以下的任何内容
这告诉我,这是一个暂时问题。您的生产服务器可能具有本地服务器没有的某些限制,这就是您没有看到此问题的原因。如果您有权访问php.ini,可以尝试增加max_execution_time
或memory_limit
,看看是否有帮助。