Пользовательские типы записей: Можно ли добавить в столбец более одной переменной?


( Поскольку мой пользовательский тип записи немного длинноват, я для простоты скопировал его поверх фиктивного)

Что я пытаюсь сделать, так это, скажем, описать несколько "похожих" переменных, т. Е. price1, price2, price3 и т.д. смогу ли я сложить эти значения в один столбец (в отличие от отображения их в 3 столбцах), т.Е. $price1<br />$price2<br />$price3? Причины чисто эстетические, так как в противном случае столбцы пользовательского типа сообщений были бы очень быстро переполнены.

Спасибо ты! (как уже было сказано, приведенная ниже часть не является фактическим кодом, который я использую, но я подумал, что было бы хорошо, если бы кто-то другой искал то же самое)

add_filter("manage_edit-product_columns", "prod_edit_columns");
add_action("manage_posts_custom_column",  "prod_custom_columns");

function prod_edit_columns($columns){
  $columns = array(
   "cb" => "<input type=\"checkbox\" />",
   "title" => "Product Title",
   "description" => "Description",
   "price1" => "Price1",
   "catalog" => "Catalog",
  );

  return $columns;
}

function prod_custom_columns($column){
  global $post;
  switch ($column)
  {
   case "description":
    the_excerpt();
    break;
   case "price": // Now here I have to define the field, but how would I drag in other subsequent price fields?
    $custom = get_post_custom();
    echo $custom["price"][0];
    break;
   case "catalog":
    echo get_the_term_list($post->ID, 'catalog', '', ', ','');
    break;
  }
}
Author: Noel Tock, 2011-01-31

1 answers

Да, вы можете сделать именно это. вам нужно только изменить выходную функцию, которая в данном случае является

function prod_custom_columns($column){
  global $post;
  switch ($column)
  {
   case "description":
    the_excerpt();
    break;
   case "price": // Now here I have to define the field, but how would I drag in other subsequent price fields?
    $custom = get_post_custom();
    echo $custom["price"][0];
    break;
   case "catalog":
    echo get_the_term_list($post->ID, 'catalog', '', ', ','');
    break;
  }
}

Чтобы отобразить то, что вы хотите для каждого столбца, скажите, что ваша цена изменит ее на что-то вроде:

case "price": // Now here I have to define the field, but how would I drag in other subsequent price fields?
    $custom = get_post_custom();
    echo $custom["price"][0];
    echo 'br />';
    echo $custom["another_FIELD"][0];
    echo 'br />';
    echo $custom["yet_another_FIELD"][0];
    break;

Надеюсь, это поможет

 3
Author: Bainternet, 2011-01-31 18:29:02