relative2absolute($url, $base_url); //Skip invalid URLs (again) if ( !$url || (strlen($url)<6) ) { return $instances; } } //The URL is okay, create and populate a new link instance. $instance = new blcLinkInstance(); $instance->set_parser($this); $instance->raw_url = $raw_url; $instance->link_text = $default_link_text; $link_obj = new blcLink($url); //Creates or loads the link $instance->set_link($link_obj); $instances[] = $instance; } return $instances; } /** * Change the URL in a metadata field to another one. * * This is tricky because there can be multiple metadata fields with the same name * but different values. So we ignore $content (which might be an array of multiple * metadata values) and use the old raw_url that we stored when parsing the field(s) * instead. * * @see blcMetadataParser::parse() * * @param string $content Ignored. * @param string $new_url The new URL. * @param string $old_url Ignored. * @param string $old_raw_url The current meta value. * * @return array|WP_Error */ function edit($content, $new_url, $old_url, $old_raw_url){ //For multiline fields (like 'enclosure') we only want to change the first line. $lines = explode("\n", $old_raw_url); array_shift($lines); //Discard the old first line array_unshift($lines, $new_url); //Insert the new URL in its place. $content = implode("\n", $lines); return array( 'content' => $content, 'raw_url' => $new_url, ); } /** * Get the link text for printing in the "Broken Links" table. * * @param blcLinkInstance $instance * @param string $context * @return string HTML */ function ui_get_link_text($instance, $context = 'display'){ $image_html = sprintf( '%2$s ', esc_attr( plugins_url('/images/font-awesome/font-awesome-code.png', BLC_PLUGIN_FILE) ), __('Custom field', 'broken-link-checker') ); $field_html = sprintf( '%s', $instance->container_field ); if ( $context != 'email' ){ $field_html = $image_html . $field_html; } return $field_html; } }