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' );
}
}
}
Activiteiten - Alles voor Elkaar