post_content, 'five_for_the_future_companies' ) ) { return; } $params = array( // explain 100 is just sanity limit to keep page size performant. might need to lazy-load more in the future // maybe order by donated_employees, or rand, to ensure the top companies are always displayed first, or to make sure treta everyone equal 'post_type' => Pledge\CPT_ID, 'post_status' => 'publish', 'posts_per_page' => 100, 'orderby' => 'title', 'order' => 'ASC', ); $companies = get_posts( $params ); foreach ( $companies as $key => $company ) { $teams = get_post_meta( $company->ID, '_5ftf_teams', false ); $companies[ $key ] = array( 'name' => $company->post_title, 'url' => $company->_5ftf_url, 'total_employees' => $company->_5ftf_total_employees, 'sponsored_employees' => $company->_5ftf_sponsored_employees, 'hours_per_week' => $company->_5ftf_hours_per_week, 'teams_contributing_to' => implode( ', ', $teams ), ); } $inline_script = sprintf( 'var fiveFutureCompanies = JSON.parse( decodeURIComponent( \'%s\' ) );', rawurlencode( wp_json_encode( $companies ) ) ); wp_enqueue_style( '5ftf-front-end' ); wp_enqueue_script( '5ftf-list' ); wp_add_inline_script( '5ftf-list', $inline_script ); } add_action( 'wp_enqueue_scripts', __NAMESPACE__ . '\enqueue_scripts' ); /** * todo * * @return string */ function render_shortcode() { // The limit is just a sanity check, but ideally all should be displayed. // If this is reached, then refactor the page to lazy-load, etc. ob_start(); require_once dirname( __DIR__ ) . '/views/front-end.php'; return ob_get_clean(); } add_shortcode( 'five_for_the_future_companies', __NAMESPACE__ . '\render_shortcode' ); // shortcode for pledge form // form handler for pledge form function register() { //register_block_type(); } add_action( 'init', __NAMESPACE__ . '\register' );