| 629 | * Display the orignal source link for the currently displayed feed. |
| 630 | * |
| 631 | * Generate a correct link for the <link> element. |
| 632 | * |
| 633 | * @since 4.8.0 |
| 634 | */ |
| 635 | function source_link_rss() { |
| 636 | // Posts, Pages and Custom Post Types |
| 637 | if ( is_singular() ) { |
| 638 | $source_link = the_permalink_rss(); |
| 639 | } |
| 640 | // Taxonomy Archive Pages |
| 641 | elseif ( ( is_category() || is_tag() || is_tax() ) && get_queried_object_id() ) { |
| 642 | $source_link = get_term_link( get_queried_object_id() ); |
| 643 | } |
| 644 | // Date Archive Pages |
| 645 | elseif ( is_date() ) { |
| 646 | if ( is_day() ) { |
| 647 | $source_link = get_day_link( get_query_var( 'year' ), get_query_var( 'monthnum' ), get_query_var( 'day' ) ); |
| 648 | } elseif ( is_month() ) { |
| 649 | $source_link = get_month_link( get_query_var( 'year' ), get_query_var( 'monthnum' ) ); |
| 650 | } |
| 651 | } |
| 652 | // Custom Post Type Archive Pages |
| 653 | elseif ( is_post_type_archive() && get_query_var( 'post_type' ) ) { |
| 654 | $source_link = get_post_type_archive_link( get_query_var( 'post_type' ) ); |
| 655 | } |
| 656 | // Search Result Pages |
| 657 | elseif ( is_search() && get_query_var( 's' ) ) { |
| 658 | $source_link = get_search_link( get_query_var( 's' ) ); |
| 659 | } |
| 660 | // Fallback |
| 661 | else { |
| 662 | $source_link = bloginfo_rss( 'url' ); |
| 663 | } |
| 664 | |
| 665 | /** |
| 666 | * Filter the original HTML source link URL for use in RSS feeds. |
| 667 | * |
| 668 | * @since 4.8.0 |
| 669 | * |
| 670 | * |
| 671 | * @param string $source_link The link to the orignal HTML source the feed represents. |
| 672 | */ |
| 673 | echo esc_url( apply_filters( 'source_link_rss', $source_link ) ); |
| 674 | } |
| 675 | |
| 676 | /** |