Make WordPress Core

Changeset 43507


Ignore:
Timestamp:
07/18/2018 11:51:06 AM (6 years ago)
Author:
SergeyBiryukov
Message:

Privacy: Use the actual Privacy Policy page title in get_the_privacy_policy_link().

Props desrosj, birgire, ianbelanger, Ov3rfly.
Merges [43506] to the 4.9 branch.
Fixes #44192.

Location:
branches/4.9
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/4.9

  • branches/4.9/src/wp-includes/link-template.php

    r43109 r43507  
    41594159    $link               = '';
    41604160    $privacy_policy_url = get_privacy_policy_url();
    4161 
    4162     if ( $privacy_policy_url ) {
     4161    $policy_page_id     = (int) get_option( 'wp_page_for_privacy_policy' );
     4162    $page_title         = ( $policy_page_id ) ? get_the_title( $policy_page_id ) : '';
     4163
     4164    if ( $privacy_policy_url && $page_title ) {
    41634165        $link = sprintf(
    41644166            '<a class="privacy-policy-link" href="%s">%s</a>',
    41654167            esc_url( $privacy_policy_url ),
    4166             __( 'Privacy Policy' )
     4168            esc_html( $page_title )
    41674169        );
    41684170    }
  • branches/4.9/tests/phpunit/tests/link/getThePrivacyPolicyLink.php

    r43109 r43507  
    7272    /**
    7373     * The function should return a valid link if a privacy policy page has been
    74      * created and set as the `wp_page_for_privacy_policy`.
     74     * created and set as the `wp_page_for_privacy_policy`. The post title should
     75     * be used as the link text.
    7576     */
    7677    public function test_get_the_privacy_policy_link_should_return_valid_link_when_privacy_page_set() {
     
    8182        $this->assertStringStartsWith( '<a', $actual_link );
    8283        $this->assertContains( self::$privacy_policy_url, $actual_link );
    83         $this->assertStringEndsWith( '</a>', $actual_link );
     84        $this->assertStringEndsWith( '>' . WP_TESTS_DOMAIN . ' Privacy Policy</a>', $actual_link );
    8485    }
    8586
     
    106107
    107108        $this->assertSame( '', $actual_link );
     109    }
     110
     111    /**
     112     * The function should return an empty string when there is an empty page title
     113     * for the privacy policy.
     114     *
     115     * @ticket 44192
     116     */
     117    public function test_function_should_return_empty_string_when_privacy_page_title_empty() {
     118        $nameless_page_id = $this->factory->post->create(
     119            array(
     120                'post_type'  => 'page',
     121                'post_title' => '',
     122            )
     123        );
     124
     125        update_option( 'wp_page_for_privacy_policy', $nameless_page_id );
     126
     127        $this->assertSame( '', get_the_privacy_policy_link( self::$before, self::$after ) );
    108128    }
    109129
Note: See TracChangeset for help on using the changeset viewer.