当前位置: 首页>>代码示例>>PHP>>正文


PHP add_ping函数代码示例

本文整理汇总了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));
 }
开发者ID:aaemnnosttv,项目名称:develop.git.wordpress.org,代码行数:7,代码来源:pings.php

示例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);
            }
        }
    }
}
开发者ID:hadywisam,项目名称:WordPress,代码行数:83,代码来源:comment-functions.php

示例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);
}
开发者ID:robertlange81,项目名称:Website,代码行数:68,代码来源:comment-functions.php

示例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);
            }
        }
    }
}
开发者ID:SymbiSoft,项目名称:litprojects,代码行数:67,代码来源:comment.php

示例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);
         }
     }
 }
开发者ID:petermolnar,项目名称:wordpress-webmention,代码行数:44,代码来源:webmention.php

示例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;
开发者ID:hscale,项目名称:webento,代码行数:31,代码来源:rpx_sharePost.php


注:本文中的add_ping函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。