Почему add_post_meta создает повторяющиеся записи - PullRequest
0 голосов
/ 08 февраля 2011

У меня есть небольшой плагин для добавления настраиваемого поля с определенным форматом к сообщению.Это работает, но по какой-то причине создает дубликаты записей в БД, когда пользователь нажимает кнопку «обновить сообщение».

Часть, ответственная за сохранение метаданных, находится здесь

function saveCustomLink($post){

    $linkLabel = $_POST['custom-link-label'];
    $linkText = $_POST['custom-link-text'];
    $linkUrl = $_POST['custom-link-url'];

    if($linkLabel != "" AND $linkText != ""):

        $newLink = ($linkUrl != "") ? "$linkLabel: <a href='$linkUrl' title='$linkText'>$linkText</a>" : $linkLabel . ": " . $linkText ;
        add_post_meta($post, "custom-meta-link", $newLink);

    endif;

}

add_action('save_post', 'saveCustomLink');

Здесь есть вставка полного кода

Я использую последнюю версию WordPress (3.0.5).Большое спасибо за любую помощь.

1 Ответ

0 голосов
/ 08 февраля 2011

Попробуйте это:

   if ($post->post_type=="post") { 
       if($linkLabel != "" AND $linkText != ""):                           
            $newLink = ($linkUrl != "") ? "$linkLabel: <a href='$linkUrl' title='$linkText'>$linkText</a>" : $linkLabel . ": " . $linkText ;
            add_post_meta($post, "custom-meta-link", $newLink);       
    endif;
   }

Вы должны проверить, что вы работаете с публикацией (или страницей), а не с ревизией или вложением (ревизии являются публикацией с post_type = revision)

...