2

現時点ではガイドに従っており、カスタム投稿タイプとメタ ボックスを作成できました。ただし、現時点では、投稿にメタデータを表示することはできません。

私が望むのは、ポストに出力できる 3 つのカスタム テキスト フィールドを持つメタ ボックスだけです。

これは私の関数ファイルです (投稿タイプとメタボックスを定義する部分):

add_action('init', 'product_manager_register'); // Calls function to set up post-type

function product_manager_register() {
$args = array(
    'label' => __('Product Manager'),
    'singular_label' => __('Skin'),
    'public' => true,
    'show_ui' => true,
    'capability_type' => 'post',
    'hierarchical' => true,
    'has_archive' => true,
    'supports' => array('title', 'editor', 'thumbnail'),
    'rewrite' => array('slug' => 'skins', 'with_front' => false), 

    );

register_post_type('products' , $args ); // runs the function

}

//Add featured image support to the theme

if (function_exists('add_theme_support')) {
add_theme_support('post-thumbnails');
}


add_action("admin_init", "product_manager_add_meta");

function product_manager_add_meta(){

add_meta_box("product-meta", "Product Options", "product_manager_meta_options", "products", "normal", "high");

}

function product_manager_meta_options(){
global $post;
    if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
        return $post_id;

$custom = get_post_custom($post->ID);
$buylink = $custom['buylink'][0];
$price = $custom['price'][0];
$previewlink = $custom['previewlink'][0];

?>

<style type="text/css">
<?php include('productmeta.css'); ?>
</style>

<div class="product_extras">

<div> <label> Buy Link: </label> <input name="buylink" value="<?php echo $buylink; ?>" /></div>
<div> <label> Price: </label> <input name="price" value="<?php echo $price; ?>" /></div>
<div> <label> Preview Link: <input name="previewlink" value="<?php echo $previewlink; ?>" /></div>

</div>

<?php

}

add_action('save_post', 'save_product_meta');

function save_product_meta(){
global $post;
        if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ){
            return $post_id;
    }else{
        update_post_meta($post->ID, "buylink", $_POST["buylink"]);
        update_post_meta($post->ID, "price", $_POST["price"]);
        update_post_meta($post->ID, "previewlink", $_POST["previewlink"]);

    }
}

?>

そして、次のように単一製品で情報を表示します。

<?php get_header() ?>

<div class="container content"><!-- Begin maincontent Container -->

this is the page i'm editing

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<?php
$custom = get_post_custom($post->ID);
$buynowlink = $custom ["buynowlink"][0];
$price = $custom ["price"][0];
$previewlink = $custom ["previewlink"][0];


?>


<div class="post group">
    <h2><?php the_title(); ?> </h2>
    <?php the_content(); ?>

    <?php print "<p>$buynowlink</p>"; ?>
    <?php print "<p>$price/p>"; ?>
    <?php print "<p>$buynowlink</p>"; ?>

</div>
<?php endwhile; else: ?>
<?php endif; ?>

私はおそらく愚かなことをしていることを知っていますが、どんな助けでも本当に感謝しています。プラグインでこれを行うことができることは知っていますが、適切な方法で行うことを学びたいです。

4

2 に答える 2