Problems with other items on the page
-
Hi, i’m trying to display my custom type on my page. It shows up perfect but when i try to display a banner, text or picture above the shortcode it puts it automatically bellow himself like if he wanted to be the first one no matter what. I need to fix this PLEASE.
I made some changes in the php code, this is what it looks like:
[ Moderator Note: Please post code or markup snippets between backticks or use the code button. You used multiple backticks, it really messed up the formatting. ]
<?php /** * Plugin Name: Display Posts Shortcode * Plugin URI: https://www.billerickson.net/shortcode-to-display-posts/ * Description: Display a listing of posts using the [display-posts] shortcode * Version: 2.3 * Author: Bill Erickson * Author URI: https://www.billerickson.net * * This program is free software; you can redistribute it and/or modify it under the terms of the GNU * General Public License version 2, as published by the Free Software Foundation. You may NOT assume * that you can use any other version of the GPL. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * @package Display Posts * @version 2.2 * @author Bill Erickson <[email protected]> * @copyright Copyright (c) 2011, Bill Erickson * @link https://www.billerickson.net/shortcode-to-display-posts/ * @license https://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ /** * To Customize, use the following filters: * * <code>display_posts_shortcode_args</code> * For customizing the $args passed to WP_Query * * <code>display_posts_shortcode_output</code> * For customizing the output of individual posts. * Example: https://gist.github.com/1175575#file_display_posts_shortcode_output.php * * <code>display_posts_shortcode_wrapper_open</code> * display_posts_shortcode_wrapper_close * For customizing the outer markup of the whole listing. By default it is a <ul> but * can be changed to <ol> or <div> using the 'wrapper' attribute, or by using this filter. * Example: https://gist.github.com/1270278 */ // Create the shortcode add_shortcode( 'display-posts', 'be_display_posts_shortcode' ); function be_display_posts_shortcode( $atts ) { // Original Attributes, for filters $original_atts = $atts; // Pull in shortcode attributes and set defaults $atts = shortcode_atts( array( 'author' => '', 'category' => '', 'date_format' => '(n/j/Y)', 'id' => false, 'ignore_sticky_posts' => false, 'image_size' => false, 'include_content' => false, 'include_date' => false, 'include_excerpt' => false, 'meta_key' => '', 'no_posts_message' => '', 'offset' => 0, 'order' => 'DESC', 'orderby' => 'date', 'post_parent' => false, 'post_status' => 'publish', 'post_type' => 'post', 'posts_per_page' => '10', 'tag' => '', 'tax_operator' => 'IN', 'tax_term' => false, 'taxonomy' => false, 'wrapper' => 'ul', 'include_autor' => false, ), $atts ); $author = sanitize_text_field( $atts['author'] ); $category = sanitize_text_field( $atts['category'] ); $date_format = sanitize_text_field( $atts['date_format'] ); $id = $atts['id']; // Sanitized later as an array of integers $ignore_sticky_posts = (bool) $atts['ignore_sticky_posts']; $image_size = sanitize_key( $atts['image_size'] ); $include_content = (bool)$atts['include_content']; $include_date = (bool)$atts['include_date']; $include_excerpt = (bool)$atts['include_excerpt']; $meta_key = sanitize_text_field( $atts['meta_key'] ); $no_posts_message = sanitize_text_field( $atts['no_posts_message'] ); $offset = intval( $atts['offset'] ); $order = sanitize_key( $atts['order'] ); $orderby = sanitize_key( $atts['orderby'] ); $post_parent = $atts['post_parent']; // Validated later, after check for 'current' $post_status = $atts['post_status']; // Validated later as one of a few values $post_type = sanitize_text_field( $atts['post_type'] ); $posts_per_page = intval( $atts['posts_per_page'] ); $tag = sanitize_text_field( $atts['tag'] ); $tax_operator = $atts['tax_operator']; // Validated later as one of a few values $tax_term = sanitize_text_field( $atts['tax_term'] ); $taxonomy = sanitize_key( $atts['taxonomy'] ); $wrapper = sanitize_text_field( $atts['wrapper'] ); $include_autor = (bool)$atts['include_autor']; // Set up initial query for post $args = array( 'category_name' => $category, 'order' => $order, 'orderby' => $orderby, 'post_type' => explode( ',', $post_type ), 'posts_per_page' => $posts_per_page, 'tag' => $tag, ); // Ignore Sticky Posts if( $ignore_sticky_posts ) $args['ignore_sticky_posts'] = true; // Meta key (for ordering) if( !empty( $meta_key ) ) $args['meta_key'] = $meta_key; // If Post IDs if( $id ) { $posts_in = array_map( 'intval', explode( ',', $id ) ); $args['post__in'] = $posts_in; } // Post Author if( !empty( $author ) ) $args['author_name'] = $author; // Offset if( !empty( $offset ) ) $args['offset'] = $offset; // Post Status $post_status = explode( ', ', $post_status ); $validated = array(); $available = array( 'publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', 'trash', 'any' ); foreach ( $post_status as $unvalidated ) if ( in_array( $unvalidated, $available ) ) $validated[] = $unvalidated; if( !empty( $validated ) ) $args['post_status'] = $validated; // If taxonomy attributes, create a taxonomy query if ( !empty( $taxonomy ) && !empty( $tax_term ) ) { // Term string to array $tax_term = explode( ', ', $tax_term ); // Validate operator if( !in_array( $tax_operator, array( 'IN', 'NOT IN', 'AND' ) ) ) $tax_operator = 'IN'; $tax_args = array( 'tax_query' => array( array( 'taxonomy' => $taxonomy, 'field' => 'slug', 'terms' => $tax_term, 'operator' => $tax_operator ) ) ); // Check for multiple taxonomy queries $count = 2; $more_tax_queries = false; while( isset( $original_atts['taxonomy_' . $count] ) && !empty( $original_atts['taxonomy_' . $count] ) && isset( $original_atts['tax_' . $count . '_term'] ) && !empty( $original_atts['tax_' . $count . '_term'] ) ): // Sanitize values $more_tax_queries = true; $taxonomy = sanitize_key( $original_atts['taxonomy_' . $count] ); $terms = explode( ', ', sanitize_text_field( $original_atts['tax_' . $count . '_term'] ) ); $tax_operator = isset( $original_atts['tax_' . $count . '_operator'] ) ? $original_atts['tax_' . $count . '_operator'] : 'IN'; $tax_operator = in_array( $tax_operator, array( 'IN', 'NOT IN', 'AND' ) ) ? $tax_operator : 'IN'; $tax_args['tax_query'][] = array( 'taxonomy' => $taxonomy, 'field' => 'slug', 'terms' => $terms, 'operator' => $tax_operator ); $count++; endwhile; if( $more_tax_queries ): $tax_relation = 'AND'; if( isset( $original_atts['tax_relation'] ) && in_array( $original_atts['tax_relation'], array( 'AND', 'OR' ) ) ) $tax_relation = $original_atts['tax_relation']; $args['tax_query']['relation'] = $tax_relation; endif; $args = array_merge( $args, $tax_args ); } // If post parent attribute, set up parent if( $post_parent ) { if( 'current' == $post_parent ) { global $post; $post_parent = $post->ID; } $args['post_parent'] = intval( $post_parent ); } // Set up html elements used to wrap the posts. // Default is ul/li, but can also be ol/li and div/div $wrapper_options = array( 'ul', 'ol', 'div' ); if( ! in_array( $wrapper, $wrapper_options ) ) $wrapper = 'ul'; $inner_wrapper = 'div' == $wrapper ? 'div' : 'li'; $listing = new WP_Query( apply_filters( 'display_posts_shortcode_args', $args, $original_atts ) ); if ( ! $listing->have_posts() ) return apply_filters( 'display_posts_shortcode_no_results', wpautop( $no_posts_message ) ); $inner = ''; while ( $listing->have_posts() ): $listing->the_post(); global $post; $image = $date = $excerpt = $content = ''; $title = '<a href="' . apply_filters( 'the_permalink', get_permalink() ) . '">' . apply_filters( 'the_title', get_the_title() ) . '</a>'; if ( $image_size && has_post_thumbnail() ) $image = '<a href="' . get_permalink() . '">' . get_the_post_thumbnail( $post->ID, $image_size ) . '</a> '; if ( $include_date ) $date = ' <span class="date">' . get_the_date( $date_format ) . '</span>'; if( $include_content ) $content = '<div class="content">' . apply_filters( 'the_content', get_the_content() ) . '</div>'; $class = array( 'listing-item' ); $class = apply_filters( 'display_posts_shortcode_post_class', $class, $post, $listing ); $output = '<' . $inner_wrapper . ' class="' . implode( ' ', $class ) . '">' . $image . $title . $date . $excerpt . $content . '</' . $inner_wrapper . '>'; $output = '<' . $inner_wrapper . ' class="' . implode( ' ', $class ) . '">' . $image . '</' . $inner_wrapper . '>'; $output = ' '; ?> <table width="100%" border="0"> <tr> <td width="130px" rowspan="3" align="left" valign="top"> <?php echo $image; ?> </td> <td align="left" valign="top"> <?php echo $title; ?> </td> </tr> <tr> <td align="left" valign="top"> <?php if( $include_autor ) { if(qtrans_getLanguage()=='en') { echo "<b>Author:</b> "; more_fields('autor'); } else { echo "<b>Autor:</b> "; more_fields('autor'); } } ?> </td> </tr> <tr> <td align="left" valign="top"> <?php if ( $include_excerpt ) { echo $excerpt = ' <span class="excerpt-dash">-</span> <span class="excerpt">' . get_the_excerpt() . '</span>'; } else echo $excerpt = ' <span class="excerpt-dash">-</span> <span class="excerpt">' . get_the_excerpt() . '</span>'; ?> </td> </tr> <tr> <td height="23"></td> <hr> </tr> </table> <?php // If post is set to private, only show to logged in users if( 'private' == get_post_status( $post->ID ) && !current_user_can( 'read_private_posts' ) ) $output = ''; $inner .= apply_filters( 'display_posts_shortcode_output', $output, $original_atts, $image, $title, $date, $excerpt, $inner_wrapper, $content, $class ); endwhile; wp_reset_postdata(); $open = apply_filters( 'display_posts_shortcode_wrapper_open', '<' . $wrapper . ' class="display-posts-listing">', $original_atts ); $close = apply_filters( 'display_posts_shortcode_wrapper_close', '</' . $wrapper . '>', $original_atts ); $return = $open . $inner . $close; return $return; } ?>
I’m calling the custom type using this shortcode:
[display-posts post_type="catalogo" taxonomy="best_sellers" tax_term="top10" image_size="thumbnail" wrapper="div"?include_autor="true" include_excerpt="false"]
PLEASE HELP!!!!!
https://www.ads-software.com/extend/plugins/display-posts-shortcode/
- The topic ‘Problems with other items on the page’ is closed to new replies.