예제 #1
0
파일: Core.php 프로젝트: xeeeveee/core
 /**
  * Initialize required classes and add them to the container
  *
  * @throws Exceptions\ContainerOverrideException
  * @throws Exceptions\NotStringException
  */
 public function boot()
 {
     $container = Container::get_instance();
     if (apply_filters($this->filter_base . 'core/register/prepare/post', true)) {
         $container->add('Xeeeveee\\Core\\WordPress\\Prepare\\Post', Post::get_instance());
     }
     if (apply_filters($this->filter_base . 'core/register/prepare/post', true)) {
         $container->add('Xeeeveee\\Core\\WordPress\\Prepare\\Term', Term::get_instance());
     }
     if (apply_filters($this->filter_base . 'core/register/prepare/post', true)) {
         $container->add('Xeeeveee\\Core\\WordPress\\Register\\Decorators\\PostDecorator', PostDecorator::get_instance());
     }
     if (apply_filters($this->filter_base . 'core/register/enqueue/admin_scripts', true)) {
         $container->add('Xeeeveee\\Core\\WordPress\\Enqueue\\Script\\AdminScripts', AdminMain::get_instance());
     }
     if (apply_filters($this->filter_base . 'core/register/enqueue/color_picker_styles', true)) {
         $container->add('Xeeeveee\\Core\\WordPress\\Enqueue\\Style\\ColorPicker', ColorPicker::get_instance());
     }
     if (apply_filters($this->filter_base . 'core/register/enqueue/jquery_ui_styles', true)) {
         $container->add('Xeeeveee\\Core\\WordPress\\Enqueue\\Style\\JQueryUi', JQueryUi::get_instance());
     }
 }
예제 #2
0
파일: Post.php 프로젝트: xeeeveee/core
 /**
  * Gets all the posts terms
  *
  * @param array $posts
  *
  * @return array|null|object
  */
 protected function get_terms(array $posts = [])
 {
     if (empty($posts)) {
         return [];
     }
     global $wpdb;
     $ids = [];
     $placeholders = [];
     $cast_terms = [];
     $sql = "SELECT ";
     $sql .= "{$wpdb->term_relationships}.object_id as post_id, ";
     $sql .= "{$wpdb->term_taxonomy}.taxonomy, ";
     $sql .= "{$wpdb->terms}.term_id, ";
     $sql .= "{$wpdb->terms}.name, ";
     $sql .= "{$wpdb->terms}.slug, ";
     $sql .= "{$wpdb->term_taxonomy}.description, ";
     $sql .= "{$wpdb->term_taxonomy}.parent, ";
     $sql .= "{$wpdb->term_taxonomy}.count, ";
     $sql .= "{$wpdb->terms}.term_group, ";
     $sql .= "{$wpdb->term_relationships}.term_order ";
     $sql .= "FROM {$wpdb->term_relationships} ";
     $sql .= "JOIN {$wpdb->term_taxonomy} ON {$wpdb->term_relationships}.term_taxonomy_id = {$wpdb->term_taxonomy}.term_taxonomy_id ";
     $sql .= "JOIN {$wpdb->terms} ON {$wpdb->term_taxonomy}.term_id = {$wpdb->terms}.term_id ";
     $sql .= "WHERE {$wpdb->term_relationships}.object_id IN (";
     foreach ($posts as $post) {
         if ($post instanceof WP_Post) {
             $placeholders[] = "%d";
             $ids[] = $post->ID;
         }
     }
     $sql .= join($placeholders, ', ') . ") ";
     $terms = $wpdb->get_results($wpdb->prepare($sql, $ids));
     foreach ($terms as $term) {
         $cast_terms[] = new WP_Term($term);
     }
     return $this->term_transformer->prepare_collection($cast_terms);
 }