_fix_attachment_links
函数
_fix_attachment_links ( $post )
- Access
- Private
- 参数
-
-
(int|object)
$post
Post ID or post object.- Required: 是
-
(int|object)
- 返回值
-
- (void|int|WP_Error) Void if nothing fixed. 0 or WP_Error on update failure. The post ID on update success.
- 定义位置
-
-
wp-admin/includes/post.php
, line 1086
-
wp-admin/includes/post.php
- 引入
- 2.3.0
- 弃用
- –
Replaces hrefs of attachment anchors with up-to-date permalinks.
function _fix_attachment_links( $post ) {
$post = get_post( $post, ARRAY_A );
$content = $post['post_content'];
// Don't run if no pretty permalinks or post is not published, scheduled, or privately published.
if ( ! get_option( 'permalink_structure' ) || ! in_array( $post['post_status'], array( 'publish', 'future', 'private' ), true ) ) {
return;
}
// Short if there aren't any links or no '?attachment_id=' strings (strpos cannot be zero).
if ( ! strpos( $content, '?attachment_id=' ) || ! preg_match_all( '/]+)>[sS]+?/', $content, $link_matches ) ) {
return;
}
$site_url = get_bloginfo( 'url' );
$site_url = substr( $site_url, (int) strpos( $site_url, '://' ) ); // Remove the http(s).
$replace = '';
foreach ( $link_matches[1] as $key => $value ) {
if ( ! strpos( $value, '?attachment_id=' ) || ! strpos( $value, 'wp-att-' )
|| ! preg_match( '/href=(["'])[^"']*?attachment_id=(d+)[^"']*1/', $value, $url_match )
|| ! preg_match( '/rel=["'][^"']*wp-att-(d+)/', $value, $rel_match ) ) {
continue;
}
$quote = $url_match[1]; // The quote (single or double).
$url_id = (int) $url_match[2];
$rel_id = (int) $rel_match[1];
if ( ! $url_id || ! $rel_id || $url_id != $rel_id || strpos( $url_match[0], $site_url ) === false ) {
continue;
}
$link = $link_matches[0][ $key ];
$replace = str_replace( $url_match[0], 'href=' . $quote . get_attachment_link( $url_id ) . $quote, $link );
$content = str_replace( $link, $replace, $content );
}
if ( $replace ) {
$post['post_content'] = $content;
// Escape data pulled from DB.
$post = add_magic_quotes( $post );
return wp_update_post( $post );
}
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。


