Wordpress Astra 主题如何使用 wp_redirect
Wordpress Astra theme how do I use wp_redirect
我想在此函数中使用 wp_redirect
,但目前出现错误:
Cannot Modify Header Information. Any help is appreciated thank you.
这是我的代码:
function add_listing_dashboard_content() {
global $post;
global $page_id_dashboard;
global $page_id_user_profile;
global $page_id_submit_listing;
global $page_id_success;
$page_id_dashboard = get_field( 'dashboard_page', 'option');
$page_id_user_profile = get_field( 'user_profile_page', 'option');
$page_id_submit_listing = get_field( 'submit_listing_page', 'option');
$page_id_success = get_field( 'success_page', 'option');
if ( is_page( $page_id_dashboard ) && is_user_logged_in() ) :
include( plugin_dir_path( __FILE__ ) . '../templates/partials/dashboard-dashboard.php');
elseif ( is_page( $page_id_success ) && is_user_logged_in() ) :
include( plugin_dir_path( __FILE__ ) . '../templates/partials/dashboard-dashboard.php');
elseif ( is_page( $page_id_user_profile ) && is_user_logged_in() ) :
include( plugin_dir_path( __FILE__ ) . '../templates/partials/dashboard-profile.php');
elseif ( is_page( $page_id_submit_listing ) && is_user_logged_in() ) :
include( plugin_dir_path( __FILE__ ) . '../templates/partials/dashboard-submission.php');
elseif ( is_page( $page_id_dashboard ) || is_page( $page_id_user_profile ) || is_page( $page_id_submit_listing ) && !is_user_logged_in() ) :
include( plugin_dir_path( __FILE__ ) . '../templates/partials/dashboard-loggedout.php');
elseif ( is_page( $page_id_success ) && !is_user_logged_in() ) :
wp_redirect( get_permalink($page_id_dashboard) );
exit;
endif;
}
add_action( 'astra_entry_content_after', 'add_listing_dashboard_content' );
就像我在评论中所说的那样,astra_entry_content_after
执行重定向为时已晚。因此,您可以单独使用 template_redirect
挂钩和 astra_entry_content_after
挂钩,而不是“在彼此内部”。在 functions.php
文件中使用以下片段:
add_action("template_redirect", "redirecting_users_on_page_id_success");
function redirecting_users_on_page_id_success()
{
global $page_id_dashboard;
global $page_id_success;
$page_id_dashboard = get_field('dashboard_page', 'option');
$page_id_success = get_field('success_page', 'option');
if ((is_page($page_id_success) && !is_user_logged_in()))
{
wp_safe_redirect(get_permalink($page_id_dashboard));
exit;
}
};
add_action('astra_entry_content_after', 'add_listing_dashboard_content');
function add_listing_dashboard_content()
{
global $page_id_dashboard;
global $page_id_user_profile;
global $page_id_submit_listing;
global $page_id_success;
$page_id_dashboard = get_field('dashboard_page', 'option');
$page_id_user_profile = get_field('user_profile_page', 'option');
$page_id_submit_listing = get_field('submit_listing_page', 'option');
$page_id_success = get_field('success_page', 'option');
if (is_page($page_id_dashboard) && is_user_logged_in()) :
include(plugin_dir_path(__FILE__) . '../templates/partials/dashboard-dashboard.php');
elseif (is_page($page_id_success) && is_user_logged_in()) :
include(plugin_dir_path(__FILE__) . '../templates/partials/dashboard-dashboard.php');
elseif (is_page($page_id_user_profile) && is_user_logged_in()) :
include(plugin_dir_path(__FILE__) . '../templates/partials/dashboard-profile.php');
elseif (is_page($page_id_submit_listing) && is_user_logged_in()) :
include(plugin_dir_path(__FILE__) . '../templates/partials/dashboard-submission.php');
elseif (is_page($page_id_dashboard) || is_page($page_id_user_profile) || is_page($page_id_submit_listing) && !is_user_logged_in()) :
include(plugin_dir_path(__FILE__) . '../templates/partials/dashboard-loggedout.php');
endif;
}
如果你能让它工作,请告诉我!
我想在此函数中使用 wp_redirect
,但目前出现错误:
Cannot Modify Header Information. Any help is appreciated thank you.
这是我的代码:
function add_listing_dashboard_content() {
global $post;
global $page_id_dashboard;
global $page_id_user_profile;
global $page_id_submit_listing;
global $page_id_success;
$page_id_dashboard = get_field( 'dashboard_page', 'option');
$page_id_user_profile = get_field( 'user_profile_page', 'option');
$page_id_submit_listing = get_field( 'submit_listing_page', 'option');
$page_id_success = get_field( 'success_page', 'option');
if ( is_page( $page_id_dashboard ) && is_user_logged_in() ) :
include( plugin_dir_path( __FILE__ ) . '../templates/partials/dashboard-dashboard.php');
elseif ( is_page( $page_id_success ) && is_user_logged_in() ) :
include( plugin_dir_path( __FILE__ ) . '../templates/partials/dashboard-dashboard.php');
elseif ( is_page( $page_id_user_profile ) && is_user_logged_in() ) :
include( plugin_dir_path( __FILE__ ) . '../templates/partials/dashboard-profile.php');
elseif ( is_page( $page_id_submit_listing ) && is_user_logged_in() ) :
include( plugin_dir_path( __FILE__ ) . '../templates/partials/dashboard-submission.php');
elseif ( is_page( $page_id_dashboard ) || is_page( $page_id_user_profile ) || is_page( $page_id_submit_listing ) && !is_user_logged_in() ) :
include( plugin_dir_path( __FILE__ ) . '../templates/partials/dashboard-loggedout.php');
elseif ( is_page( $page_id_success ) && !is_user_logged_in() ) :
wp_redirect( get_permalink($page_id_dashboard) );
exit;
endif;
}
add_action( 'astra_entry_content_after', 'add_listing_dashboard_content' );
就像我在评论中所说的那样,astra_entry_content_after
执行重定向为时已晚。因此,您可以单独使用 template_redirect
挂钩和 astra_entry_content_after
挂钩,而不是“在彼此内部”。在 functions.php
文件中使用以下片段:
add_action("template_redirect", "redirecting_users_on_page_id_success");
function redirecting_users_on_page_id_success()
{
global $page_id_dashboard;
global $page_id_success;
$page_id_dashboard = get_field('dashboard_page', 'option');
$page_id_success = get_field('success_page', 'option');
if ((is_page($page_id_success) && !is_user_logged_in()))
{
wp_safe_redirect(get_permalink($page_id_dashboard));
exit;
}
};
add_action('astra_entry_content_after', 'add_listing_dashboard_content');
function add_listing_dashboard_content()
{
global $page_id_dashboard;
global $page_id_user_profile;
global $page_id_submit_listing;
global $page_id_success;
$page_id_dashboard = get_field('dashboard_page', 'option');
$page_id_user_profile = get_field('user_profile_page', 'option');
$page_id_submit_listing = get_field('submit_listing_page', 'option');
$page_id_success = get_field('success_page', 'option');
if (is_page($page_id_dashboard) && is_user_logged_in()) :
include(plugin_dir_path(__FILE__) . '../templates/partials/dashboard-dashboard.php');
elseif (is_page($page_id_success) && is_user_logged_in()) :
include(plugin_dir_path(__FILE__) . '../templates/partials/dashboard-dashboard.php');
elseif (is_page($page_id_user_profile) && is_user_logged_in()) :
include(plugin_dir_path(__FILE__) . '../templates/partials/dashboard-profile.php');
elseif (is_page($page_id_submit_listing) && is_user_logged_in()) :
include(plugin_dir_path(__FILE__) . '../templates/partials/dashboard-submission.php');
elseif (is_page($page_id_dashboard) || is_page($page_id_user_profile) || is_page($page_id_submit_listing) && !is_user_logged_in()) :
include(plugin_dir_path(__FILE__) . '../templates/partials/dashboard-loggedout.php');
endif;
}
如果你能让它工作,请告诉我!