P} ð²!r À;µ!r 0 °!r ÐÆš!r P °!r ` °!r p °!r d“!r °!r °!r ° °!r À °!r Ð °!r à °!r ð °!r ¡°!r ¡°!r ¡°!r 0¡°!r @¡°!r P¡°!r `¡°!r p¡°!r Ð=™!r ¡°!r ¡°!r °¡°!r À¡°!r С°!r à¡°!r ð¡°!r ¢°!r ¢°!r ¢°!r 0¢°!r @¢°!r P¢°!r `¢°!r p¢°!r €¢°!r ¢°!r ¢°!r °¢°!r À¢°!r Т°!r ࢰ!r ð¢°!r £°!r £°!r £°!r 0£°!r @£°!r P£°!r `£°!r p£°!r €£°!r £°!r ÐT™!r °£°!r À£°!r У°!r ࣰ!r ð£°!r ¤°!r ¤°!r ¤°!r 0¤°!r @¤°!r P¤°!r ü¡!r p¤°!r €¤°!r ¤°!r ¤°!r °¤°!r À¤°!r Ф°!r @î™!r ð¤°!r ¥°!r ¥°!r ¥°!r 0¥°!r @¥°!r P¥°!r `¥°!r p¥°!r €¥°!r ¥°!r ¥°!r °¥°!r À¥°!r Ð¥°!r ॰!r ð¥°!r ¦°!r ¦°!r ¦°!r 0¦°!r @¦°!r P¦°!r P¢!r I™!r €¦°!r ¦°!r €sŸ!r °¦°!r À¦°!r Ц°!r র!r ð¦°!r §°!r §°!r §°!r 0§°!r @§°!r P§°!r `§°!r p§°!r €§°!r §°!r ðÓœ!r °§°!r À§°!r Ч°!r à§°!r IJ!r ÿÿÿÿ uavc `ë°!r pê°!r Pë°!r `ê°!r €ê°!r ‘±!r rM²!r return; } $url = $this->get_attachment_url(); if ( empty( $url ) ) { return; } $this->redirect->do_unsafe_redirect( $url, 301 ); } /** * Checks if certain archive pages are disabled to determine if a archive redirect is needed. * * @codeCoverageIgnore * * @return bool Whether or not to redirect an archive page. */ protected function need_archive_redirect() { if ( $this->options->get( 'disable-date', false ) && $this->current_page->is_date_archive() ) { return true; } if ( $this->options->get( 'disable-author', false ) && $this->current_page->is_author_archive() ) { return true; } if ( $this->options->get( 'disable-post_format', false ) && $this->current_page->is_post_format_archive() ) { return true; } return false; } /** * Retrieves the attachment url for the current page. * * @codeCoverageIgnore It wraps WordPress functions. * * @return string The attachment url. */ protected function get_attachment_url() { /** * Allows the developer to change the target redirection URL for attachments. * * @api string $attachment_url The attachment URL for the queried object. * @api object $queried_object The queried object. * * @since 7.5.3 */ return \apply_filters( 'wpseo_attachment_redirect_url', \wp_get_attachment_url( \get_queried_object_id() ), \get_queried_object() ); } /** * Redirects away query variables that shouldn't work. * * @param array $query_vars The query variables in the current URL. * @param string $base_url The base URL without query string. * * @return void */ private function do_date_redirect( $query_vars, $base_url ) { foreach ( $this->date_query_variables as $variable ) { unset( $query_vars[ $variable ] ); } $url = $base_url; if ( \count( $query_vars ) > 0 ) { $url .= '?' . \http_build_query( $query_vars ); } $this->redirect->do_safe_redirect( $url, 301 ); } /** * Strips `cat=-1` from the URL and redirects to the resulting URL. */ public function category_redirect() { /** * Allows the developer to keep cat=-1 GET parameters * * @since 19.9 * * @param bool $remove_cat_parameter Whether to remove the `cat=-1` GET parameter. Default true. */ $should_remove_parameter = \apply_filters( 'wpseo_remove_cat_parameter', true ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Data is not processed or saved. if ( $should_remove_parameter && isset( $_GET['cat'] ) && $_GET['cat'] === '-1' ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Data is not processed or saved. unset( $_GET['cat'] ); if ( isset( $_SERVER['REQUEST_URI'] ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput -- This is just a replace and the data is never saved. $_SERVER['REQUEST_URI'] = \remove_query_arg( 'cat' ); } $this->redirect->do_safe_redirect( $this->url->recreate_current_url(), 301, 'Stripping cat=-1 from the URL' ); } } }