web-dev-qa-db-fra.com

En utilisant WP Liste des catégories Plugin pour afficher dynamiquement la catégorie (PHP)

J'essaie d'utiliser le plug-in Catégorie Messages (WP-CPL) sur un blog sur lequel je travaille pour filtrer les "Articles récents" par catégorie. En gros, lorsque quelqu'un clique sur le nom de la catégorie sur le blog, j'aimerais qu'il affiche les articles de cette catégorie. Cela se ferait via le fichier 'archives.php' du modèle Life Is Simple.

Le shortcode pour le plug-in est:

[wp_cpl_sc cat_id=40 list_num=4 css_theme=2 sticky_post="79"]

Ceci est juste un exemple où 'cat_id' représente la catégorie que le plugin va afficher. Je ne veux pas afficher une seule catégorie, je veux qu'il affiche la catégorie appropriée lorsque quelqu'un clique sur le lien. Comment faire en sorte que le plug-in reconnaisse la catégorie demandée et affiche les publications appropriées?

Je sais que le titre de la catégorie est:

<?php single_cat_title(); ?>

Mais comment trouver le numéro d'identification de la catégorie de cette façon? J'ai inclus le PHP du fichier du plug-in intitulé "wp_cpl_shortcode.php" ci-dessous s'il doit être modifié. Je préférerais utiliser le shortcode dans le codage réel du site par souci de simplicité.

<?php
/**
 * shortcode
 * The library of shortcode class
 * @author Swashata <[email protected]>
 * @subpackage WP Category Post List Plugin
 * @version 2.0.0
 */

/**
 * The WP CPL shorttag support
 * @since 1.1.0
 * This was started from the version 1.1.0 and was finished by 2.0.0
 */
class itgdb_wp_cpl_shortcode {
    /**
     * The wp_cpl_shortcode_handler function
     * This function is responsible for converting shortcodes into dynamic contents
     * @package WordPress
     * @subpackage WordPress Category Post List plugin
     * @since 1.1.0
     * @param array $atts The attributes passed through the shortcode
     * @param string $content The string passed through the shortcode. Used for generating title
     * @return string The modified content
     */
    public function wp_cpl_shortcode_handler($atts, $content = null) {
        /** first extract the attributes */
        $op = shortcode_atts(array(
        'cat_id'            => 1,
            'css_theme'                 => 0,
        'is_thumb'          => 'true',
        'list_num'          => 10,
        'show_comments'     => 'true',
        'sort_using'        => 1,
        'sort_order'        => 'asc',
        'exclude_post'      => '',
        'sticky_post'       => '',
            'show_date'                 => 'true',
            'show_author'               => 'true',
            'show_excerpt'              => 'true',
            'excerpt_length'            => 150,
            'optional_excerpt'          => 'false',
            'read_more'                 => __('Continue Reading', itgdb_wp_cpl_loader::$text_domain),
        ), $atts);

        /** Sanitize some of the user datas */
        $cat_id = (int) $op['cat_id'];
        $i = 0;
        /** Done, now the main thing */
        include_once itgdb_wp_cpl_loader::$abs_path . '/includes/wp_cpl_output_gen.php';
        $output_gen = new itgdb_wp_cpl_output_gen();
        return $output_gen->shortcode_output_gen($op);
    }
}

Désolé si cette question est convoquée, j'apprends toujours et je pense avoir tordu mon cerveau aujourd'hui. Merci pour toute aide!


La page du plug-in est ici:

http://wordpress.org/extend/plugins/wp-category-posts-list/

1
MxmastaMills

J'ai trouvé un moyen beaucoup plus facile de faire cela. J'ai appelé ceci PHP dans la boucle:

if ($paged == 0)
  $offset = 0;
else
  $offset = ($paged - 1) * 11;
global $post;
$category = get_the_category($post->ID);
$category = $category[0]->cat_ID;
$myposts = get_posts(array('numberposts' => 11, 'offset' => $offset, 'category__in' => array($category), 'post__not_in' => array($post->ID),'post_status'=>'publish'));
foreach($myposts as $post) :
setup_postdata($post);

Et puis était capable de styler les résultats avec CSS et en appelant différents éléments tels que the_title ();

1
MxmastaMills