WordPress.org

Make WordPress Core

Opened 5 years ago

Closed 5 years ago

#8827 closed enhancement (fixed)

Add 'app_create_post' and 'app_put_post' hooks in Atompub backend.

Reported by: znarfor Owned by:
Milestone: 2.8 Priority: normal
Severity: normal Version: 2.7
Component: General Keywords: has-patch
Focuses: Cc:

Description

wp-app.php is not extensible at the moment, by adding this hooks, a plugin may be able to do some extra processing once a post is updated or created.

Use case: an Atom client may use an extension not supported in Wordpress core. With this patch, we may be able to support it through a plugin. Sample plugin code following.

function app_handle_license($post_ID, $entry)
{
	foreach ($entry->links as $link) {
		if ($link['rel'] == 'license') {
			update_post_meta($post_ID, 'license', $link['href']);
		}
	}
}

add_action('app_create_post', 'bm_app_handle_post', 10, /* 2 arguments */ 2);

add_action('app_put_post', 'bm_app_handle_post', 10, /* 2 arguments */ 2);

Attachments (2)

wp-app-post-hooks.diff (673 bytes) - added by znarfor 5 years ago.
wp-app.php.diff (688 bytes) - added by josephscott 5 years ago.

Download all attachments as: .zip

Change History (6)

znarfor5 years ago

comment:1 znarfor5 years ago

Typo, it should be

add_action('app_create_post', 'app_handle_license', 10, /* 2 arguments */ 2);
add_action('app_put_post', 'app_handle_license', 10, /* 2 arguments */ 2);

comment:2 znarfor5 years ago

  • Keywords has-patch added

josephscott5 years ago

comment:3 josephscott5 years ago

New version of the patch:

  • small WP coding style changes
  • change names to prefixed with 'atompub_*' instead of 'app_*' (AtomPub has replaced APP as the standard name for AtomPub)
  • moved the atompub_put_post action below the post update error check.

comment:4 westi5 years ago

  • Resolution set to fixed
  • Status changed from new to closed

(In [10750]) Add hooks to allow plugins to extend AtomPub support. Fixes #8827 props znarfor and josephscott.

Note: See TracTickets for help on using tickets.