get_edit_post_link

Получает ссылку (URL) на редактирование записи в админ-панели.

Может быть использована как внутри, так и снаружи Цикла WP. Работает для всех видов записей: посты, страницы, вложения, ревизии и произвольные типы записей.

✈ 1 раз = 0.000344с = быстро | 50000 раз = 0.95с = очень быстро PHP 7.0.8, WP 4.6.1
Хуки из функции:
get_edit_post_link
Возвращает

Строку. URL на редактирование записи в админ-панели.

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

get_edit_post_link( $id, $context );

Шаблон использования

echo '<a href="' . get_edit_post_link() . '">Изменить</a>';
$id(число/объект)
ID или объект записи, ссылку на редактирование которой нам нужно получить.
По умолчанию: нет
$context(строка)
display означает, что амперсанд (&) будет преобразован в &amp;. Укажите , чтобы не изменять амперсанд.
По умолчанию: ‘display’

Примеры

#1. Пример работы get_edit_post_link()

echo get_edit_post_link( 1 );

// вернет: http://site.ru/wp-admin/post.php?post=1&amp;action=edit

#2. Выведем готовую ссылку

echo '<a href="' . get_edit_post_link(1) . '">Изменить</a>';

#3. Выведем ссылку, только если у пользователя есть достаточные для редактирования постов права

if( current_user_can( 'edit_posts' ) ) {
	echo '<a href="'. get_edit_post_link(1) .'">Изменить</a>';
}

Код из


wp-includes/link-template.php

WP 4.7.2

<?php
function get_edit_post_link( $id = 0, $context = 'display' ) {
	if ( ! $post = get_post( $id ) )
		return;

	if ( 'revision' === $post->post_type )
		$action = '';
	elseif ( 'display' == $context )
		$action = '&amp;action=edit';
	else
		$action = '&action=edit';

	$post_type_object = get_post_type_object( $post->post_type );
	if ( !$post_type_object )
		return;

	if ( !current_user_can( 'edit_post', $post->ID ) )
		return;

	if ( $post_type_object->_edit_link ) {
		$link = admin_url( sprintf( $post_type_object->_edit_link . $action, $post->ID ) );
	} else {
		$link = '';
	}

	/**
	 * Filters the post edit link.
	 *
	 * @since 2.3.0
	 *
	 * @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 apply_filters( 'get_edit_post_link', $link, $post->ID, $context );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *