获取帖子元 WordPress 在插件中不起作用

问题描述 投票:0回答:3

编辑:更多代码。

问题:我想获取帖子的帖子元。它适用于 update_post 的情况,但不适用于 new_post,我只是不明白为什么..

这是案例的功能:

    function userpro_sc_new_post( $new_status, $old_status, $post ) {
    global $userpro_social;
    $exclude = userpro_sc_get_option('excluded_post_types');
    if ($exclude != ''){
        $exclude_types = explode(',',$exclude);
    } else {
        $exclude_types = array('nav_menu_item');
    }
    if (!in_array($post->post_type, $exclude_types )) {
        // new post
        if ( $new_status == 'publish' && $old_status != 'publish' ) {
            $user = get_userdata($post->post_author);
            $userpro_social->log_action( 'new_post', $user->ID, $post->ID, $post->post_title, $post->post_type );
        }
        // updated post
        if ($new_status == 'publish' && $old_status == 'publish' ){
            $user = get_userdata($post->post_author);
            $userpro_social->log_action( 'update_post', $user->ID, $post->ID, $post->post_title, $post->post_type );
        }
    }
}

这是在这种情况下运行的代码:

function log_action($action, $user_id, $var1=null, $var2=null, $var3=null) {
    global $userpro, $userpro_social;
    $activity = get_option('userpro_activity');
    $timestamp = current_time('timestamp');

    $status = '';

    switch($action){


        case 'new_post':
            $myId = get_post_meta(get_the_ID(), 'wpex_post_video_oembed', true);
            $status .= $myId;

            break;

        case 'update_post':
            $myId = get_post_meta(get_the_ID(), 'wpex_post_video_oembed', true);
            $status .= $myId;
            break;

            }

就像我说的,update_post 可以工作,这样我就可以看到 ID...new_post 不起作用。为什么?

我简化了代码运行了一下,但仍然是同样的问题。

请帮忙!

php wordpress custom-fields
3个回答
1
投票

在插件中使用

get_post_meta()
之前,您必须了解三件事。

  1. 您必须将全局变量声明为全局变量(如果有)(例如:
    $wpdb
    )。
  2. 您必须在 $post_id 中获取帖子数据(例如:
    $post_id = $_POST['postid'];
    )。
  3. 根据需要更新自定义字段值(例如:
    update_post_meta($post_ID, 'video_id', true);
    )。

以上任何一个都可能是您的问题。请参考并尝试。


0
投票
global $post;
$avriable_name=get_post_meta($post->ID, 'video_id', true);

尝试上面的代码,全局帖子将有助于获取帖子的 id。如果你没有贴花它 $post->ID 将是空白的,其余的将不起作用。

如果您需要进一步帮助,请告诉我。


0
投票

试试这个:

$myId = (get_post_meta(get_the_ID(), 'wpex_post_video_oembed',true));
© www.soinside.com 2019 - 2024. All rights reserved.