Ich benutze ein Like- Plugin, das eine ähnliche Schaltfläche zu meiner Site hinzufügt. Es speichert die Anzahl der “Likes” usw. in der database. Das Plugin erlaubt mir auch, die beliebtesten Posts (DESC) in einer Seite mit einem Shortcode anzuzeigen – leider zeigt diese function nur die Posts ohne Paginierung in einem einfachen Listenformat an. Hier ist die Shortcode-function des Plugins, um den beliebtesten Post anzuzeigen:
/*--------------------------------------------* * Shortcode //dot_recommended_top_posts *--------------------------------------------*/ function dot_recommended_top_posts( $atts, $content = null ) { // define attributes and their defaults // get our variable from $atts $atts = shortcode_atts( array( 'container' => 'li', 'number' => '10', 'post_type' => 'post', 'year' => '', 'monthnum' => '', 'show_count' => '1', ), $atts ); global $wpdb; // empty params array to hold params for prepared statement $params = array(); // build query string $sql = "SELECT * FROM $wpdb->posts, $wpdb->postmeta WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id"; // add year if( '' !== $atts['year'] ) { $sql .= ' AND YEAR(post_date) = %d'; $params[] = $atts['year']; } // add monthnum if( '' !== $atts['monthnum'] ) { $sql .= ' AND MONTH(post_date) = %d'; $params[] = $atts['monthnum']; } // add post WHERE $sql .= " AND post_status = 'publish' AND post_type = %s AND meta_key = '_recommended'"; $params[] = $atts['post_type']; // add order by and limit $sql .= " ORDER BY {$wpdb->postmeta}.meta_value+0 DESC LIMIT %d"; $params[] = $atts['number']; // prepare sql statement $query = $wpdb->prepare( $sql, $params ); // execute query $posts = $wpdb->get_results( $query ); $return = ''; foreach ($posts as $item) { $post_title = stripslashes( $item->post_title ); $permalink = get_permalink( $item->ID ); $post_count = $item->meta_value; $return .= ''; $return .= '' . esc_html( $post_title ) . ' '; if ( $atts['show_count'] == '1') { $return .= '' . esc_html( $post_count ) . ' '; } $return .= ''; } return $return; } //dot_recommended_top_posts
Meine Frage:
Wie kann ich den Post mit Paginierung aus der database abfragen, indem ich eine benutzerdefinierte Abfrage in einer benutzerdefinierten Seitenvorlage verwende? Ich habe bereits eine Seitenvorlage, die Post von einem anderen Build in Theme-Function mit Paginierung perfectley anzeigt. Mein Ziel ist es, diese Seitenvorlage so anzupassen, dass die beliebtesten Beiträge des Plugins in absteigender Reihenfolge angezeigt werden. Hier kommt die Vorlage, die mit der anderen function gut funktioniert – aber ich brauche deine Hilfe, um die Abfrage zu erstellen, um die beliebtesten Beiträge zu erhalten, die vom Plugin gesetzt werden:
'" . date('Ym-d', strtotime($duration)) . "'"; // if (of_get_option('popularity') == 'comments') { // $where .= ' AND comment_count != 0'; // } // return $where; // } // if ('likes' == $popularity = of_get_option('popularity')) { // $args = array( // 'meta_key' => '_Likes Count', // 'meta_compare' => '>', // 'meta_value' => '0', // 'orderby' => 'meta_value_num', // 'order' => 'DESC', // 'category_name' => sanitize_text_field($_GET['category']), // 'paged' => $paged // ); // add_filter('posts_where', 'filter_where'); // add_filter('posts_orderby', 'xay_meta_value_num_orderby'); // query_posts($args); // remove_filter('posts_where', 'filter_where'); // remove_filter('posts_orderby', 'xay_meta_value_num_orderby'); // } else if ($popularity == 'comments') { // $args = array( // 'orderby' => 'comment_count', // 'category_name' => sanitize_text_field($_GET['category']), // 'paged' => $paged // ); // add_filter('posts_where', 'filter_where'); // add_filter('posts_orderby', 'xay_comments_orderby'); // query_posts($args); // remove_filter('posts_where', 'filter_where'); // remove_filter('posts_orderby', 'xay_comments_orderby'); // } else { // $args = array( // 'category_name' => sanitize_text_field($_GET['category']), // 'paged' => $paged // ); // query_posts($args); // } get_template_part('index', 'masonry'); get_footer(); ?>
Solutions Collecting From Web of "So fragen Sie Beiträge aus der database ab, die durch das Plugin festgelegt wurde"
- Jquery script nach shortcode ausführen
- Fügen Sie eine benutzerdefinierte Einstellung hinzu, die die Optionsschaltfläche zur WP-Galerie verwendet
- Wie man ein dvi-Tag zu einem shortcode hinzufügt und dann einen generierten Text mit jQuery ändert
- Verwirrt über Kurzwahl- und Einstellungswerte
- Versuchen Sie, eine Liste von Links mit get_sites zu alphabetisieren
- Erstellen Sie einen Shortcode mit mathematischer Berechnung
- Laden Sie CSS-Dateien im Header des Bones-Themes?
- Erstellen Sie einen Shortcode, um JavaScript zu echozieren
-
Beschränken Sie den Zugriff auf eine Seite im Backend
-
Senden Sie Admin-E-Mails an mehrere E-Mail-Adressen
-
Zeige einen Beitrag aus jeder benutzerdefinierten Kategorie (aka “Begriff der benutzerdefinierten Taxonomie”)
-
Benutzerdefinierter Datumswechsler post_date => future – verpasster Zeitplanerrors
-
Wenden Sie pre_get_posts auf bestimmte benutzerdefinierte Post-Typen im Admin-Bereich an
-
Archivseite mit falschem Monat
-
Ziehen in der Post-Kategorie und Kinder innerhalb der Kategorie
-
TinyMCE Editor bricht mein schönes HTML
-
benutzerdefinierter Post mit Lade-Skript für jeden Post
-
Welche Änderung muss der Titel des Elternteils enthalten?
-
get_posts – benötigt alle Kategorien
-
So blenden Sie ein HTML-Element basierend auf der Benutzerrolle aus
-
Erstellen von “statischen” Taxonomien zur Auswahl innerhalb des benutzerdefinierten Post-Typs?
-
Stylesheet in der Kategorie bearbeiten Seite laden?
-
Deaktivieren Sie die Autorenseiten für bestimmte Benutzer