Выполнить функцию, если пользователь вошел в систему - Wordpress - PullRequest
0 голосов
/ 30 августа 2018

Первый раз я публикую здесь! Надеюсь, мой вопрос будет актуален.

Я определил функцию для исключения категории в календаре, которая хорошо работает при ее выполнении следующим образом:

function tribe_exclude_events_category_month_list( $query ) {

if ( isset( $query->query_vars['eventDisplay'] ) && ! is_singular( 'tribe_events' ) ) {

    if ( $query->query_vars['eventDisplay'] == 'list' && ! is_tax( Tribe__Events__Main::TAXONOMY ) || $query->query_vars['eventDisplay'] == 'month' && $query->query_vars['post_type'] == Tribe__Events__Main::POSTTYPE && ! is_tax( Tribe__Events__Main::TAXONOMY ) && empty( $query->query_vars['suppress_filters'] ) ) {

        $query->set( 'tax_query', array(

            array(
                'taxonomy' => Tribe__Events__Main::TAXONOMY,
                'field'    => 'slug',
                'terms'    => array( 'reunions'),
                'operator' => 'NOT IN'
            )
        ) );
    }

}

return $query;} add_action( 'pre_get_posts', 'tribe_exclude_events_category_month_list' );

Но я хочу выполнить его, только если пользователь вошел в систему. Итак, я сделал это:

function tribe_exclude_events_category_month_list( $query ) {

if ( isset( $query->query_vars['eventDisplay'] ) && ! is_singular( 'tribe_events' ) ) {

    if ( $query->query_vars['eventDisplay'] == 'list' && ! is_tax( Tribe__Events__Main::TAXONOMY ) || $query->query_vars['eventDisplay'] == 'month' && $query->query_vars['post_type'] == Tribe__Events__Main::POSTTYPE && ! is_tax( Tribe__Events__Main::TAXONOMY ) && empty( $query->query_vars['suppress_filters'] ) ) {

        $query->set( 'tax_query', array(

            array(
                'taxonomy' => Tribe__Events__Main::TAXONOMY,
                'field'    => 'slug',
                'terms'    => array( 'reunions'),
                'operator' => 'NOT IN'
            )
        ) );
    }

}

return $query; } 

function exclude_category_when_logged_in() {
if ( is_user_logged_in() ) {
  add_action( 'pre_get_posts', 'tribe_exclude_events_category_month_list' );
}} add_action( 'init', 'exclude_category_when_logged_in' );

Но, похоже, это не работает.

Не могли бы вы помочь, пожалуйста? Большое спасибо, Лукас

1 Ответ

0 голосов
/ 30 августа 2018

Попробуйте что-то вроде этого

if (is_user_logged_in()){

}else{

}

Вот ваш полный код

if (is_user_logged_in()){
    function tribe_exclude_events_category_month_list( $query ) {

        if ( isset( $query->query_vars['eventDisplay'] ) && ! is_singular( 'tribe_events' ) ) {

            if ( $query->query_vars['eventDisplay'] == 'list' && ! is_tax( Tribe__Events__Main::TAXONOMY ) || $query->query_vars['eventDisplay'] == 'month' && $query->query_vars['post_type'] == Tribe__Events__Main::POSTTYPE && ! is_tax( Tribe__Events__Main::TAXONOMY ) && empty( $query->query_vars['suppress_filters'] ) ) {

                $query->set( 'tax_query', array(

                    array(
                        'taxonomy' => Tribe__Events__Main::TAXONOMY,
                        'field'    => 'slug',
                        'terms'    => array( 'reunions'),
                        'operator' => 'NOT IN'
                    )
                ) );
            }

        }

    return $query;
    }
    add_action( 'pre_get_posts', 'tribe_exclude_events_category_month_list' );
}else{
    //leave empty
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...