• 14-06-2022, 21:24:31
    #1
    Wordprress wp-force-login/ eklentisi sitedeki tüm sayfaları üyelik paneline yönlendiriyor siteye ziyaretçi kabul etmiyor.
    Ancak buddypress kullandığım için /wp-login adresine değil de /giris adresine yönlendirmesini istiyorum.
    Eklentinin kodu aşağıda. Siteye girenleri /giriş adresine yönlendirmek için hangi satırları değiştirmem gerekiyor.
    <?php
    /*
    Plugin Name: Force Login
    Plugin URI: https://wordpress.org/plugins/wp-force-login/
    Description: Easily hide your WordPress site from public viewing by requiring visitors to log in first. Activate to turn on.
    Version: 5.6.3
    Author: Kevin Vess
    Author URI: http://vess.me/
    
    Text Domain: wp-force-login
    Domain Path: /languages
    
    License: GPL2
    License URI: https://www.gnu.org/licenses/gpl-2.0.html
    */
    
    function v_forcelogin() {
    
        // Exceptions for AJAX, Cron, or WP-CLI requests
        if ( ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || ( defined( 'DOING_CRON' ) && DOING_CRON ) || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
            return;
        }
    
        // Bail if the current visitor is a logged in user, unless Multisite is enabled
        if ( is_user_logged_in() && ! is_multisite() ) {
            return;
        }
    
        // Get visited URL
        $schema = isset( $_SERVER['HTTPS'] ) && 'on' === $_SERVER['HTTPS'] ? 'https://' : 'http://';
        $url = $schema . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    
        // Bail if visiting the login URL. Fix for custom login URLs
        if ( preg_replace( '/\?.*/', '', wp_login_url() ) === preg_replace( '/\?.*/', '', $url ) ) {
            return;
        }
    
        /**
         * Whitelist filter.
         *
         * @since 3.0.0
         * @deprecated 5.5.0 Use {@see 'v_forcelogin_bypass'} instead.
         *
         * @param array An array of absolute URLs.
         */
        $allowed = apply_filters_deprecated( 'v_forcelogin_whitelist', array( array() ), '5.5.0', 'v_forcelogin_bypass' );
    
        /**
         * Bypass filter.
         *
         * @since 5.0.0
         * @since 5.2.0 Added the `$url` parameter.
         *
         * @param bool Whether to disable Force Login. Default false.
         * @param string $url The visited URL.
         */
        $bypass = apply_filters( 'v_forcelogin_bypass', in_array( $url, $allowed ), $url );
    
        // Bail if bypass is enabled
        if ( $bypass ) {
            return;
        }
    
        // Only allow Multisite users access to their assigned sites
        if ( is_multisite() && is_user_logged_in() ) {
            if ( ! is_user_member_of_blog() && ! current_user_can( 'setup_network' ) ) {
                $message = apply_filters( 'v_forcelogin_multisite_message', __( "You're not authorized to access this site.", 'wp-force-login' ), $url );
                wp_die( $message, get_option( 'blogname' ) . ' &rsaquo; ' . __( 'Error', 'wp-force-login' ) );
            }
            return;
        }
    
        // Determine redirect URL
        $redirect_url = apply_filters( 'v_forcelogin_redirect', $url );
    
        // Set the headers to prevent caching
        nocache_headers();
    
        // Redirect unauthorized visitors
        wp_safe_redirect( wp_login_url( $redirect_url ), 302 );
        exit;
    }
    add_action( 'template_redirect', 'v_forcelogin' );
    
    /**
     * Restrict REST API for authorized users only
     *
     * @since 5.1.0
     * @param WP_Error|null|bool $result WP_Error if authentication error, null if authentication
     *                              method wasn't used, true if authentication succeeded.
     *
     * @return WP_Error|null|bool
     */
    function v_forcelogin_rest_access( $result ) {
        if ( null === $result && ! is_user_logged_in() ) {
            return new WP_Error( 'rest_unauthorized', __( 'Only authenticated users can access the REST API.', 'wp-force-login' ), array( 'status' => rest_authorization_required_code() ) );
        }
        return $result;
    }
    add_filter( 'rest_authentication_errors', 'v_forcelogin_rest_access', 99 );
    
    /*
     * Localization
     */
    function v_forcelogin_load_textdomain() {
        load_plugin_textdomain( 'wp-force-login', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
    }
    add_action( 'plugins_loaded', 'v_forcelogin_load_textdomain' );
  • 14-06-2022, 21:44:13
    #2
    Kullandığınız eklenti sadece giriş yapan kullanıcılara siteyi açıyor. İstediğiniz şey bu değil anladığım kadarıyla. Bu eklentiyi silerek yerine WPS Hide Login eklentisini kurmalısınız.
    https://wordpress.org/plugins/wps-hide-login/
  • 14-06-2022, 21:51:03
    #3
    Rawt adlı üyeden alıntı: mesajı görüntüle
    Kullandığınız eklenti sadece giriş yapan kullanıcılara siteyi açıyor. İstediğiniz şey bu değil anladığım kadarıyla. Bu eklentiyi silerek yerine WPS Hide Login eklentisini kurmalısınız.
    https://wordpress.org/plugins/wps-hide-login/
    Hocam sadece giriş yapan kullanıcılar sayfaya girsin istiyorum.
    Ama siteye giren /wp-login adresine değil de /giris adresine yönlendirilerek oradan giriş yapmasını istiyorum.
    (buddypress kullandığım için wp-login çalışmıyor. /giriş /kayit /sifremiunuttum sayfaları çalışıyor)
  • 14-06-2022, 21:53:43
    #4
    Etevazu adlı üyeden alıntı: mesajı görüntüle
    Hocam sadece giriş yapan kullanıcılar sayfaya girsin istiyorum.
    Ama siteye giren /wp-login adresine değil de /giris adresine yönlendirilerek oradan giriş yapmasını istiyorum.
    (buddypress kullandığım için wp-login çalışmıyor. /giriş /kayit /sifremiunuttum sayfaları çalışıyor)
    O zaman yine WPS Hide Login eklentisi kullanarak login adresini değiştirebilirsiniz. Böylece /giris'e yönlendirilir diye düşünüyorum.
  • 14-06-2022, 22:01:02
    #5
    wp-login e girenleri yönlendir o zaman hocam
    /giris e? htaccess ile yapabilirsin sanırım.
  • 14-06-2022, 22:02:25
    #6
    Rawt adlı üyeden alıntı: mesajı görüntüle
    O zaman yine WPS Hide Login eklentisi kullanarak login adresini değiştirebilirsiniz. Böylece /giris'e yönlendirilir diye düşünüyorum.
    hocam denedim olmadı. /giris adresine girdiğimde wp-login sayfasını getiriyor.
  • 14-06-2022, 22:24:30
    #7
    chnyrdkl adlı üyeden alıntı: mesajı görüntüle
    wp-login e girenleri yönlendir o zaman hocam
    /giris e? htaccess ile yapabilirsin sanırım.
    hocam 1 haftadır uğraşıyorum çok basit birşey bir türlü çözüm bulamadım. Kafayı yiycem artık.
    Buddypress kurulu siteye girmek isteyenler /giriş sayfası ile karşılaşsın. Giriş yapsın siteye erişsin.
    Denemediğim eklenti, eklemediğim kod kalmadı bıktırdı valla
  • 14-06-2022, 22:38:14
    #8
    Etevazu adlı üyeden alıntı: mesajı görüntüle
    hocam 1 haftadır uğraşıyorum çok basit birşey bir türlü çözüm bulamadım. Kafayı yiycem artık.
    Buddypress kurulu siteye girmek isteyenler /giriş sayfası ile karşılaşsın. Giriş yapsın siteye erişsin.
    Denemediğim eklenti, eklemediğim kod kalmadı bıktırdı valla
    Şu an pc başında değilim ama htaccess rewrite kuralları ile yapabilirsin sanırım. Onları deneyin denemediyseniz