我已经完成了我的网站建设,并注意到由于结构原因,由于每个WP\\U查询在不同的帖子类型之间跳转,加载数据需要3秒钟。我想知道我是否将这些放在一个函数运行中,这样就不必每次都运行一个数组,这是否会产生任何有益的效果?
遗憾的是,目前我已经尝试:
function get_gametitle_info() {
global $post;
$game_terms = get_the_terms($post, \'games_titles\');
$game_con = wp_list_pluck( $game_terms, \'slug\' );
$game_info = array(
\'post_type\'=> \'game_information\',
\'posts_per_page\' => 1,
\'post_status\' => \'publish\',
\'order\' => \'ASC\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'games_titles\',
\'field\' => \'slug\',
\'terms\' => $game_con,
),
)
);
$game_info_query = new WP_Query( $game_info );
while ( $game_info_query->have_posts() ) : $game_info_query->the_post();
$gametitleID = get_the_ID();
if (has_term(\'3pegi\', \'age_ratings\', $post)){
$age_terms = array(\'3pegi\'); }
if (has_term(\'7pegi\', \'age_ratings\', $post)){
$age_terms = array(\'3pegi\', \'7pegi\'); }
if (has_term(\'12pegi\', \'age_ratings\', $post)){
$age_terms = array(array(\'3pegi\', \'7pegi\', \'12pegi\')); }
if (has_term(\'16pegi\', \'age_ratings\', $post)){
$age_terms = array(\'3pegi\', \'7pegi\', \'12pegi\', \'16pegi\'); }
if (has_term(\'18pegi\', \'age_ratings\', $post)){
$age_terms = array(\'3pegi\', \'7pegi\', \'12pegi\', \'16pegi\', \'18pegi\'); }
endwhile;
return $gametitleID;
return $age_terms;
return $game_info_query;
}
这给了我一个-警告:为D:\\xampp\\htdocs\\wp includes\\函数中的foreach()提供的参数无效。php在线2721
game\\u info数组只需运行一次,我希望在使用wp\\u reset\\u postdata()后切换回post类型时,它能够使用该数据,而不是每次在所有其他匹配的查询上运行一次;
对不起,如果不清楚的话。另一种解释方式是:
【发布【A帖子】发布【A帖子】发布【B帖子】【A帖子】
当事实上我只需要对A和B执行一次wp\\U查询时,持续切换对我来说似乎没有意义。这会节省资源并减少3秒钟的负载吗?谢谢
post文件内的正常结构:
$currentID = get_the_ID();
$game_terms = get_the_terms($post->ID, \'games_titles\');
$game_con = wp_list_pluck( $game_terms, \'slug\' );
$args = array(
\'post_type\'=> \'game_information\',
\'posts_per_page\' => 1,
\'post_status\' => \'publish\',
\'order\' => \'ASC\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'games_titles\',
\'field\' => \'slug\',
\'terms\' => $game_con,
),
)/*Search above post type for taxonomy and if matches then proceed*/
);
$the_query = new WP_Query( $args );
if($the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();
$gametitleID = get_the_ID();
if (has_term(\'3pegi\', \'age_ratings\', $post->ID)){
$age_terms = array(\'3pegi\'); }
if (has_term(\'7pegi\', \'age_ratings\', $post->ID)){
$age_terms = array(\'3pegi\', \'7pegi\'); }
if (has_term(\'12pegi\', \'age_ratings\', $post->ID)){
$age_terms = array(array(\'3pegi\', \'7pegi\', \'12pegi\')); }
if (has_term(\'16pegi\', \'age_ratings\', $post->ID)){
$age_terms = array(\'3pegi\', \'7pegi\', \'12pegi\', \'16pegi\'); }
if (has_term(\'18pegi\', \'age_ratings\', $post->ID)){
$age_terms = array(\'3pegi\', \'7pegi\', \'12pegi\', \'16pegi\', \'18pegi\'); }
endwhile; else: endif; wp_reset_postdata();
为了进一步澄清,我正在寻找一种方法,在页面加载时调用wp\\u查询一次(特定于该页面),并将数据保存为一个变量,以便在页眉、主栏、侧栏和页脚中使用。但需要针对每个独特的页面加载进行刷新,因为数据是高度动态的,需要是最新的。目前,我调用多个wp\\u查询,然后每次重置postdata(即使wp\\u查询调用相同的数据),因为我需要在post类型之间切换。
我可以解释的最简单的方法是寻找一种方法,将相同数据的多个wp\\U查询优化到一个调用中,但能够在模板中的多个位置使用。