本文整理汇总了PHP中add_ping函数的典型用法代码示例。如果您正苦于以下问题:PHP add_ping函数的具体用法?PHP add_ping怎么用?PHP add_ping使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了add_ping函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: test_add_ping_with_post_object
public function test_add_ping_with_post_object()
{
$post_id = self::factory()->post->create();
$post = get_post($post_id);
add_ping($post, 'foo');
$this->assertSame(array('foo'), get_pung($post_id));
}
示例2: 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);
}
}
}
}
示例3: 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);
}
示例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: send_webmentions
/**
* Send WebMentions if new Post was saved
*
* You can still hook this function directly into the `publish_post` action:
*
* <code>
* add_action('publish_post', array('WebMentionPlugin', 'send_webmentions'));
* </code>
*
* @param int $post_ID the post_ID
*/
public static function send_webmentions($post_ID)
{
// get source url
$source = get_permalink($post_ID);
// get post
$post = get_post($post_ID);
// initialize links array
$links = array();
// Find all external links in the source
if (preg_match_all('/<a[^>]+href=.(https?:\\/\\/[^\'\\"]+)/i', $post->post_content, $matches)) {
$links = $matches[1];
}
// filter links
$targets = apply_filters('webmention_links', $links, $post_ID);
$targets = array_unique($targets);
foreach ($targets as $target) {
// send webmention
$response = self::send_webmention($source, $target, $post_ID);
// check response
if (!is_wp_error($response) && wp_remote_retrieve_response_code($response) < 400) {
$pung = get_pung($post_ID);
// if not already added to punged urls
if (!in_array($target, $pung)) {
// tell the pingback function not to ping these links again
add_ping($post_ID, $target);
}
}
// rescedule if server responds with a http error 5xx
if (wp_remote_retrieve_response_code($response) >= 500) {
self::reschedule($post_ID);
}
}
}
示例6: add_post_meta
add_post_meta($rpx_post_id, RPX_POST_META_COUNTS, $rpx_share_count_init, true);
$rpx_share_counts = get_post_meta($rpx_post_id, RPX_POST_META_COUNTS, true);
if (!empty($rpx_share_counts)) {
$rpx_share_counts[$rpx_provider_name] = $rpx_share_counts[$rpx_provider_name] + 1;
$rpx_update_counts = update_post_meta($rpx_post_id, RPX_POST_META_COUNTS, $rpx_share_counts);
if ($rpx_update_counts !== true) {
$rpx_sharepost_stat = 'fail';
$rpx_error = 'post meta update failure';
}
} else {
$rpx_sharepost_stat = 'fail';
$rpx_error = 'add post meta failure';
}
}
/*
* Add pingback URL to post.
*/
if ($rpx_sharepost_stat == 'ok') {
$rpx_ping = add_ping($rpx_post_id, $rpx_share_url);
if ($rpx_ping < 1) {
$rpx_sharepost_stat = 'fail';
$rpx_error = 'add pingback failure';
}
}
if (!empty($rpx_error)) {
$rpx_sharepost['error'] = $rpx_error;
}
$rpx_sharepost['stat'] = $rpx_sharepost_stat;
$rpx_sharepost_json = json_encode($rpx_sharepost);
ob_end_clean();
echo $rpx_sharepost_json;