Making WordPress.org


Ignore:
Timestamp:
09/27/2022 01:33:48 AM (2 years ago)
Author:
dd32
Message:

Support Forums: Don't oEmbed WordPress.org URLs which include anchors in the URL.

Fixes #4346.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/support-forums/inc/class-hooks.php

    r11623 r12094  
    132132        add_filter( 'bbp_subscription_mail_message', array( $this, 'bbp_subscription_mail_message'), 5, 3 );
    133133
     134        // Don't embed WordPress.org links with anchors included.
     135        add_filter( 'pre_oembed_result', array( $this, 'pre_oembed_result_dont_embed_wordpress_org_anchors' ), 20, 2 );
     136
     137        // Break users sessions / passwords when they get blocked, on the main forums only.
    134138        if ( 'wordpress.org' === get_blog_details()->domain ) {
    135             // Break users sessions / passwords when they get blocked, on the main forums only.
    136139            add_action( 'bbp_set_user_role', array( $this, 'user_blocked_password_handler' ), 10, 3 );
    137140        }
     
    13141317
    13151318    /**
     1319     * Don't embed WordPress.org links when anchors are included.
     1320     *
     1321     * NOTE: `$return` will have HTML when the link points to the current site, as WordPress uses
     1322     *       the same filter to preempt HTTP requests, ignoring any earlier filtered results.
     1323     *
     1324     * TODO: It may be better wanted to inject the actual hash into the oEmbed iframe instead of
     1325     *       disabling this rich embed entirely.
     1326     *
     1327     * @see https://meta.trac.wordpress.org/ticket/4346
     1328     */
     1329    public function pre_oembed_result_dont_embed_wordpress_org_anchors( $return, $url ) {
     1330        // Match WordPress.org + Subdomains which includes a Hash character in the URL.
     1331        if ( preg_match( '!^https?://([^/]+[.])?wordpress[.]org/.*#!i', $url ) ) {
     1332            $return = false;
     1333        }
     1334
     1335        return $return;
     1336    }
     1337
     1338    /**
    13161339     * Catch a user being blocked / unblocked and set their password appropriately.
    13171340     *
Note: See TracChangeset for help on using the changeset viewer.