[wp-meta] [Making WordPress.org] #3649: add new filter for attributes on link anchor elements in wporg-developer theme

Making WordPress.org noreply at wordpress.org
Wed May 30 20:30:57 UTC 2018


#3649: add new filter for attributes on link anchor elements in wporg-developer
theme
---------------------------+---------------------
 Reporter:  pbiron         |       Owner:  (none)
     Type:  enhancement    |      Status:  new
 Priority:  normal         |   Milestone:
Component:  Developer Hub  |  Resolution:
 Keywords:                 |
---------------------------+---------------------

Comment (by pbiron):

 Here's how I would use the proposed filter to produce the screenshot I
 just attached to this ticket.

 Suppose I have the following DocBlock:

 {{{#!php
 <?php
 /**
  * Tries to convert an attachment URL for intermediate sized images into a
 post ID.
  *
  * This function is intended to be hooked into {@link
 https://developer.wordpress.org/reference/hooks/attachment_url_to_postid/
 attachment_url_to_postid}
  * to overcome the fact that {@link
 https://developer.wordpress.org/reference/functions/attachment_url_to_postid/
 attachment_url_to_postid()}
  * will only find an attachment ID when the `$url` is for the full-sized
 image.
  *
  * @param int $post_id The found post ID.
  * @param string $url The URL to resolve.
  * @return int The found post ID, or 0 on failure.
  */
 function shc_attachment_url_to_postid_filter( $post_id, $url ) {
 ...
 }
 }}}

 I'd hook the following function into the proposed filter

 {{{#!php
 <?php
 add_filter( 'devhub-format-link-attributes', 'shc_link_attributes', 10, 2
 );
 function shc_link_attributes( $attrs, $url ) {
         $host = parse_url( $url, PHP_URL_HOST );
         switch ( $host ) {
                 case 'developer.wordpress.org':
                 case 'codex.wordpress.org':
                 case 'make.wordpress.org':
                         $attrs['class'] = 'external wporg';
                         $attrs['title'] = 'External link to
 wordpress.org';

                         break;

                 case 'php.net':
                         $attrs['class'] = 'external php';
                         $attrs['title'] = 'External link to php.net';

                         break;

                 case 'w3.org':
                 case 'www.w3.org':
                         $attrs['class'] = 'external w3c';
                         $attrs['title'] = 'External link to w3.org';

                         break;
         }

         return $attrs;
 }
 }}}

 and use the following snippet of CSS:

 {{{#!css
 a.external::after {
         background-origin: content-box;
         background-position: center;
         background-repeat: no-repeat;
         background-size: 1em 1em;
         content: '';
         display: inline-block;
         height: 1em;
         margin: 0 0 0 5px;
         width: 1em;
 }

 a.external.wporg::after {
         background-image: url( images/wordpress-logo.svg );
 }
 a.external.php::after {
         background-image: url( images/php-logo.svg );
 }
 a.external.w3c::after {
         background-image: url( images/w3c-logo.svg );
 }
 }}}

 to produce the WP logo "decoration" of the link.

-- 
Ticket URL: <https://meta.trac.wordpress.org/ticket/3649#comment:1>
Making WordPress.org <https://meta.trac.wordpress.org/>
Making WordPress.org


More information about the wp-meta mailing list