• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Вывод конента плагина в категории таксономии

ranaza12

Создатель
Регистрация
11 Июл 2012
Сообщения
37
Реакции
3
Никак не могу перенести функцию шорткода плагина, в таксономию категории для вывода контента через рубрики а не по шорткодам.
Помогите плз кто знает как вывести материал в

Код:
<?php $dflip = new WP_Query(array('post_type' => 'dflip'));?>
<?php if ( $dflip->have_posts() ) : ?>
    <?php while ( $dflip->have_posts() ) : $dflip->the_post(); ?>
    <div class="dflip-item">
        <h2><?php the_title(); ?></h2>
        <div class="books"><?php the_content(); ?></div>
    </div>
    <?php endwhile; ?>
<?php else: ?>
    <div class="no-dflip">...</div>
<?php endif; ?>
<?php wp_reset_query(); ?>

Код:
<?php

/**
* Created by PhpStorm.
* User: Deepak
* Date: 5/3/2016
* Time: 2:27 PM
*/
class DFlip_ShortCode {
  /**
   * Holds the singleton class object.
   *
   * @since 1.0.0
   *
   * @var object
   */
  public static $instance;
  /**
   * Holds the base DFlip class object.
   *
   * @since 1.0.0
   *
   * @var object
   */
  public $base;
  /**
   * Primary class constructor.
   *
   * @since 1.0.0
   */
  public function __construct() {
  
    // Load the base class object.
    $this->base = DFlip::get_instance();
  
    // Load shortcode hooks and filters.
    add_shortcode( 'dflip', array( $this, 'shortcode' ) );
    //        add_shortcode( 'dflip-multi', array( $this, 'dflip_multi_shortcode' ) );
  }
  /**
   * Builds the dFlip Shortcode for the plugin
   *
   * @since 1.0.0
   *
   * @param array  $attr    Attributes of the shortcode.
   * @param string $content Content of the button or thumb
   *
   * @return string HTML content to display image-text.
   */
  public function shortcode( $attr, $content = '' ) {
  
    $ismulti      = isset( $attr['books'] ) && trim( $attr['books'] ) !== '';
    $atts_default = array(
        'class' => '',
        'id'    => '',
        'books' => ''
    );
    //atts or post defaults
    $atts = shortcode_atts( $atts_default, $attr, 'dflip' );
  
    if ( $ismulti ) {
      $limit = isset( $attr['limit'] ) ? (int) $attr['limit'] : 5;
      $ids   = array();
      $books = explode( ',', $atts['books'] );
      foreach ( (array) $books as $query ) {
        $query = trim( $query );
        if ( is_numeric( $query ) ) {
          array_push( $ids, $query );
        } else {
          if ( $query == 'all' || $query == '*' ) {
            $postslist = get_posts( array(
                'post_type'      => 'dflip',
                'posts_per_page' => - 1,
                'numberposts'    => $limit,
                'nopaging'       => true,
                'exclude'        => $ids
            ) );
            foreach ( $postslist as $post ) {
              array_push( $ids, $post->ID );
            }
          } else {
            $postslist = get_posts( array(
                'tax_query'      => array(
                    array(
                        'taxonomy' => 'dflip_category',
                        'field'    => 'slug',
                        'terms'    => $query,
                    )
                ),
                'post_type'      => 'dflip',
                'posts_per_page' => - 1,
                'numberposts'    => $limit,
                'nopaging'       => true,
                'exclude'        => $ids
            ) );
            foreach ( $postslist as $post ) {
              array_push( $ids, $post->ID );
            }
          }
        }
      }
      $html     = '<div class="dflip-books">';
      $limitMax = $limit == '-1' ? 999 : (int) $limit;
      $limit    = 0;
      foreach ( $ids as $id ) {
        if ( $limit >= $limitMax ) {
          break;
        }
        $attr['id'] = $id;
        $html       .= $this->book( $attr, $content, true );
        $limit ++;
      
      }
    
      return $html . '</div>';
    
    } else {
      return $this->book( $attr, $content );
    }
  }
  /**
   * Helper function for dFlip Shortcode
   *
   * @since    1.0.0
   *
   * @param        $attr
   * @param string $content Content of the button or thumb
   *
   * @param bool   $multi   checks if this is a part of multiple books request
   *
   * @return string HTML content to display image-text.
   * @internal param array $attr Attributes of the shortcode.
   */
  public function book( $attr, $content = '', $multi = false ) {
    $base = $this->base;
  
    $atts_default = array(
        'class' => '',
        'id'    => '',
        'type'  => $multi ? 'thumb' : 'book'
    );
  
    //atts or post defaults
    $atts = shortcode_atts( $atts_default, $attr, 'dflip' );
  
    //default data
    $id    = $atts['id'] === '' ? 'df_rand' . rand() : $atts['id'];
    $type  = $atts['type'];
    $class = $atts['class'];
    $title = do_shortcode( $content );
  
    //get Id
    $post_id        = $atts['id'];
    $hasId          = false;
    $thumb_url      = '';
    $thumb_tag_type = $base->get_config( 'thumb_tag_type' );
  
    $post_data = array();
  
  
    //pull post data if available for the script part only
    if ( !empty( $post_id ) && is_numeric( $post_id ) ) {
    
      /*            $post = get_post( $post_id );
            if ( $post == null ) {
              return '';
            }*/
    
      $id = 'df_' . $post_id;
    
      $post_meta = get_post_meta( $post_id, '_dflip_data' );
    
      if ( $title === '' ) {
        $title = get_the_title( $post_id );
      }
    
    
      if ( is_array( $post_meta ) && count( $post_meta ) > 0 ) {
        $post_data = $post_meta[0];
      }
    
      //conversion
      $post_data['enableDownload']      = $post_data['enable_download'];
      $post_data['backgroundColor']     = $post_data['bg_color'];
      $post_data['backgroundImage']     = $post_data['bg_image'];
      $post_data['autoEnableOutline']   = $post_data['auto_outline'];
      $post_data['autoEnableThumbnail'] = $post_data['auto_thumbnail'];
      $post_data['overwritePDFOutline'] = $post_data['overwrite_outline'];
      $post_data['soundEnable']         = $post_data['auto_sound'];
      $post_data['maxTextureSize']      = isset( $post_data['texture_size'] ) ? $post_data['texture_size'] : null;
      $post_data['pageMode']            = isset( $post_data['page_mode'] ) ? $post_data['page_mode'] : null;
      $post_data['singlePageMode']      = isset( $post_data['single_page_mode'] ) ? $post_data['single_page_mode'] : null;
      $post_data['forceFit']            = isset( $post_data['force_fit'] ) ? $post_data['force_fit'] : null;
      $post_data['autoPlay']            = isset( $post_data['autoplay'] ) ? $post_data['autoplay'] : null;
      $post_data['autoPlayDuration']    = isset( $post_data['autoplay_duration'] ) ? $post_data['autoplay_duration'] : null;
      $post_data['autoPlayStart']       = isset( $post_data['autoplay_start'] ) ? $post_data['autoplay_start'] : null;
    
    
      $post_defaults = array(
          'webgl'               => $base->get_default( 'webgl' ),
          'class'               => '',
          'id'                  => '',
          //internal
          'source_type'         => $base->get_default( 'source_type' ),
          'pdf_source'          => '',
          'pdf_thumb'           => '',
          'pages'               => array(),
          'outline'             => '',
          'backgroundColor'     => $base->get_default( 'bg_color' ),
          'height'              => $base->get_default( 'height' ),
          'duration'            => $base->get_default( 'duration' ),
          'hard'                => $base->get_default( 'hard' ),
          'forceFit'            => $base->get_default( 'force_fit' ),
          'autoEnableOutline'   => $base->get_default( 'auto_outline' ),
          'autoEnableThumbnail' => $base->get_default( 'auto_thumbnail' ),
          'overwritePDFOutline' => $base->get_default( 'overwrite_outline' ),
          'enableDownload'      => $base->get_default( 'enable_download' ),
          'backgroundImage'     => $base->get_default( 'bg_image' ),
          'direction'           => $base->get_default( 'direction' ),
          'pageMode'            => $base->get_default( 'page_mode' ),
          'singlePageMode'      => $base->get_default( 'single_page_mode' ),
          'soundEnable'         => $base->get_default( 'auto_sound' ),
          'maxTextureSize'      => $base->get_default( 'texture_size' ),
          'autoPlay'            => $base->get_default( 'autoplay' ),
          'autoPlayDuration'    => $base->get_default( 'autoplay_duration' ),
          'autoPlayStart'       => $base->get_default( 'autoplay_start' ),
          'thumb'               => '',
          'source'              => '',
          'wpOptions'           => 'true'
      );
    
      $post_data = shortcode_atts( $post_defaults, $post_data, 'dflip' );
      //            $data      = shortcode_atts( $post_data, $attr, 'dflip' );
    
      $source_type = $post_data['source_type'];
      $pdf_source  = $post_data['pdf_source'];
    
      $post_data['source'] = '';
    
      if ( $source_type == 'pdf' ) {
        $post_data['source'] = $pdf_source;
        $thumb_url           = empty( $post_data['pdf_thumb'] ) ? '' : $post_data['pdf_thumb'];
      }
    
      if ( $source_type == 'image' ) {
        $pages       = array_map( 'maybe_unserialize', $post_data['pages'] );
        $source_list = array();
        $links       = array();
        $index       = 0;
        foreach ( $pages as $image ) {
          if ( $thumb_url === '' ) {
            $thumb_url = $image['url'];
          }
          if ( $image['url'] !== '' ) {
            array_push( $source_list, $image['url'] );
          }
          if ( isset( $image['hotspots'] ) && $image['hotspots'] !== '' ) {
            $links[ $index ] = $image['hotspots'];
          }
          $index ++;
        }
        $post_data['links']  = $links;
        $post_data['source'] = $source_list;
      }
    
      unset( $post_data['pages'] );
      unset( $post_data['pdf_source'] );
      unset( $post_data['pdf_thumb'] );
      unset( $post_data['thumb'] );
      unset( $post_data['source_type'] );
      unset( $post_data['class'] );
      unset( $post_data['id'] );
    
      foreach ( $post_data as $key => $value ) {
        if ( $value === "" || $value === null || $value == "global" ) {//newly added will be null in old post
          unset( $post_data[ $key ] );
        }
      }
      //            $attr['slug'] = $post->post_name;
    
    } else {
      /*handled by new attribute support*/
    }
  
    //deep-link
    if ( !$multi && isset( $attr['slug'] ) && !empty( $attr['slug'] ) ) {
      $attr['slug'] = sanitize_title( $attr['slug'] );
    }
  
    if ( empty( $title ) ) {
      $title = "Open Book";
    }
  
    //        if (0 === strpos($data['source'], '/wp-content/')) {
    //            $data['source'] = get_site_url() . $data['source'];
    //        }
  
    /*Attribute overrides*/
    $attrHTML = ' ';
  
    $attr['wpoptions'] = 'true';
    unset( $attr['class'] );
    unset( $attr['id'] );
    unset( $attr['type'] );
  
    if ( !isset( $attr['thumb'] ) && $thumb_url !== '' ) {
      $attr['thumb'] = $thumb_url;
    }
  
    if ( $thumb_tag_type == 'img' ) {
      $attr['thumbtype'] = $thumb_tag_type;
    }
  
    foreach ( $attr as $key => $value ) {
      $attrHTML .= $key . '="' . $value . '" ';
    }
  
    $html = "";
  
    if ( $type == 'button' || $type == 'thumb' || $type == 'custom' ) {
      $html = '<div class="_df_' . $type . ' ' . $class . '" id="' . $id . '" ' . $attrHTML . '>' . $title . '</div>';
    } else if ( $type == 'link' ) {
      $html
          = '<a class="_df_custom ' . $class . '" id="' . $id . '" href="#" ' . $attrHTML . '>' . $title . '</a>';
    } else {
      $html = '<div class="_df_book df-container df-loading ' . $class . '" id="' . $id . '" ' . $attrHTML . '></div>';
    }
  
    if ( count( $post_data ) > 0 ) {
    
      /*Normally this occurs only when a valid post id is added*/
    
      $code = 'var option_' . $id . ' = ' . json_encode( $post_data ) . '; if(window.DFLIP && DFLIP.parseBooks){DFLIP.parseBooks();}';
    
      $html .= '<script data-cfasync="false">' . $code . '</script>';
    
    }
  
    return $html;
  }
  /**
   * Returns the singleton instance of the class.
   *
   * @since 1.0.0
   *
   * @return object dFlip_PostType object.
   */
  public static function get_instance() {
  
    if ( !isset( self::$instance )
         && !( self::$instance instanceof DFlip_ShortCode )
    ) {
      self::$instance = new DFlip_ShortCode();
    }
  
    return self::$instance;
  
  }
}

//Load the dFlip Plugin Class
$dflip_shortcode = DFlip_ShortCode::get_instance();

сам шорткод выводиться так [dflip books="название рубрики"][/dflip]
 
Последнее редактирование:
Никак не могу перенести функцию шорткода плагина, в таксономию категории для вывода контента через рубрики а не по шорткодам.
Помогите плз кто знает как(((
Код:
<?php

/**
* Created by PhpStorm.
* User: Deepak
* Date: 5/3/2016
* Time: 2:27 PM
*/
class DFlip_ShortCode {
  /**
   * Holds the singleton class object.
   *
   * @since 1.0.0
   *
   * @var object
   */
  public static $instance;
  /**
   * Holds the base DFlip class object.
   *
   * @since 1.0.0
   *
   * @var object
   */
  public $base;
  /**
   * Primary class constructor.
   *
   * @since 1.0.0
   */
  public function __construct() {
  
    // Load the base class object.
    $this->base = DFlip::get_instance();
  
    // Load shortcode hooks and filters.
    add_shortcode( 'dflip', array( $this, 'shortcode' ) );
    //        add_shortcode( 'dflip-multi', array( $this, 'dflip_multi_shortcode' ) );
  }
  /**
   * Builds the dFlip Shortcode for the plugin
   *
   * @since 1.0.0
   *
   * @param array  $attr    Attributes of the shortcode.
   * @param string $content Content of the button or thumb
   *
   * @return string HTML content to display image-text.
   */
  public function shortcode( $attr, $content = '' ) {
  
    $ismulti      = isset( $attr['books'] ) && trim( $attr['books'] ) !== '';
    $atts_default = array(
        'class' => '',
        'id'    => '',
        'books' => ''
    );
    //atts or post defaults
    $atts = shortcode_atts( $atts_default, $attr, 'dflip' );
  
    if ( $ismulti ) {
      $limit = isset( $attr['limit'] ) ? (int) $attr['limit'] : 5;
      $ids   = array();
      $books = explode( ',', $atts['books'] );
      foreach ( (array) $books as $query ) {
        $query = trim( $query );
        if ( is_numeric( $query ) ) {
          array_push( $ids, $query );
        } else {
          if ( $query == 'all' || $query == '*' ) {
            $postslist = get_posts( array(
                'post_type'      => 'dflip',
                'posts_per_page' => - 1,
                'numberposts'    => $limit,
                'nopaging'       => true,
                'exclude'        => $ids
            ) );
            foreach ( $postslist as $post ) {
              array_push( $ids, $post->ID );
            }
          } else {
            $postslist = get_posts( array(
                'tax_query'      => array(
                    array(
                        'taxonomy' => 'dflip_category',
                        'field'    => 'slug',
                        'terms'    => $query,
                    )
                ),
                'post_type'      => 'dflip',
                'posts_per_page' => - 1,
                'numberposts'    => $limit,
                'nopaging'       => true,
                'exclude'        => $ids
            ) );
            foreach ( $postslist as $post ) {
              array_push( $ids, $post->ID );
            }
          }
        }
      }
      $html     = '<div class="dflip-books">';
      $limitMax = $limit == '-1' ? 999 : (int) $limit;
      $limit    = 0;
      foreach ( $ids as $id ) {
        if ( $limit >= $limitMax ) {
          break;
        }
        $attr['id'] = $id;
        $html       .= $this->book( $attr, $content, true );
        $limit ++;
      
      }
    
      return $html . '</div>';
    
    } else {
      return $this->book( $attr, $content );
    }
  }
  /**
   * Helper function for dFlip Shortcode
   *
   * @since    1.0.0
   *
   * @param        $attr
   * @param string $content Content of the button or thumb
   *
   * @param bool   $multi   checks if this is a part of multiple books request
   *
   * @return string HTML content to display image-text.
   * @internal param array $attr Attributes of the shortcode.
   */
  public function book( $attr, $content = '', $multi = false ) {
    $base = $this->base;
  
    $atts_default = array(
        'class' => '',
        'id'    => '',
        'type'  => $multi ? 'thumb' : 'book'
    );
  
    //atts or post defaults
    $atts = shortcode_atts( $atts_default, $attr, 'dflip' );
  
    //default data
    $id    = $atts['id'] === '' ? 'df_rand' . rand() : $atts['id'];
    $type  = $atts['type'];
    $class = $atts['class'];
    $title = do_shortcode( $content );
  
    //get Id
    $post_id        = $atts['id'];
    $hasId          = false;
    $thumb_url      = '';
    $thumb_tag_type = $base->get_config( 'thumb_tag_type' );
  
    $post_data = array();
  
  
    //pull post data if available for the script part only
    if ( !empty( $post_id ) && is_numeric( $post_id ) ) {
    
      /*            $post = get_post( $post_id );
            if ( $post == null ) {
              return '';
            }*/
    
      $id = 'df_' . $post_id;
    
      $post_meta = get_post_meta( $post_id, '_dflip_data' );
    
      if ( $title === '' ) {
        $title = get_the_title( $post_id );
      }
    
    
      if ( is_array( $post_meta ) && count( $post_meta ) > 0 ) {
        $post_data = $post_meta[0];
      }
    
      //conversion
      $post_data['enableDownload']      = $post_data['enable_download'];
      $post_data['backgroundColor']     = $post_data['bg_color'];
      $post_data['backgroundImage']     = $post_data['bg_image'];
      $post_data['autoEnableOutline']   = $post_data['auto_outline'];
      $post_data['autoEnableThumbnail'] = $post_data['auto_thumbnail'];
      $post_data['overwritePDFOutline'] = $post_data['overwrite_outline'];
      $post_data['soundEnable']         = $post_data['auto_sound'];
      $post_data['maxTextureSize']      = isset( $post_data['texture_size'] ) ? $post_data['texture_size'] : null;
      $post_data['pageMode']            = isset( $post_data['page_mode'] ) ? $post_data['page_mode'] : null;
      $post_data['singlePageMode']      = isset( $post_data['single_page_mode'] ) ? $post_data['single_page_mode'] : null;
      $post_data['forceFit']            = isset( $post_data['force_fit'] ) ? $post_data['force_fit'] : null;
      $post_data['autoPlay']            = isset( $post_data['autoplay'] ) ? $post_data['autoplay'] : null;
      $post_data['autoPlayDuration']    = isset( $post_data['autoplay_duration'] ) ? $post_data['autoplay_duration'] : null;
      $post_data['autoPlayStart']       = isset( $post_data['autoplay_start'] ) ? $post_data['autoplay_start'] : null;
    
    
      $post_defaults = array(
          'webgl'               => $base->get_default( 'webgl' ),
          'class'               => '',
          'id'                  => '',
          //internal
          'source_type'         => $base->get_default( 'source_type' ),
          'pdf_source'          => '',
          'pdf_thumb'           => '',
          'pages'               => array(),
          'outline'             => '',
          'backgroundColor'     => $base->get_default( 'bg_color' ),
          'height'              => $base->get_default( 'height' ),
          'duration'            => $base->get_default( 'duration' ),
          'hard'                => $base->get_default( 'hard' ),
          'forceFit'            => $base->get_default( 'force_fit' ),
          'autoEnableOutline'   => $base->get_default( 'auto_outline' ),
          'autoEnableThumbnail' => $base->get_default( 'auto_thumbnail' ),
          'overwritePDFOutline' => $base->get_default( 'overwrite_outline' ),
          'enableDownload'      => $base->get_default( 'enable_download' ),
          'backgroundImage'     => $base->get_default( 'bg_image' ),
          'direction'           => $base->get_default( 'direction' ),
          'pageMode'            => $base->get_default( 'page_mode' ),
          'singlePageMode'      => $base->get_default( 'single_page_mode' ),
          'soundEnable'         => $base->get_default( 'auto_sound' ),
          'maxTextureSize'      => $base->get_default( 'texture_size' ),
          'autoPlay'            => $base->get_default( 'autoplay' ),
          'autoPlayDuration'    => $base->get_default( 'autoplay_duration' ),
          'autoPlayStart'       => $base->get_default( 'autoplay_start' ),
          'thumb'               => '',
          'source'              => '',
          'wpOptions'           => 'true'
      );
    
      $post_data = shortcode_atts( $post_defaults, $post_data, 'dflip' );
      //            $data      = shortcode_atts( $post_data, $attr, 'dflip' );
    
      $source_type = $post_data['source_type'];
      $pdf_source  = $post_data['pdf_source'];
    
      $post_data['source'] = '';
    
      if ( $source_type == 'pdf' ) {
        $post_data['source'] = $pdf_source;
        $thumb_url           = empty( $post_data['pdf_thumb'] ) ? '' : $post_data['pdf_thumb'];
      }
    
      if ( $source_type == 'image' ) {
        $pages       = array_map( 'maybe_unserialize', $post_data['pages'] );
        $source_list = array();
        $links       = array();
        $index       = 0;
        foreach ( $pages as $image ) {
          if ( $thumb_url === '' ) {
            $thumb_url = $image['url'];
          }
          if ( $image['url'] !== '' ) {
            array_push( $source_list, $image['url'] );
          }
          if ( isset( $image['hotspots'] ) && $image['hotspots'] !== '' ) {
            $links[ $index ] = $image['hotspots'];
          }
          $index ++;
        }
        $post_data['links']  = $links;
        $post_data['source'] = $source_list;
      }
    
      unset( $post_data['pages'] );
      unset( $post_data['pdf_source'] );
      unset( $post_data['pdf_thumb'] );
      unset( $post_data['thumb'] );
      unset( $post_data['source_type'] );
      unset( $post_data['class'] );
      unset( $post_data['id'] );
    
      foreach ( $post_data as $key => $value ) {
        if ( $value === "" || $value === null || $value == "global" ) {//newly added will be null in old post
          unset( $post_data[ $key ] );
        }
      }
      //            $attr['slug'] = $post->post_name;
    
    } else {
      /*handled by new attribute support*/
    }
  
    //deep-link
    if ( !$multi && isset( $attr['slug'] ) && !empty( $attr['slug'] ) ) {
      $attr['slug'] = sanitize_title( $attr['slug'] );
    }
  
    if ( empty( $title ) ) {
      $title = "Open Book";
    }
  
    //        if (0 === strpos($data['source'], '/wp-content/')) {
    //            $data['source'] = get_site_url() . $data['source'];
    //        }
  
    /*Attribute overrides*/
    $attrHTML = ' ';
  
    $attr['wpoptions'] = 'true';
    unset( $attr['class'] );
    unset( $attr['id'] );
    unset( $attr['type'] );
  
    if ( !isset( $attr['thumb'] ) && $thumb_url !== '' ) {
      $attr['thumb'] = $thumb_url;
    }
  
    if ( $thumb_tag_type == 'img' ) {
      $attr['thumbtype'] = $thumb_tag_type;
    }
  
    foreach ( $attr as $key => $value ) {
      $attrHTML .= $key . '="' . $value . '" ';
    }
  
    $html = "";
  
    if ( $type == 'button' || $type == 'thumb' || $type == 'custom' ) {
      $html = '<div class="_df_' . $type . ' ' . $class . '" id="' . $id . '" ' . $attrHTML . '>' . $title . '</div>';
    } else if ( $type == 'link' ) {
      $html
          = '<a class="_df_custom ' . $class . '" id="' . $id . '" href="#" ' . $attrHTML . '>' . $title . '</a>';
    } else {
      $html = '<div class="_df_book df-container df-loading ' . $class . '" id="' . $id . '" ' . $attrHTML . '></div>';
    }
  
    if ( count( $post_data ) > 0 ) {
    
      /*Normally this occurs only when a valid post id is added*/
    
      $code = 'var option_' . $id . ' = ' . json_encode( $post_data ) . '; if(window.DFLIP && DFLIP.parseBooks){DFLIP.parseBooks();}';
    
      $html .= '<script data-cfasync="false">' . $code . '</script>';
    
    }
  
    return $html;
  }
  /**
   * Returns the singleton instance of the class.
   *
   * @since 1.0.0
   *
   * @return object dFlip_PostType object.
   */
  public static function get_instance() {
  
    if ( !isset( self::$instance )
         && !( self::$instance instanceof DFlip_ShortCode )
    ) {
      self::$instance = new DFlip_ShortCode();
    }
  
    return self::$instance;
  
  }
}

//Load the dFlip Plugin Class
$dflip_shortcode = DFlip_ShortCode::get_instance();
Подробнее, вы хотите выводить кастомную таксономию как обычно,ну типа чтобы не вставлять шорткод в страницу для ее вывода?
 
так создайте шаблоны для кастомных таксономий для категорий типа так taxonomy-dflip_category.php для поста single-dflip.php а уже в файлы перенесите тоже что и у ваших стандартных файлах arcrhive или category если есть,а для single-dflip перенесите данные с single.
 
так создайте шаблоны для кастомных таксономий для категорий типа так taxonomy-dflip_category.php для поста single-dflip.php а уже в файлы перенесите тоже что и у ваших стандартных файлах arcrhive или category если есть,а для single-dflip перенесите данные с single.
<div class="dflip-item">
<h2><?php the_title(); ?></h2>
<div class="books"><?php the_content(); ?></div>
</div>
не катит, выводятся только заголовки
 
Нужно так
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<div class="dflip-item">
<h2><?php the_title(); ?></h2>
<div class="books"><?php the_content(); ?></div>
</div>
<?php endwhile; ?>
<?php endif; ?>

Вот так и заголовков нет. На сколько я понимаю он хочет чтобы я подтянул функцию
Код:
  public function shortcode( $attr, $content = '' ) {
   
    $ismulti      = isset( $attr['books'] ) && trim( $attr['books'] ) !== '';
    $atts_default = array(
        'class' => '',
        'id'    => '',
        'books' => ''
    );
    //atts or post defaults
    $atts = shortcode_atts( $atts_default, $attr, 'dflip' );
   
    if ( $ismulti ) {
      $limit = isset( $attr['limit'] ) ? (int) $attr['limit'] : 6;
      $ids   = array();
      $books = explode( ',', $atts['books'] );
      foreach ( (array) $books as $query ) {
        $query = trim( $query );
        if ( is_numeric( $query ) ) {
          array_push( $ids, $query );
        } else {
          if ( $query == 'all' || $query == '*' ) {
            $postslist = get_posts( array(
                'post_type'      => 'dflip',
                'posts_per_page' => - 1,
                'numberposts'    => $limit,
                'nopaging'       => true,
                'exclude'        => $ids
            ) );
            foreach ( $postslist as $post ) {
              array_push( $ids, $post->ID );
            }
          } else {
            $postslist = get_posts( array(
                'tax_query'      => array(
                    array(
                        'taxonomy' => 'dflip_category',
                        'field'    => 'slug',
                        'terms'    => $query,
                    )
                ),
                'post_type'      => 'dflip',
                'posts_per_page' => - 1,
                'numberposts'    => $limit,
                'nopaging'       => true,
                'exclude'        => $ids
            ) );
            foreach ( $postslist as $post ) {
              array_push( $ids, $post->ID );
            }
          }
        }
      }
      $html     = '<div class="dflip-books">';
      $limitMax = $limit == '-1' ? 999 : (int) $limit;
      $limit    = 0;
      foreach ( $ids as $id ) {
        if ( $limit >= $limitMax ) {
          break;
        }
        $attr['id'] = $id;
        $html       .= $this->book( $attr, $content, true );
        $limit ++;
       
      }
     
      return $html . '</div>';
     
    } else {
      return $this->book( $attr, $content );
    }
  }

вот её как-то нужно приспособить к
Код:
<?php $dflip = new WP_Query(array('post_type' => 'dflip'));?>
<?php if ( $dflip->have_posts() ) : ?>
    <?php while ( $dflip->have_posts() ) : $dflip->the_post(); ?>
    <div class="dflip-item">
        <h2><?php the_title(); ?></h2>
        <div class="books"><?php the_content(); ?></div>
    </div>
    <?php endwhile; ?>
<?php else: ?>
    <div class="no-dflip">...</div>
<?php endif; ?>
<?php wp_reset_query(); ?>
 
Вот так и заголовков нет. На сколько я понимаю он хочет чтобы я подтянул функцию
Код:
  public function shortcode( $attr, $content = '' ) {
  
    $ismulti      = isset( $attr['books'] ) && trim( $attr['books'] ) !== '';
    $atts_default = array(
        'class' => '',
        'id'    => '',
        'books' => ''
    );
    //atts or post defaults
    $atts = shortcode_atts( $atts_default, $attr, 'dflip' );
  
    if ( $ismulti ) {
      $limit = isset( $attr['limit'] ) ? (int) $attr['limit'] : 6;
      $ids   = array();
      $books = explode( ',', $atts['books'] );
      foreach ( (array) $books as $query ) {
        $query = trim( $query );
        if ( is_numeric( $query ) ) {
          array_push( $ids, $query );
        } else {
          if ( $query == 'all' || $query == '*' ) {
            $postslist = get_posts( array(
                'post_type'      => 'dflip',
                'posts_per_page' => - 1,
                'numberposts'    => $limit,
                'nopaging'       => true,
                'exclude'        => $ids
            ) );
            foreach ( $postslist as $post ) {
              array_push( $ids, $post->ID );
            }
          } else {
            $postslist = get_posts( array(
                'tax_query'      => array(
                    array(
                        'taxonomy' => 'dflip_category',
                        'field'    => 'slug',
                        'terms'    => $query,
                    )
                ),
                'post_type'      => 'dflip',
                'posts_per_page' => - 1,
                'numberposts'    => $limit,
                'nopaging'       => true,
                'exclude'        => $ids
            ) );
            foreach ( $postslist as $post ) {
              array_push( $ids, $post->ID );
            }
          }
        }
      }
      $html     = '<div class="dflip-books">';
      $limitMax = $limit == '-1' ? 999 : (int) $limit;
      $limit    = 0;
      foreach ( $ids as $id ) {
        if ( $limit >= $limitMax ) {
          break;
        }
        $attr['id'] = $id;
        $html       .= $this->book( $attr, $content, true );
        $limit ++;
      
      }
    
      return $html . '</div>';
    
    } else {
      return $this->book( $attr, $content );
    }
  }

вот её как-то нужно приспособить к
Код:
<?php $dflip = new WP_Query(array('post_type' => 'dflip'));?>
<?php if ( $dflip->have_posts() ) : ?>
    <?php while ( $dflip->have_posts() ) : $dflip->the_post(); ?>
    <div class="dflip-item">
        <h2><?php the_title(); ?></h2>
        <div class="books"><?php the_content(); ?></div>
    </div>
    <?php endwhile; ?>
<?php else: ?>
    <div class="no-dflip">...</div>
<?php endif; ?>
<?php wp_reset_query(); ?>
Такого не может быть!Перепроверьте еще раз
 
вы точно создали в корне темы файл taxonomy-dflip_category.php ?
Да, с таксономиями у меня нет никаких траблов)

выводятся только заголовки, только через WP_Query(array('post_type' => 'dflip')
 
Назад
Сверху