Попытка создать класс для связывания изображений в Wordpress - PullRequest
0 голосов
/ 09 июня 2009

EDIT: Мне удалось заставить этот класс работать, и я обновил правильный код. Я хотел бы не использовать [0] в конце значения. Любой способ улучшить этот код?

Этот класс извлекает все пользовательские ключи для определенного сообщения. В настоящее время я использую его для связывания изображений, и я определил три ключа в своем посте: related_image, related_image_wide и image_alt_text.

РЕДАКТИРОВАТЬ 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 Ответ

1 голос
/ 09 июня 2009

На самом деле есть встроенная функция Wordpress, которая может помочь вам в этом.

get_post_custom_values($key, $post_id)

Так что, если вы хотите получить «нормальное» изображение, вы бы пошли (в цикле)

echo get_post_custom_values('normal', get_the_ID())

Вот ссылка в кодекс Wordpress , если вам нужна дополнительная информация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...