im trying to redirect the loggedin user to a page i created on the backend, i want to use my index to do so

so, i added a do_action wrapped in an if statement is_user_loggedin() to call my function.

here's the function:

function my_redirect() {
  global $bp;

 if ( $bp->current_component == $bp->root_domain ) {
  bp_core_redirect($bp->current_component == MY_CUSTOM_SLUG  );

but it's not working. The page shows when you navigate to it, but it wont redirect when viewing the root page (index).

Here's whats in the index.php

 <?php if ( is_user_logged_in() ) : ?>

 <?php do_action( 'my_redirect'); ?>

 <?php endif; ?>

Thanks ahead of time :)

  • Please remove the part above you describe as "my next Q" and post a second question so that question and answer can be found by Google. – MikeSchinkel Jan 29 '11 at 20:25
  • Can you show us your 'add_action()' statement? What hook did you use? – MikeSchinkel Jan 29 '11 at 20:27
  • oh ok :P got it, I updated it – Sin Jan 29 '11 at 23:04

I think what you're trying to do here is create a custom hook. You should just do this to make it work correctly:

<?php if ( is_user_logged_in() )
    my_redirect(); ?>

There's no need to make it an action if you can use the function directly in your template. Actions are primarily used when you want to alter the behavior of core or you don't want to alter an already existing template.

Since you're creating your own template anyway, just call the function directly to reduce overhead. I would do this before get_header() or any characters are rendered or you will receive a PHP error.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.