Как сцепиться в publish_posttype?

Я пытаюсь сцепиться в WordPress, публикуют. Код ниже - то, что я использую, но это, кажется, не работает. У меня есть он в сменном файле, который я деактивирую/повторно активирую каждый раз, когда я вношу изменения (не уверенный, если это необходимо сделать это хотя). Тип сообщения является "аукционом".

add_action( 'publish_auction', 'bvf_set_ceiling_once_on_first_publish' );

function bvf_set_ceiling_once_on_first_publish( $post ) {

    $post_id = $post->ID;

    if ( !get_post_meta( $post_id, 'ceiling', $single = true ) ) {

    $reserve = get_post_meta( $post_id, 'reserve', $single = true );

    $ceiling = $reserve * (rand(40,60) / 100);

    update_post_meta( $post_id, 'ceiling', $ceiling );

    }
}

Теперь я пробую следующий (01/16/13):

<?php
/**
 * @package Bids_Views
 * @version 0.0.1
 */
/*
Plugin Name: Bids/Views
Description: None
Author: Jerry T.    
Version: 0.0.1
*/

add_action('publish_post', 'bvf_set_ceiling');
function bvf_set_ceiling( $post_id ) {

$post = get_post($post_id);

$reserve = get_post_meta( $post_id, 'reserve', true );

$ceiling = $reserve * (rand(40,60) / 100);

update_post_meta( $post_id, 'ceiling', $ceiling );

}

?>
0
16.01.2013, 19:06
3 ответа

функция выглядит хорошо, $single = true мог бы вызывать Вашу проблему, заменить его true

0
20.02.2020, 01:47
  • 1
    Дал этому попытку, никакое изменение. –  Jerry Tunin 14.01.2013, 22:57
  • 2
    Просто замеченный, я не думаю publish_{post_type} принимает args, попробуйте путем объявления global $post;. –  diggy 14.01.2013, 23:01

Функция может использовать в качестве параметра идентификатор сообщения, не массив или объект. Проверьте это с 'var_dump ($post); выход'; в первой строке Вашей функции.

Можно также использовать рычаг по умолчанию. Небольшой пример, но непротестированный, пишет с нуля по мобильному телефону.

add_action('publish_post', 'my-function-on-publish');
function my-function-on-publish( $post_id ) {

    $post = get_post($post_id);

    if ('auction' === $post->post_type ) {
        //My function
    }
}
0
20.02.2020, 01:47
  • 1
    Возможно, я делаю что-то не так здесь. У меня создалось впечатление, что в основном я мог бросить это в сменный файл и активировать это. Код, который я просто попытался видеть, работал ли он вообще, выше. –  Jerry Tunin 16.01.2013, 19:02
  • 2
    Нет, Ваш прямо здесь. И да, можно бросить это в плагин, и он должен работать. –  bueltge 16.01.2013, 20:49
  • 3
    Все еще никакие не идут, никакие предложения на поиске и устранении неисправностей? –  Jerry Tunin 17.01.2013, 17:36
  • 4
    делает Вы произвели через var_dump () в условном выражении, это продолжает работать, сохраняют весь тип сообщения и условную проверку на Ваш тип сообщения и обновление как пример метаданные сообщения. –  bueltge 18.01.2013, 21:40

Это вызвано тем, что то, когда Вы публикуете сообщение и 'publish_post', называют, сообщение meta еще не сохраняется в базе данных. update_post_meta () (функция, которая сохраняет сообщение meta в базе данных) называют после 'publish_post'.

Посмотрите работу здесь: Как получить доступ к сообщению meta сообщения, которое было просто опубликовано?

0
20.02.2020, 01:47

Теги

Похожие вопросы