0

投稿を作成するときに使用からの追加情報を必要とするプラグインを作成しています。小数を含む数値を入力するテキスト ボックスと、いくつかのオプションを提供するドロップダウン ボックスが必要です。また、このデータを残りの投稿データと一緒に wordpress DB に保存する必要があります。誰かがこれについて助けてくれますか?

PS i は後で、プラグインから計算されたデータの一部を表示するときに、投稿自体に領域を追加する必要があります。

編集:最初の部分は完了しましたが、投稿でデータを保存するための新しいフィールドを取得できません。これが私のコードです。

<?php
/*
Plugin Name: Column Height Calculator
Plugin URI: #
Description: calculates the height of the column
Version: 0.1
Author: Ben Crawford
Author URI:
*/

add_action('admin_menu', 'my_post_options_box');

function my_post_options_box() {
add_meta_box('post_info', 'Column Height Info', 'custom_post_info', 'post', 'side', 'high');
}

//Adds the actual option box
function custom_post_info() {
global $post;
?>
<fieldset id="mycustom-div">
<div>
<p>
<label for="column_type" >Column Type:</label>
<br />
<select name="column_type" id="column_type">
  <option value="JBC">Justified Body Copy</option>
  <option value="LRC">Left Raggid Copy</option>
</select>
<br />
<br />
<label for="header_size">Header Size:</label>
<br />
<input type="text" name="header_size" id="header_size" value="<?php echo get_post_meta($post->ID, 'header_size', true); ?>">
</p>
</div>
</fieldset>
<?php
}

add_action('save_post', 'custom_add_save');
function custom_add_save($postID){
// called after a post or page is saved
if($parent_id = wp_is_post_revision($postID))
{
$postID = $parent_id;
}

if ($_POST['column_type']) {
update_custom_meta($postID, $_POST['column_type'], 'column_type');
}
if ($_POST['header_size']) {
update_custom_meta($postID, $_POST['header_size'], 'header_size');
}
}

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);
}
}
?>
4

3 に答える 3

3

add_meta_box() wordpress 関数を使用して、独自のメタ ボックスを作成できます。これにより、ほとんどの制御が可能になります。

ただし、このメタボックスを使用して投稿でデータを保存するだけの場合は、この Github プロジェクトをプラグインに組み込むことができます。これにより、ポストメタデータを保存するデータフィールドを簡単に追加できます。その後、 get_post_meta($post->ID)を使用してループ内でこのメタ データを取得できます。

于 2013-04-08T15:33:07.193 に答える