我在早期的WordPress安装中使用了以下功能,并且在那里工作得很好 . 现在我想在另一个安装中使用它但在那里我得到一个白色的屏幕 .
如果我拿走下面的动作,他会的 .
add_action( 'template_redirect', 'when_a_review_gets_submitted' );
但是这个功能不再适用 . 他必须检索page_ID,并且必须执行该函数的其余部分 .
有人知道为什么当前的功能不再起作用?
这是完整的功能:
function when_a_review_gets_submitted ($review, $post_id) {
// Set up the objects needed
$hosting_provider_query = new WP_Query();
global $post;
$hosting_pagina_titel = $post->post_title;
$search_all_pages = $hosting_provider_query->query(array(
'post_type' => 'page',
'post_status' => 'publish',
//Only get pages where custom field 'name_hosting_provider' equals Page title
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'naam_hosting_provivder',
'value' => $hosting_pagina_titel,
'compare' => '='
),
),
));
// Loop through all pages and find Page's children
$loop_through_all_child_pages = get_page_children( get_the_ID(), $search_all_pages );
// Loop through everything we got back
if(!empty($loop_through_all_child_pages)){
foreach($loop_through_all_child_pages as $child_page){
// get the ID of each childpage
$get_child_page_ID = $child_page->ID;
// get the ID of each parent page of the child pages
$get_parent_page_ID = get_queried_object_id();
// Get the average score from post_meta of the parent page
$get_average_score = get_post_meta( $get_parent_page_ID, 'rwp_user_score', true );
// update each custom field of the childs with the average score data from the post meta of parent page
update_field('gemiddelde_score_hosting_provider', $get_average_score, $get_child_page_ID);
}
}
}
add_action( 'template_redirect', 'when_a_review_gets_submitted' );
add_action('rwp_after_saving_review', 'when_a_review_gets_submitted', 11, 2);
EDIT 抱歉没有发布调试信息:
致命错误:未捕获ArgumentCountError:函数when_a_review_gets_submitted()的参数太少,1在286行传入/var/www/vhosts/domainname.nl/httpdocs/wp-includes/class-wp-hook.php,正好在预期的2中/var/www/vhosts/domainname.nl/httpdocs/wp-content/themes/hosting-vergelijker/functions.php:452堆栈跟踪:#0 /var/www/vhosts/domainname.nl/httpdocs/wp-includes/ class-wp-hook.php(286):when_a_review_gets_submitted('') #1 /var/www/vhosts/domainname.nl/httpdocs/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters(NULL, Array) #2 /var/www/vhosts/domainname.nl/httpdocs/wp-includes/plugin.php(453): WP_Hook->do_action(Array) #3 /var/www/vhosts/domainname.nl/httpdocs/wp-includes/template-loader.php(12): do_action(' template_redire ... ') #4 /var/www/vhosts/domainname.nl/httpdocs/wp-blog-header.php(19): require_once(' / var / www / vhosts ... ') #5 /var/www/vhosts/domainname.nl/httpdocs/index.php(17): require(' / var / www / vhosts ...')#6 抛出/ var第452行/www/vhosts/domainname.nl/httpdocs/wp-content/themes/hosting-vergelijker/functions.php
1 回答
template_redirect
没有更多的参数,你传递了2个参数,这是错误的参考这个如何用户template_redirect
钩https://codex.wordpress.org/Plugin_API/Action_Reference/template_redirect .您无法在用于
template_redirect
过滤器的方法中传递$review, $post_id
.