Changeset 751
- Timestamp:
- 07/17/2014 07:14:08 PM (11 years ago)
- Location:
- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/functions.php
r750 r751 56 56 57 57 add_filter( 'the_excerpt', __NAMESPACE__ . '\\lowercase_P_dangit_just_once' ); 58 add_filter( 'the_content', __NAMESPACE__ . '\\make_doclink_clickable', 10, 5 ); 58 59 59 60 // Temporarily disable comments … … 446 447 } 447 448 449 /** 450 * Makes phpDoc @link references clickable. 451 * 452 * Handles these five different types of links: 453 * 454 * - {@link http://en.wikipedia.org/wiki/ISO_8601} 455 * - {@link WP_Rewrite::$index} 456 * - {@link WP_Query::query()} 457 * - {@link esc_attr()} 458 * - {@link http://codex.wordpress.org/The_Loop Use new WordPress Loop} 459 * 460 * @param string $content The content. 461 * @return string 462 */ 463 function make_doclink_clickable( $content ) { 464 465 if ( false === strpos( $content, '{@link ' ) ) { 466 return $content; 467 } 468 469 return preg_replace_callback( 470 '/\{@link ([^\}]+)\}/', 471 function ( $matches ) { 472 473 $link = $matches[1]; 474 475 // Fix URLs made clickable during initial parsing 476 if ( 0 === strpos( $link, '<a ' ) ) { 477 478 if ( preg_match( '/^<a .*href=[\'\"]([^\'\"]+)[\'\"]>(.*)<\/a>$/', $link, $parts ) ) { 479 $link = '<a href="' . $parts[1] . '">' . esc_html( trim( $parts[2] ) ) . '</a>'; 480 } 481 482 } 483 484 // Link to an external resource. 485 elseif ( 0 === strpos( $link, 'http' ) ) { 486 487 $parts = explode( ' ', $link, 2 ); 488 489 // Link without linked text: {@link http://en.wikipedia.org/wiki/ISO_8601} 490 if ( 1 === count( $parts ) ) { 491 $link = '<a href="' . esc_url( $link ) . '">' . esc_html( $link ) . '</a>'; 492 } 493 494 // Link with linked text: {@link http://codex.wordpress.org/The_Loop Use new WordPress Loop} 495 else { 496 $link = '<a href="' . esc_url( $parts[0] ) . '">' . esc_html( $parts[1] ) . '</a>'; 497 } 498 499 } 500 501 // Link to an internal resource. 502 else { 503 504 // Link to class variable: {@link WP_Rewrite::$index} 505 if ( false !== strpos( $link, '::$' ) ) { 506 // Nothing to link to currently. 507 } 508 509 // Link to class method: {@link WP_Query::query()} 510 elseif ( false !== strpos( $link, '::' ) ) { 511 $link = '<a href="' . 512 get_post_type_archive_link( 'wp-parser-class' ) . 513 str_replace( array( '::', '()' ), array( '/', '' ), $link ) . 514 '">' . esc_html( $link ) . '</a>'; 515 } 516 517 // Link to function: {@link esc_attr()} 518 else { 519 $link = '<a href="' . 520 get_post_type_archive_link( 'wp-parser-function' ) . 521 str_replace( '()', '', $link ) . 522 '">' . esc_html( $link ) . '</a>'; 523 } 524 525 } 526 527 return $link; 528 }, 529 $content 530 ); 531 } -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/inc/template-tags.php
r741 r751 491 491 $params[ $tag['variable'] ]['required'] = 'Required'; 492 492 } 493 $params[ $tag['variable'] ]['content'] = make_doclink_clickable( $params[ $tag['variable'] ]['content'] ); 493 494 } 494 495 }
Note: See TracChangeset
for help on using the changeset viewer.