Peter on "[Plugin: 404page - your smart custom 404 error page] Polylang support"

خرید بک لینک

Thank you for the really nice, simple and straightforward plugin! If anyone is interested in allowing Polylang support, we made some small adjustments to the show404 function. I'll post the whole function here, the changes are a couple lines after the WPML checks:

function show404( $posts ) {
    global $wp_query;
    // remove the filter so we handle only the first query - no custom queries
    remove_filter( 'posts_results', array( $this, 'show404' ), 999 );
    $pageid = $this->settings['404page_page_id'];
    if ( 0 != $pageid ) {
      if ( empty( $posts ) && is_main_query() && !is_robots() && !is_home() && !is_feed() && !is_search() &&( !defined('DOING_AJAX') || !DOING_AJAX ) ) {
        // show the 404 page
        if ( defined( 'ICL_SITEPRESS_VERSION' ) ) {
          // WPML is active
          $pageid = apply_filters( 'wpml_object_id', $pageid, 'page', true );
        } else if (function_exists('pll_get_post')) {
          // Polylang is active
          $translatedpage_id = pll_get_post($pageid);
          if (!empty($translatedpage_id) && 'publish' == get_post_status($translatedpage_id)) {
            $pageid = $translatedpage_id;
          }
        }
        $posts[] = get_post( $pageid );
        add_action( 'wp', array( $this, 'do_404_header' ) );
        add_filter( 'body_class', array( $this, 'add_404_body_class' ) );
      } elseif ( 1 == count( $posts ) && 'page' == $posts[0]->post_type ) {
        // Do a 404 if the 404 page is opened directly
        $curpageid = $posts[0]->ID;
        if ( defined( 'ICL_SITEPRESS_VERSION' ) ) {
          // WPML is active - get the post ID of the default language
          global $sitepress;
          $curpageid = apply_filters( 'wpml_object_id', $curpageid, 'page', $sitepress->get_default_language() );
          $pageid = apply_filters( 'wpml_object_id', $pageid, 'page', $sitepress->get_default_language() );
        } else if (function_exists('pll_get_post')) {
          // Polylang is active - get the post ID of the default language
          $curpageid = pll_get_post($curpageid, pll_default_language());
          $pageid = pll_get_post($pageid, pll_default_language());
        }
        if ( $pageid == $curpageid ) {
          add_action( 'wp', array( $this, 'do_404_header' ) );
          add_filter( 'body_class', array( $this, 'add_404_body_class' ) );
        }
      }
    }
    retu $posts;
  }

https://wordpress.org/plugins/404page/

WordPress ...

ما را در سایت WordPress دنبال می‌کنید

برچسب: peter plugin, نویسنده: استخدام کار بازدید: 591 تاريخ: پنجشنبه 21 مرداد 1395 ساعت: 15:52

صفحه بندی