2017-02-27 63 views
0

我試圖在屏幕上顯示帖子的元數據中編輯字段。Wordpress掛鉤在顯示帖子編輯頁面之前編輯帖子元數據

我一直在尋找'load-post.php'鉤子,但這是在帖子加載前調用的(如果我已經正確理解),所以帖子id和元數據爲空。 我試過其他的鉤子,但是我一直無法完成這項工作。

下面的帖子元字段在編輯頁面上顯示之前需要進行更改。

$post_price = get_post_meta(get_the_ID(), 'price', TRUE);

例如:數據庫中的價格= 10,但我希望它在價格= 15時顯示在帖子編輯頁面上。

任何鏈接,提示和想法,非常感謝。 :)

編輯:
我目前的解決方案:

add_action('load-post.php','calculate_price'); 
function calculate_price(){ 
    $post_id = $_GET['post']; 
    //get price from post by post_id and do stuff 
} 

這是正確的方法是什麼?

回答

0

編輯:好吧我以爲你只需要與郵編ID一起工作。如果您需要更改後對象(已從db加載並準備打印),則可以使用'the_post'代替。因爲你只需要訪問帖子ID,我會做這樣的事情:

function my_the_post_action($post) { 
    $screen = get_current_screen(); 
    if(is_admin() && $screen->parent_base == 'edit' && get_post_type() == 'product') { 
     $post_id = $post->ID; 
     $price = (int) get_post_meta($post_id, 'price', true); 
     update_post_meta($post_id, 'price', $price + 5); 
    } 
} 
add_action('the_post', 'my_the_post_action'); 

這一部分:

get_post_type()== '產品'

是沒有必要的,但是您應該確定要運行這段代碼的帖子類型(基於帖子類型,類別,metafield等)。沒有它,每次都會在管理查詢中執行。此代碼未經測試,如果出現錯誤,請隨時舉報。

+0

感謝您的回覆,但是這個鉤子不允許您更改查詢嗎?我不需要更改查詢,我需要一個允許我從查詢結果中更改數據的鉤子。 – aboeka

+0

謝謝,看起來我的解決方案更好,但'the_post'似乎被忽略。有任何想法嗎? add_action在類中的構造函數中。我非常喜歡鉤子和wordpress。 – aboeka

+0

嘗試在課程外的主題functions.php中使用此片段。那麼如果什麼都沒有發生,把回聲'作品';在my_the_post_action開始的時候確定沒有事情發生。在管理區附近觀看源代碼,可能隱藏了'作品'。 – keyBeatz

相關問題