カスタム WordPress ウィジェットを作成するためのこの優れたテンプレートに基づく次のコードがあります。
<?php class DRCC_Feat extends WP_Widget {
function dr_post_select_list() {
$drcc_posts_args = array(
'post_type' => array( 'post', 'page', 'tribe_events' ),
'numberposts' => -1,
'orderby' => 'title',
'order' => 'ASC'
);
$drcc_posts = get_posts( $drcc_posts_args );
$dr_posts_array = array();
foreach( $drcc_posts as $post ) {
$dr_posts_array[$post->ID] = $post->post_title;
}
return $dr_posts_array;
}
protected $widget = array(
'description' => 'Custom widget for my client.',
'do_wrapper' => true,
'view' => false,
'fields' => array(
array(
'name' => 'Post to Feature',
'desc' => 'Enter the IDs of any posts, pages, etc. If more than one, separate with commas.',
'id' => 'dr_feat_ids',
'type' => 'select',
'options' => dr_post_select_list(),
'std' => ''
)
)
);
// some more stuff here, but the error is above and the code works when I make 'options' somethings hard-coded.
} ?>
dr_post_select_list()
保護された配列を呼び出して$widget
投稿のリストを動的に生成しようとしていますが、関数を含むParse error: syntax error, unexpected '(', expecting ')'
行を参照してエラーが発生します。dr_post_select_list()
それが関数であることを認識していないかのようです。
私は他の場所でこの機能を試しましたが、うまくいきました。配列を公開しようとしましたが、何も変わりません。関数の出力を配列に保存し、変数を配列に入れてみました
根本的に間違ったことをしている気がします。
tl;dr - クラスの配列で呼び出されたメソッドが実行されない (またはメソッドとして認識されているように見える)。