WP_Terms_List_Table::handle_row_actions( WP_Term $item, string $column_name, string $primary ): string

Generates and displays row action links.


Parameters

$item WP_Term Required
Tag being acted upon.
$column_name string Required
Current column name.
$primary string Required
Primary column name.

Top ↑

Return

string Row actions output for terms, or an empty string if the current column is not the primary column.


Top ↑

Source

File: wp-admin/includes/class-wp-terms-list-table.php. View all references

protected function handle_row_actions( $item, $column_name, $primary ) {
	if ( $primary !== $column_name ) {
		return '';
	}

	// Restores the more descriptive, specific name for use within this method.
	$tag      = $item;
	$taxonomy = $this->screen->taxonomy;
	$uri      = wp_doing_ajax() ? wp_get_referer() : $_SERVER['REQUEST_URI'];

	$edit_link = add_query_arg(
		'wp_http_referer',
		urlencode( wp_unslash( $uri ) ),
		get_edit_term_link( $tag, $taxonomy, $this->screen->post_type )
	);

	$actions = array();

	if ( current_user_can( 'edit_term', $tag->term_id ) ) {
		$actions['edit'] = sprintf(
			'<a href="%s" aria-label="%s">%s</a>',
			esc_url( $edit_link ),
			/* translators: %s: Taxonomy term name. */
			esc_attr( sprintf( __( 'Edit &#8220;%s&#8221;' ), $tag->name ) ),
			__( 'Edit' )
		);
		$actions['inline hide-if-no-js'] = sprintf(
			'<button type="button" class="button-link editinline" aria-label="%s" aria-expanded="false">%s</button>',
			/* translators: %s: Taxonomy term name. */
			esc_attr( sprintf( __( 'Quick edit &#8220;%s&#8221; inline' ), $tag->name ) ),
			__( 'Quick&nbsp;Edit' )
		);
	}

	if ( current_user_can( 'delete_term', $tag->term_id ) ) {
		$actions['delete'] = sprintf(
			'<a href="%s" class="delete-tag aria-button-if-js" aria-label="%s">%s</a>',
			wp_nonce_url( "edit-tags.php?action=delete&amp;taxonomy=$taxonomy&amp;tag_ID=$tag->term_id", 'delete-tag_' . $tag->term_id ),
			/* translators: %s: Taxonomy term name. */
			esc_attr( sprintf( __( 'Delete &#8220;%s&#8221;' ), $tag->name ) ),
			__( 'Delete' )
		);
	}

	if ( is_term_publicly_viewable( $tag ) ) {
		$actions['view'] = sprintf(
			'<a href="%s" aria-label="%s">%s</a>',
			get_term_link( $tag ),
			/* translators: %s: Taxonomy term name. */
			esc_attr( sprintf( __( 'View &#8220;%s&#8221; archive' ), $tag->name ) ),
			__( 'View' )
		);
	}

	/**
	 * Filters the action links displayed for each term in the Tags list table.
	 *
	 * @since 2.8.0
	 * @since 3.0.0 Deprecated in favor of {@see '{$taxonomy}_row_actions'} filter.
	 * @since 5.4.2 Restored (un-deprecated).
	 *
	 * @param string[] $actions An array of action links to be displayed. Default
	 *                          'Edit', 'Quick Edit', 'Delete', and 'View'.
	 * @param WP_Term  $tag     Term object.
	 */
	$actions = apply_filters( 'tag_row_actions', $actions, $tag );

	/**
	 * Filters the action links displayed for each term in the terms list table.
	 *
	 * The dynamic portion of the hook name, `$taxonomy`, refers to the taxonomy slug.
	 *
	 * Possible hook names include:
	 *
	 *  - `category_row_actions`
	 *  - `post_tag_row_actions`
	 *
	 * @since 3.0.0
	 *
	 * @param string[] $actions An array of action links to be displayed. Default
	 *                          'Edit', 'Quick Edit', 'Delete', and 'View'.
	 * @param WP_Term  $tag     Term object.
	 */
	$actions = apply_filters( "{$taxonomy}_row_actions", $actions, $tag );

	return $this->row_actions( $actions );
}

Top ↑

Hooks



Top ↑

Changelog

Changelog
Version Description
5.9.0 Renamed $tag to $item to match parent class for PHP 8 named parameter support.
4.3.0 Introduced.

Top ↑

User Contributed Notes

You must log in before being able to contribute a note or feedback.