ap_get_link_to( string|array $sub )
Description #
Return link to AnsPress pages.
Parameters #
- $substring | array (Required) Sub pages/s.
Source #
File: includes/functions.php
function ap_get_link_to( $sub ) {
$url = false;
if ( 'ask' === $sub ) {
$url = get_permalink( ap_opt( 'ask_page' ) );
}
if ( false === $url ) {
/**
* Define default AnsPress page slugs.
*
* @var array
*/
$default_pages = array(
'question' => ap_opt( 'question_page_slug' ),
'users' => str_replace( ap_base_page_link(), '', get_permalink( ap_opt( 'users_page' ) ) ),
'user' => str_replace( ap_base_page_link(), '', get_permalink( ap_opt( 'user_page' ) ) ),
'activities' => str_replace( ap_base_page_link(), '', get_permalink( ap_opt( 'activities_page' ) ) ),
'categories' => str_replace( ap_base_page_link(), '', get_permalink( ap_opt( 'categories_page' ) ) ),
'tags' => str_replace( ap_base_page_link(), '', get_permalink( ap_opt( 'tags_page' ) ) ),
);
$default_pages = apply_filters( 'ap_default_page_slugs', $default_pages );
if ( is_array( $sub ) && isset( $sub['ap_page'] ) && isset( $default_pages[ $sub['ap_page'] ] ) ) {
$sub['ap_page'] = $default_pages[ $sub['ap_page'] ];
} elseif ( ! is_array( $sub ) && ! empty( $sub ) && isset( $default_pages[ $sub ] ) ) {
$sub = $default_pages[ $sub ];
}
$base = rtrim( ap_base_page_link(), '/' );
$args = '';
if ( get_option( 'permalink_structure' ) !== '' ) {
if ( ! is_array( $sub ) && 'base' !== $sub ) {
if ( strpos( $sub, 'http://' ) === 0 || strpos( $sub, 'https://' ) === 0 ) {
$args = $sub;
} else {
$args = $sub ? '/' . $sub : '';
}
} elseif ( is_array( $sub ) ) {
$args = '/';
if ( ! empty( $sub ) ) {
foreach ( (array) $sub as $s ) {
$args .= $s . '/';
}
}
}
$args = user_trailingslashit( rtrim( $args, '/' ) );
} elseif ( ! is_array( $sub ) ) {
$args = $sub ? '&ap_page=' . $sub : '';
} elseif ( is_array( $sub ) ) {
$args = '';
if ( ! empty( $sub ) ) {
foreach ( $sub as $k => $s ) {
$args .= '&' . $k . '=' . $s;
}
}
}
$url = get_option( 'permalink_structure' ) ? $base . $args : $base;
}
/**
* Allows filtering anspress links.
*
* @param string $url Generated url.
* @param string|array $sub AnsPress sub pages.
*
* @since unknown
*/
return apply_filters( 'ap_link_to', $url, $sub );
}
Expand full source code Collapse full source code View on GitHub: includes/functions.php:696
Add your comment