2014-01-21 26 views
0

我使用以下get_post_meta功能,但它沒有顯示任何值,則顯示空白結果爲什麼不是get_post_meta工作?

$meta_values = get_post_meta($post_id, 'salary', true); 

我能夠看到.I AM在使用它在一個插件存在於phpmyadmin的值行動(save_post,sftoproject),但它顯示我的代碼中的任何值。

這裏是我的代碼

add_action('save_post','user_sf_project'); 
function user_sf_project($post_id){ 
$SOAP_CLIENT_BASEDIR = plugin_dir_path(__FILE__).'Force.com-Toolkit-for-PHP/soapclient/'; 
require_once ($SOAP_CLIENT_BASEDIR.'/SforcePartnerClient.php'); 
require_once ($SOAP_CLIENT_BASEDIR.'/SforceHeaderOptions.php'); 
require_once ('Force.com-Toolkit-for-PHP/Samples/userAuth.php'); 

try { 
    $mySforceConnection = new SforcePartnerClient(); 
    $mySoapClient = $mySforceConnection->createConnection($SOAP_CLIENT_BASEDIR.'/partner.wsdl.xml'); 
    $mylogin = $mySforceConnection->login("username", "password"); 

    $postdata = get_post($post_id); 
    $meta_values = get_post_meta($post_id, 'salary', true); 
    $fields = array (
    'Name' => $post_id, 
    'First_Name__c' => $postdata->post_title, 
    'Salary__c' => $meta_values, 
); 

    $sObject = new SObject(); 
    $sObject->fields = $fields; 
    $sObject->type = 'NewObject__c'; 

    $createResponse = $mySforceConnection->create(array($sObject)); 

    print_r($createResponse); 

    $ids = array(); 
    foreach ($createResponse as $createResult) { 
    print_r($createResult); 
    array_push($ids, $createResult->id); 
    } 

} catch (Exception $e) { 
echo $mySforceConnection->getLastRequest(); 
echo $e->faultstring; 
} 
+0

你檢查你設置一個有效的$ POST_ID? (如果它不是全局變量,則可能無法訪問) – Minister

+0

如果您試圖訪問的內容類型是自定義的或者不是您可以請讓我們知道嗎?來自文檔:它是get_metadata('post')的包裝。要返回所有的自定義字段,請參閱get_post_custom()。 – Minister

+0

我檢查了它,它是正確的。我得到了get_post($ post_id)的結果,但不是get_post_meta($ post_id,'salary',true) – Himanshu

回答

0

WP docs

這是get_metadata的包裝( '後')。要返回所有自定義 字段,請參閱get_post_custom()。

您必須使用自定義文章類型get_post_custom()函數(不get_post_meta),但我強烈建議你總是使用get_metadata代替get_post_meta()和get_post_custom(),以避免簡單的問題...

舉例get_metadata():

get_metadata('your_custom_post_type', $post_id, 'salary', true) 
+0

我用了get_metadata,它也不能正常工作 $ meta_values = get_metadata('post',$ post_id,'salary',true); – Himanshu

+0

是的,用您的自定義帖子類型名稱替換'帖子'(第一個參數)! – Minister

+0

對不起,我錯了,因爲我是新的WordPress我完全誤解了你的問題。我的post_type只是'post'。 – Himanshu