adding delete mention support, this time it's actually working
This commit is contained in:
parent
3104f05805
commit
3ed6606fab
2 changed files with 22 additions and 8 deletions
21
sender.php
21
sender.php
|
@ -120,7 +120,8 @@ class WP_Webmention_Again_Sender extends WP_Webmention_Again {
|
||||||
}
|
}
|
||||||
|
|
||||||
// send delete messages when trashed
|
// send delete messages when trashed
|
||||||
if ( 'publish' != $new_status || 'trash' != $new_status ) {
|
if ( 'publish' != $new_status && 'trash' != $new_status ) {
|
||||||
|
static::debug( "Ignoring post; neither published nor trashed" );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -132,6 +133,9 @@ class WP_Webmention_Again_Sender extends WP_Webmention_Again {
|
||||||
// try to avoid redirects, so no shortlink is sent for now as source
|
// try to avoid redirects, so no shortlink is sent for now as source
|
||||||
$source = get_permalink( $post->ID );
|
$source = get_permalink( $post->ID );
|
||||||
|
|
||||||
|
if ( 'trash' == $new_status )
|
||||||
|
$source = str_replace( '__trashed', '', $source );
|
||||||
|
|
||||||
// process the content as if it was the_content()
|
// process the content as if it was the_content()
|
||||||
$content = static::get_the_content( $post );
|
$content = static::get_the_content( $post );
|
||||||
|
|
||||||
|
@ -223,7 +227,7 @@ class WP_Webmention_Again_Sender extends WP_Webmention_Again {
|
||||||
$s = static::send( $send->source, $send->target );
|
$s = static::send( $send->source, $send->target );
|
||||||
|
|
||||||
if ( false == $s ) {
|
if ( false == $s ) {
|
||||||
static::debug( " sending failed: ", 5);
|
static::debug( " sending failed", 5);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
static::debug( " sending succeeded!", 5);
|
static::debug( " sending succeeded!", 5);
|
||||||
|
@ -251,18 +255,23 @@ class WP_Webmention_Again_Sender extends WP_Webmention_Again {
|
||||||
if ( isset( $options['disable_selfpings_same_url'] ) &&
|
if ( isset( $options['disable_selfpings_same_url'] ) &&
|
||||||
$options['disable_selfpings_same_url'] == '1' &&
|
$options['disable_selfpings_same_url'] == '1' &&
|
||||||
$source === $target
|
$source === $target
|
||||||
)
|
) {
|
||||||
return false;
|
static::debug("Refusing to selfping the same url", 6);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// stop selfpings on the same domain
|
// stop selfpings on the same domain
|
||||||
if ( isset( $options['disable_selfpings_same_domain'] ) &&
|
if ( isset( $options['disable_selfpings_same_domain'] ) &&
|
||||||
$options['disable_selfpings_same_domain'] == '1' &&
|
$options['disable_selfpings_same_domain'] == '1' &&
|
||||||
parse_url( $source, PHP_URL_HOST ) == parse_url( $target, PHP_URL_HOST )
|
parse_url( $source, PHP_URL_HOST ) == parse_url( $target, PHP_URL_HOST )
|
||||||
)
|
) {
|
||||||
return false;
|
static::debug("Refusing to selfping the self domain", 6);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// discover the webmention endpoint
|
// discover the webmention endpoint
|
||||||
$webmention_server_url = static::discover_endpoint( $target );
|
$webmention_server_url = static::discover_endpoint( $target );
|
||||||
|
static::debug("Endpoint discovered as: {$webmention_server_url}", 6);
|
||||||
|
|
||||||
// if I can't find an endpoint, perhaps you can!
|
// if I can't find an endpoint, perhaps you can!
|
||||||
$webmention_server_url = apply_filters( 'webmention_server_url', $webmention_server_url, $target );
|
$webmention_server_url = apply_filters( 'webmention_server_url', $webmention_server_url, $target );
|
||||||
|
|
|
@ -93,14 +93,19 @@ class WP_Webmention_Again {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function lookfordeleted() {
|
public static function lookfordeleted() {
|
||||||
$url = substr( rtrim( ltrim( $_SERVER['REQUEST_URI'], '/' ), '/' ), 0, 191 ) . '__trashed';
|
$url = substr( trim( $_SERVER['REQUEST_URI'], '/' ), 0, 191 );
|
||||||
|
|
||||||
|
if ( empty($url) )
|
||||||
|
return false;
|
||||||
|
|
||||||
$query = new WP_Query( array (
|
$query = new WP_Query( array (
|
||||||
'name' => $url,
|
'name' => $url . '__trashed',
|
||||||
'post_status' => 'trash',
|
'post_status' => 'trash',
|
||||||
'post_type' => 'any'
|
'post_type' => 'any'
|
||||||
));
|
));
|
||||||
|
|
||||||
if ( ! empty( $query->posts ) && $query->is_singular ) {
|
if ( ! empty( $query->posts ) && $query->is_singular ) {
|
||||||
|
static::debug("Found deleted post for {$url}");
|
||||||
status_header(410);
|
status_header(410);
|
||||||
nocache_headers();
|
nocache_headers();
|
||||||
die('This post was removed.');
|
die('This post was removed.');
|
||||||
|
|
Loading…
Reference in a new issue