2009-06-08 13 views
0

編集: 私はこのクラスを正常に動作させることができました。 値の最後に[0]を使用しないことをお勧めします。どのように私はこのコードを改善することができますか?Wordpressで画像を関連付けるためのクラスを作成しようとしています

このクラスは、特定の投稿のすべてのカスタムキーを取得します。現在、関連する画像に使用しており、私は自分の投稿に「related_image」、「related_image_wide」、「image_alt_text」の3つのキーを定義しています。

EDIT 2: 私は最終的に私が望むように価値を得ることができました。私はこれがこれを見つけた誰にとっても役立つことを願っています。コードが更新されました。

class article { 
    private $alternative_text; 
    private $custom_fields = array(); 


    public function __construct($post) 
    { 
    $val = array(); 
    $custom_field_keys = get_post_custom_keys(); 

    foreach ($custom_field_keys as $key => $value) 
    { 
     // Custom_fields["a"] gets the value of the custom field "a" 
     $val = get_post_custom_values($value); 
     $this->custom_fields[$value] = $val[0]; 
    } 

    $this->alternative_text = $this->custom_fields["image_alt_text"]; 
    } 


    public function relatedImage($type) 
    { 
    // Standard image to be shown with article 
    if($type == 'normal') 
     return $this->imageURL($this->custom_fields["related_image"]); 

    // Wide image to be shown with article. 
    if($type == 'wide') 
     return $this->imageURL($this->custom_fields["related_image_wide"]); 

    // Alternative image. Often used in article listing and not in main article 
    if($type == 'alt') 
     return $this->imageURL($this->custom_fields["related_image_alternative"]);  
    } 

    private function imageURL($imgPath) 
    { 
    return '<img src="' . get_option('home') . '/wp-content/uploads' . $imgPath .'" alt="' . $this->alternative_text . '" title="' . $this->alternative_text . '" />'; 
    } 

} 

これは私が私のテンプレートコードで何をすべきかです:

//This is inside The Loop 
$article = new article($post); 
echo $article->relatedImage("normal"); 

答えて

1

これであなたを助けることができるのWordpressで構築された機能は、実際にあります。ここで

だから、
get_post_custom_values($key, $post_id) 

あなたは(ループで)あなたが行くと「通常」の画像を取得したい場合

echo get_post_custom_values('normal', get_the_ID()) 

は、あなたがより多くの情報が必要な場合

+0

が私を信頼Wordpress codex内のリンクあり、それは私が試した最初のものの一つでした:)しかし、それは動作しませんでした。しかし、私は今それを働かせました。 – Steven

関連する問題