我有一个自定义的帖子类型,事件,它有一个SELECT字段,用于抓取另一个自定义帖子类型列表的帖子对象。我们有一个活动,我们想要选择一个附加到它的商家信息,这样我们就可以显示商家的联系信息(电话,地址等)。
的functions.php
function register_post_types() {
register_post_type( 'swfl_listing', array(
'labels' => array(
'name' => __( 'Listings' ),
'singular_name' => __( 'Listing' )
),
'rewrite' => array(
'slug' => 'destinations/listings',
),
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'capability_type' => 'post',
'has_archive' => true,
'supports' => array( 'title', 'thumbnail', 'editor', 'revisions', 'author', 'comments' ),
'menu_icon' => 'dashicons-businessman',
) );
register_post_type( 'swfl_event', array(
'labels' => array(
'name' => 'Events',
'singular_name' => 'Event',
),
'rewrite' => array(
'slug' => 'discover/events',
),
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'capability_type' => 'post',
'has_archive' => true,
'supports' => array( 'title', 'thumbnail', 'editor', 'revisions', 'comments' ),
'menu_icon' => 'dashicons-calendar-alt',
) );
}
function add_to_context( $context ) {
...
$context['events'] = Timber::get_posts( array(
'post_type' => 'swfl_event',
) );
...
}
我搜索并找到了这行代码,这些代码允许我获取作为自定义字段的单数页面listing_sponsoring_event
上的信息。
single.php& archive.php
...
$context['listing'] = new TimberPost( $post->listing_sponsoring_event );
...
以下是单页上的工作代码
单swfl_event.twig
...
<strong>Where: </strong> {{ listing.title }} <br/>
<strong>Price: </strong> {{ post.get_field('event_price') }} <br/>
...
但如果我把它放到archive.php中,相同的代码就不起作用了。它只显示循环中的最后一个帖子信息。
归档swfl_event.twig
...
{% for post in posts %}
...
<strong>Where: </strong> {{ listing.title }} <br/>
<strong>Price: </strong> {{ post.get_field('event_price') }} <br/>
...
{% endfor %}
...
编辑: 我还没有能够使用Timber / Twig找出任何东西(也没有回复),但我还是离开了这个问题打开以防万一它最终被弄清楚。现在我正在使用PHP函数来获取信息。这不是一个漂亮的解决方案。
希望Timber最终会更新以支持SELECT和WP Post对象。
答案 0 :(得分:1)
所以我的问题实际上只是与WP Post Objects合作以及如何获取它的信息。对于任何有问题的人:
使用{{ post.get_field('custom_field_name') }}
访问对象信息,而不是{{ post.custom_field_name }}
。 {{ post.get_field('custom_field_name')|print_r }}
仅向我提供对象的ID。
要进行故障排除,请致电
{{ post.get_field('custom_field_name').post_title }}
表示您可以检索的数据列表。
现在,我可以使用let asset = AVURLAsset(URL: url)
let playerItem = AVPlayerItem(asset: asset!)
let player = AVPlayer(playerItem: playerItem!)
....
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
if object as? AVPlayerItem == player?.currentItem {
if keyPath == "status" {
guard let status = player?.currentItem?.status
else { return }
delegate?.videoViewController(self, statusDidChange: status)
}
}
}
抓取我想要的数据。