web-dev-qa-db-fra.com

Générer des liens postaux aléatoires quelque part dans le post

J'ai un petit problème sur lequel j'ai vraiment besoin d'aide :(. Donc, j'ai besoin de créer dans mon post de wordpress quelque chose que j'appelle "Vous pouvez aime aussi lire "! Laissez-moi vous en dire plus à ce sujet:

Par exemple, mon post wordpress ressemble à ceci:

Titre.

3-4 lignes de texte (comme une introduction ~ thème de l'article).

Vous pouvez aussi aimer lire.

Le reste du post.

Fin.

Le "Vous pouvez aussi aimer lire" contient 2 liens. Im alwas générer ces liens manuellement via le code html (ul, li, une balises). Il m'est donc difficile de toujours générer ces liens manuellement. J'ai besoin en quelque sorte de générer ces liens de manière aléatoire et automatique.

enter image description here

J'ai googlé pendant 2h et je n'ai rien trouvé. En fait, j'ai trouvé un plugin qui peut le faire, mais ça ne marche pas (pas de mise à jour depuis plus de 4 ans) .... J'ai aussi trouvé du code php mais ça ne marche pas non plus. Donc, je n'ai vraiment aucune idée de ce que je pourrais faire ensuite :(

Alors, pouvez-vous m'aider?

Merci

2
Fantastickmath

Modifier

Vous avez indiqué que vous souhaitiez réutiliser ce code. Il est donc préférable de l'utiliser dans une fonction pour pouvoir l'appeler à tout moment. J'ai modifié ma réponse pour refléter ceci ci-dessous.


Vous pouvez utiliser le code ci-dessous pour générer une liste de publications (dans votre cas, 2 publications aléatoires) avec un en-tête. La sortie est formatée de la manière indiquée par l'image dans votre question. Ce code peut être utilisé n’importe où dans votre thème -

my_post_list();

La fonction qui fait tout le travail, ci-dessous, devrait être placée dans functions.php .

Si vous le souhaitez, vous pouvez transmettre un titre de liste différent à la fonction, ainsi qu’un tableau $args différent. Cela vous permet de personnaliser l'étendue de vos publications aléatoires, en ciblant des catégories ou des balises spécifiques, en recherchant uniquement une plage de dates donnée ou en recherchant uniquement des publications pour lesquelles une valeur de données personnalisée est définie, par exemple - les possibilités sont infinies. Consultez la référence de classe pour WP_Query pour plus d'informations sur ce que vous pouvez faire avec ces arguments.

/**
 * Output a list of posts under a heading
 *
 * @param string $title The title to output in the list heading
 * @param array $args   The arguments for getting the required posts
 */
function my_post_list($title = 'You may also like to read:', $args = array()){

    $defaults = array(  // Set some defaults for querying the Posts
        'ignore_sticky_posts'   => true,
        'posts_per_page'        => 2,
        'post_status'           => 'publish',
        'orderby'               => 'Rand'
    );
    $args = wp_parse_args($args, $defaults);    // Parse any arguments passed to this function with the defaults to create a final '$args' array

    $random = new WP_Query($args);  // Query the Posts

    if($random->have_posts()) : // Check to make sure some random Posts were returned

        echo '<h4>' . $title . '</h4>';
        echo '<ul>';

        while($random->have_posts()) : $random->the_post(); // Create a new custom Loop, and for each Post set up the postdata

            printf('<li id="random-post-%1$s">', get_the_ID());

            printf(
                '<a href="%1$s" title="%2$s">%3$s</a>',
                get_permalink(get_the_ID()),
                the_title_attribute('before=Check out \'&after=\'&echo=0'),
                get_the_title()
            );

            echo '</li>';

        endwhile;
        wp_reset_postdata();    // Reset the postdata so that the rest of your Loop will work correctly

        echo '</ul>';

    endif;

}
1
David Gard