本文整理汇总了PHP中is_local_attachment函数的典型用法代码示例。如果您正苦于以下问题:PHP is_local_attachment函数的具体用法?PHP is_local_attachment怎么用?PHP is_local_attachment使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了is_local_attachment函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: pingback
/**
* Pings back the links found in a post.
*
* @since 0.71
*
* @global string $wp_version
*
* @param string $content Post content to check for links.
* @param int $post_ID Post ID.
*/
function pingback($content, $post_ID)
{
global $wp_version;
include_once ABSPATH . WPINC . '/class-IXR.php';
include_once ABSPATH . WPINC . '/class-wp-http-ixr-client.php';
// original code by Mort (http://mort.mine.nu:8080)
$post_links = array();
$pung = get_pung($post_ID);
// Step 1
// Parsing the post, external links (if any) are stored in the $post_links array
$post_links_temp = wp_extract_urls($content);
// Step 2.
// Walking thru the links array
// first we get rid of links pointing to sites, not to specific files
// Example:
// http://dummy-weblog.org
// http://dummy-weblog.org/
// http://dummy-weblog.org/post.php
// We don't wanna ping first and second types, even if they have a valid <link/>
foreach ((array) $post_links_temp as $link_test) {
if (!in_array($link_test, $pung) && url_to_postid($link_test) != $post_ID && !is_local_attachment($link_test)) {
// Also, let's never ping local attachments.
if ($test = @parse_url($link_test)) {
if (isset($test['query'])) {
$post_links[] = $link_test;
} elseif (isset($test['path']) && $test['path'] != '/' && $test['path'] != '') {
$post_links[] = $link_test;
}
}
}
}
$post_links = array_unique($post_links);
/**
* Fires just before pinging back links found in a post.
*
* @since 2.0.0
*
* @param array &$post_links An array of post links to be checked, passed by reference.
* @param array &$pung Whether a link has already been pinged, passed by reference.
* @param int $post_ID The post ID.
*/
do_action_ref_array('pre_ping', array(&$post_links, &$pung, $post_ID));
foreach ((array) $post_links as $pagelinkedto) {
$pingback_server_url = discover_pingback_server_uri($pagelinkedto);
if ($pingback_server_url) {
@set_time_limit(60);
// Now, the RPC call
$pagelinkedfrom = get_permalink($post_ID);
// using a timeout of 3 seconds should be enough to cover slow servers
$client = new WP_HTTP_IXR_Client($pingback_server_url);
$client->timeout = 3;
/**
* Filter the user agent sent when pinging-back a URL.
*
* @since 2.9.0
*
* @param string $concat_useragent The user agent concatenated with ' -- WordPress/'
* and the WordPress version.
* @param string $useragent The useragent.
* @param string $pingback_server_url The server URL being linked to.
* @param string $pagelinkedto URL of page linked to.
* @param string $pagelinkedfrom URL of page linked from.
*/
$client->useragent = apply_filters('pingback_useragent', $client->useragent . ' -- WordPress/' . $wp_version, $client->useragent, $pingback_server_url, $pagelinkedto, $pagelinkedfrom);
// when set to true, this outputs debug messages by itself
$client->debug = false;
if ($client->query('pingback.ping', $pagelinkedfrom, $pagelinkedto) || isset($client->error->code) && 48 == $client->error->code) {
// Already registered
add_ping($post_ID, $pagelinkedto);
}
}
}
}
示例2: pingback
function pingback($content, $post_ID)
{
global $wp_version, $wpdb;
include_once ABSPATH . WPINC . '/class-IXR.php';
// original code by Mort (http://mort.mine.nu:8080)
$log = debug_fopen(ABSPATH . '/pingback.log', 'a');
$post_links = array();
debug_fwrite($log, 'BEGIN ' . date('YmdHis', time()) . "\n");
$pung = get_pung($post_ID);
// Variables
$ltrs = '\\w';
$gunk = '/#~:.?+=&%@!\\-';
$punc = '.:?\\-';
$any = $ltrs . $gunk . $punc;
// Step 1
// Parsing the post, external links (if any) are stored in the $post_links array
// This regexp comes straight from phpfreaks.com
// http://www.phpfreaks.com/quickcode/Extract_All_URLs_on_a_Page/15.php
preg_match_all("{\\b http : [{$any}] +? (?= [{$punc}] * [^{$any}] | \$)}x", $content, $post_links_temp);
// Debug
debug_fwrite($log, 'Post contents:');
debug_fwrite($log, $content . "\n");
// Step 2.
// Walking thru the links array
// first we get rid of links pointing to sites, not to specific files
// Example:
// http://dummy-weblog.org
// http://dummy-weblog.org/
// http://dummy-weblog.org/post.php
// We don't wanna ping first and second types, even if they have a valid <link/>
foreach ($post_links_temp[0] as $link_test) {
if (!in_array($link_test, $pung) && url_to_postid($link_test) != $post_ID && !is_local_attachment($link_test)) {
// Also, let's never ping local attachments.
$test = parse_url($link_test);
if (isset($test['query'])) {
$post_links[] = $link_test;
} elseif ($test['path'] != '/' && $test['path'] != '') {
$post_links[] = $link_test;
}
do_action('pre_ping', array(&$post_links, &$pung));
}
}
foreach ($post_links as $pagelinkedto) {
debug_fwrite($log, "Processing -- {$pagelinkedto}\n");
$pingback_server_url = discover_pingback_server_uri($pagelinkedto, 2048);
if ($pingback_server_url) {
@set_time_limit(60);
// Now, the RPC call
debug_fwrite($log, "Page Linked To: {$pagelinkedto} \n");
debug_fwrite($log, 'Page Linked From: ');
$pagelinkedfrom = get_permalink($post_ID);
debug_fwrite($log, $pagelinkedfrom . "\n");
// using a timeout of 3 seconds should be enough to cover slow servers
$client = new IXR_Client($pingback_server_url);
$client->timeout = 3;
$client->useragent .= ' -- WordPress/' . $wp_version;
// when set to true, this outputs debug messages by itself
$client->debug = false;
if ($client->query('pingback.ping', $pagelinkedfrom, $pagelinkedto)) {
add_ping($post_ID, $pagelinkedto);
} else {
debug_fwrite($log, "Error.\n Fault code: " . $client->getErrorCode() . " : " . $client->getErrorMessage() . "\n");
}
}
}
debug_fwrite($log, "\nEND: " . time() . "\n****************************\n");
debug_fclose($log);
}
示例3: process_links
/**
* Process links in content
* @global obj $wpdb DB instance
* @global obj $post Current post
* @param string $content Text containing links
* @param string (optional) $group Group to add links to (Default: none)
* @return string Content with processed links
*/
function process_links($content, $group = null)
{
//Validate
if (!is_string($content) || empty($content) || !!$this->widget_processing && !$this->options->get_bool('enabled_widget')) {
return $content;
}
//Extract links
$links = $this->get_links($content, true);
//Do not process content without links
if (empty($links)) {
return $content;
}
//Process links
$protocol = array('http://', 'https://');
$uri_home = strtolower(home_url());
$domain = str_replace($protocol, '', $uri_home);
$qv_att = 'attachment_id';
//Setup group properties
$g_props = (object) array('enabled' => $this->options->get_bool('group_links'), 'attr' => 'group', 'base' => '', 'legacy_prefix' => 'lightbox[', 'legacy_suffix' => ']');
if ($g_props->enabled) {
$g_props->base = is_scalar($group) ? trim(strval($group)) : '';
}
//Initialize content handlers
if (!$this->handlers instanceof SLB_Content_Handlers) {
$this->handlers = new SLB_Content_Handlers($this);
}
//Iterate through and activate supported links
$uri_proto = array('raw' => '', 'source' => '');
foreach ($links as $link) {
//Init vars
$pid = 0;
$link_new = $link;
$internal = false;
$q = null;
$uri = (object) $uri_proto;
$type = false;
$props_extra = array();
//Parse link attributes
$attrs = $this->util->parse_attribute_string($link_new, array('href' => ''));
//Get URI
$uri->raw = $uri->source = $attrs['href'];
//Stop processing invalid links
if (!$this->validate_uri($uri->raw) || $this->has_attribute($attrs, 'active', false)) {
continue;
}
//Check if item links to internal media (attachment)
if (0 === strpos($uri->raw, '/')) {
//Relative URIs are always internal
$internal = true;
$uri->source = $uri_home . $uri->raw;
} else {
//Absolute URI
$uri_dom = str_replace($protocol, '', strtolower($uri->raw));
if (strpos($uri_dom, $domain) === 0) {
$internal = true;
}
unset($uri_dom);
}
//Get source URI (e.g. attachments)
if ($internal && is_local_attachment($uri->source)) {
$pid = url_to_postid($uri->source);
$src = wp_get_attachment_url($pid);
if (!!$src) {
$uri->source = $src;
$props_extra['id'] = $pid;
}
unset($src);
}
/* Determine content type */
//Check if URI has already been processed
if ($this->media_item_cached($uri->source)) {
$i = $this->get_cached_media_item($uri->source);
$type = $i->type;
} else {
//Get handler match
$hdl_result = $this->handlers->match($uri->source);
if (!!$hdl_result->handler) {
$type = $hdl_result->handler->get_id();
$props_extra = $hdl_result->props;
//Updated source URI
if (isset($props_extra['uri'])) {
$uri->source = $props_extra['uri'];
unset($props_extra['uri']);
}
}
}
//Stop processing if link type not valid
if (!$type) {
//Cache
$this->validated_uris[$uri->raw] = false;
continue;
}
//.........这里部分代码省略.........
示例4: pingback
/**
* Pings back the links found in a post.
*
* @since 0.71
* @uses $wp_version
* @uses IXR_Client
*
* @param string $content Post content to check for links.
* @param int $post_ID Post ID.
*/
function pingback($content, $post_ID)
{
global $wp_version;
include_once ABSPATH . WPINC . '/class-IXR.php';
// original code by Mort (http://mort.mine.nu:8080)
$post_links = array();
$pung = get_pung($post_ID);
// Variables
$ltrs = '\\w';
$gunk = '/#~:.?+=&%@!\\-';
$punc = '.:?\\-';
$any = $ltrs . $gunk . $punc;
// Step 1
// Parsing the post, external links (if any) are stored in the $post_links array
// This regexp comes straight from phpfreaks.com
// http://www.phpfreaks.com/quickcode/Extract_All_URLs_on_a_Page/15.php
preg_match_all("{\\b http : [{$any}] +? (?= [{$punc}] * [^{$any}] | \$)}x", $content, $post_links_temp);
// Step 2.
// Walking thru the links array
// first we get rid of links pointing to sites, not to specific files
// Example:
// http://dummy-weblog.org
// http://dummy-weblog.org/
// http://dummy-weblog.org/post.php
// We don't wanna ping first and second types, even if they have a valid <link/>
foreach ((array) $post_links_temp[0] as $link_test) {
if (!in_array($link_test, $pung) && url_to_postid($link_test) != $post_ID && !is_local_attachment($link_test)) {
// Also, let's never ping local attachments.
if ($test = @parse_url($link_test)) {
if (isset($test['query'])) {
$post_links[] = $link_test;
} elseif ($test['path'] != '/' && $test['path'] != '') {
$post_links[] = $link_test;
}
}
}
}
do_action_ref_array('pre_ping', array(&$post_links, &$pung));
foreach ((array) $post_links as $pagelinkedto) {
$pingback_server_url = discover_pingback_server_uri($pagelinkedto, 2048);
if ($pingback_server_url) {
@set_time_limit(60);
// Now, the RPC call
$pagelinkedfrom = get_permalink($post_ID);
// using a timeout of 3 seconds should be enough to cover slow servers
$client = new IXR_Client($pingback_server_url);
$client->timeout = 3;
$client->useragent .= ' -- WordPress/' . $wp_version;
// when set to true, this outputs debug messages by itself
$client->debug = false;
if ($client->query('pingback.ping', $pagelinkedfrom, $pagelinkedto) || isset($client->error->code) && 48 == $client->error->code) {
// Already registered
add_ping($post_ID, $pagelinkedto);
}
}
}
}
示例5: process_links
/**
* Process links in content
* @global obj $wpdb DB instance
* @global obj $post Current post
* @param string $content Text containing links
* @param string (optional) $group Group to add links to (Default: none)
* @return string Content with processed links
*/
protected function process_links($content, $group = null)
{
// Extract links
$links = $this->get_links($content, true);
// Do not process content without links
if (empty($links)) {
return $content;
}
// Process links
static $protocol = array('http://', 'https://');
static $qv_att = 'attachment_id';
static $uri_origin = null;
if (!is_array($uri_origin)) {
$uri_parts = array_fill_keys(array('scheme', 'host', 'path'), '');
$uri_origin = wp_parse_args(parse_url(strtolower(home_url())), $uri_parts);
}
static $uri_proto = null;
if (empty($uri_proto)) {
$uri_proto = (object) array('raw' => '', 'source' => '', 'parts' => '');
}
$uri_parts_required = array('host' => '');
// Setup group properties
$g_props = (object) array('enabled' => $this->options->get_bool('group_links'), 'attr' => 'group', 'base' => '', 'legacy_prefix' => 'lightbox[', 'legacy_suffix' => ']');
if ($g_props->enabled) {
$g_props->base = is_scalar($group) ? trim(strval($group)) : '';
}
// Initialize content handlers
if (!$this->handlers instanceof SLB_Content_Handlers) {
$this->handlers = new SLB_Content_Handlers($this);
}
// Iterate through and activate supported links
foreach ($links as $link) {
// Init vars
$pid = 0;
$link_new = $link;
$uri = clone $uri_proto;
$type = false;
$props_extra = array();
$key = null;
$internal = false;
// Parse link attributes
$attrs = $this->util->parse_attribute_string($link_new, array('href' => ''));
// Get URI
$uri->raw = $attrs['href'];
// Stop processing invalid links
if (!$this->validate_uri($uri->raw) || $this->has_attribute($attrs, 'active', false)) {
continue;
}
// Normalize URI (make absolute)
$uri->source = WP_HTTP::make_absolute_url($uri->raw, $uri_origin['scheme'] . '://' . $uri_origin['host']);
// URI cached?
$key = $this->get_media_item_id($uri->source);
// Internal URI? (e.g. attachments)
if (!$key) {
$uri->parts = array_merge($uri_parts_required, (array) parse_url($uri->source));
$internal = $uri->parts['host'] === $uri_origin['host'] ? true : false;
// Attachment?
if ($internal && is_local_attachment($uri->source)) {
$pid = url_to_postid($uri->source);
$src = wp_get_attachment_url($pid);
if (!!$src) {
$uri->source = $src;
$props_extra['id'] = $pid;
// Check cache for attachment source URI
$key = $this->get_media_item_id($uri->source);
}
unset($src);
}
}
// Determine content type
if (!$key) {
// Get handler match
$hdl_result = $this->handlers->match($uri->source);
if (!!$hdl_result->handler) {
$type = $hdl_result->handler->get_id();
$props_extra = $hdl_result->props;
// Updated source URI
if (isset($props_extra['uri'])) {
$uri->source = $props_extra['uri'];
unset($props_extra['uri']);
}
}
// Cache valid item
if (!!$type) {
$key = $this->cache_media_item($uri, $type, $internal, $props_extra);
}
}
// Stop processing invalid links
if (!$key) {
// Cache invalid URI
$this->validated_uris[$uri->source] = false;
if ($uri->raw !== $uri->source) {
//.........这里部分代码省略.........