2010-04-03 49 views
2

我爲自己的主題添加了一個自定義的「save_post」動作(代碼如下)。但是,當我將圖像或視頻代碼放入帖子中時,它會被剝離。唯一可以讓它留下來的方法是將add_action行註釋掉。爲了保持所有發佈信息的完整性,我需要做些什麼?自定義add_action('save_post')導致html標記消失!

add_action('save_post', 'custom_add_save'); 

function custom_add_save($postID){ 
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { 
     return $postID; 
    } 
    else 
    { 
     // called after a post or page is saved 
     if($parent_id = wp_is_post_revision($postID)) 
     { 
     $postID = $parent_id; 
     } 

     if ($_POST['my_customHeader']) 
     { 
      update_custom_meta($postID, $_POST['my_customHeader'], 'my_customHeader'); 
     } 
     else 
     { 
      update_custom_meta($postID, '', 'my_customHeader'); 
     } 
     if ($_POST['my_customTitle']) 
     { 
      update_custom_meta($postID, $_POST['my_customTitle'], 'my_customTitle'); 
     } 
     else 
     { 
      update_custom_meta($postID, '', 'my_customTitle'); 
     } 
    } 
} 

function update_custom_meta($postID, $newvalue, $field_name) { 
    // To create new meta 
    if(!get_post_meta($postID, $field_name)){ 
    add_post_meta($postID, $field_name, $newvalue); 
    }else{ 
    // or to update existing meta 
    update_post_meta($postID, $field_name, $newvalue); 
    } 
} 
+0

你是什麼意思「我可以讓它留下來的唯一方法是註釋掉add_action行。 「 ? 我很困惑 – justjoe 2010-04-05 07:46:25

回答

0

我不完全很精通與相關節約職位WordPress的掛鉤,而是根據單獨的PHP,我看到的是,當它處理你的custom_add_save()功能沒有返回的帖子ID手動保存(即,當您單擊Wordpress用戶界面上的保存草稿/發佈按鈕時)。

雖然它肯定會在自動保存過程中返回帖子ID(按照您輸入custom_add_save的第一個代碼塊)。

也許你想看看。 :)

0

你還需要添加一個隨機數值,以防止併發

添加一個隱藏的輸入您的形式:

<input type="hidden" name="customCategory_noncename" id="customCategory_noncename" value="<?= wp_create_nonce('customCategory'); ?>" /> 

,並添加到您節省代碼

// verify this with nonce because save_post can be triggered at other times 
    if (!wp_verify_nonce($_POST['_noncename'], 'my_customHeader')) return $post_id; 

同樣默認情況下,我認爲wordpress會在編輯器中刪除html格式,以支持自己的'智能'html標記