get_edit_post_linkхук-фильтрWP 2.3.0

Позволяет изменить ссылку на редактирование записи.

Использование

add_filter( 'get_edit_post_link', 'wp_kama_get_edit_post_link_filter', 10, 3 );

/**
 * Function for `get_edit_post_link` filter-hook.
 * 
 * @param string $link    The edit link.
 * @param int    $post_id Post ID.
 * @param string $context The link context. If set to 'display' then ampersands are encoded.
 *
 * @return string
 */
function wp_kama_get_edit_post_link_filter( $link, $post_id, $context ){

	// filter...
	return $link;
}
$link(строка)
Ссылка на редактирование записи.
$post_id(int)
ID записи.
$context(строка)
В каком контексте запрашивается ссылка. Если указано display, то амперсанды будут закодированы.

Примеры

0

#1 Изменим ссылку на редактирование записи

Пусть у нас во фронте (лицевой части сайта) есть форма с добавлением и редактированием типа записи "Эвакуатор". По дефолту мы можем такие записи редактировать и в админке, но чтобы всю логику работы сосредоточить только в одном месте, подменим ссылки редактирования в админке на те, что ведут во фронт:

add_filter( 'get_edit_post_link', 'change_post_edit_url', 11, 2 );

function change_post_edit_url( $link, $post_id ) {

	if ( get_post_type( $post_id ) === 'evacuator' ) {
		return home_url( '/evacuator-adv/?eap=' . $post_id );
	}

	return $link;
}
Теперь при нажатии "Редактировать" откроется не форма в админке, а наша форма во фронте.

Список изменений

С версии 2.3.0 Введена.

Где вызывается хук

get_edit_post_link()
get_edit_post_link
wp-includes/link-template.php 1499
return apply_filters( 'get_edit_post_link', $link, $post->ID, $context );

Где используется хук в WordPress

wp-includes/class-wp-customize-manager.php 1945
add_filter( 'get_edit_post_link', '__return_empty_string' );