web-dev-qa-db-fra.com

Comment appeler la fonction dans une page/publication, pour générer dynamiquement du contenu?

J'ai ajouté la fonction suivante au fichier functions.php

function contentGenerator($param) {
   if($param) {
      echo "Content true";
   } else {
      echo "Content false";
   }
}

Comment appeler cette fonction dans un article ou une page de blog spécifique?

3
Sven

Si vous parlez du contenu d'un article/d'une page, ce n'est pas possible. Voici trois manières différentes de résoudre votre problème. La première vous donnera la possibilité d’ajouter le contenu généré dans le contenu de votre message (ou de votre page). Les deux autres seront imprimés dans l’un de vos fichiers modèles. Par exemple. dans votre single.php ou page.php.

1. Shortcode

Ceci est plus ou moins copié/collé à partir de la Shortcode API examples. Placez-le dans votre functions.php ou dans l’un de vos plugins personnalisés.

Vous pouvez inclure la fonction WYSIWYG de votre article ou de la page avec la syntaxe suivante:

[unique_shortcode_name foo="123" bar="medium"]

Placez ceci dans votre functions.php ou dans l’un de vos plugins personnalisés:

add_shortcode('unique_shortcode_name', 'generate_content');
function generate_content($attributes) {
    // Parses the parameters/attributes and makes them available as variables.
    extract(shortcode_atts(array(
        'foo' => 'default value for foo',
        'bar' => 'default value for bar',
    ), $attributes));

    // Generate stuff
    $output = complex_content_generation_goes_here();

    return $output;
}

Vous pouvez également créer un shortcode qui inclut le contenu. Les codes courts englobants vous permettent de prendre du texte en tant que paramètre. Cela pourrait s'appeler quelque chose comme ça:

[unique_shortcode_name foo="123"]Some text input[/unique_shortcode_name]

En savoir plus sur cela à la documentation de l'API Shortcode .

2. Modèle de page

Cela vous donnera la possibilité de définir un fichier modèle spécifique pour un page (cela ne fonctionnera pas pour les publications classiques). Voici la documentation sur Modèles de page .

Vous pouvez baser votre modèle à partir d'un fichier de modèle existant, tel que page.php. La seule exigence est que vous placiez un commentaire multiligne en haut de votre fichier de modèle comme ceci:

<?php
/*
Template Name: Products Page
*/
?>

Il n’existe aucune exigence relative au nom de fichier, mais essayez de ne pas le nommer, il pourrait donc être récupéré par WordPress via la hiérarchie des modèles (voir le numéro 3). Si vous le faites, WordPress pourrait également utiliser votre modèle pour d'autres pages, ce qui vous donnera des résultats inattendus.

Si vous avez correctement effectué les opérations ci-dessus, vous devriez voir une section Modèle avec une liste déroulante sous Attributs de page lorsque vous modifiez ou créez une page. Comme ça:

Image showing the template settings on a page edit

3. Hiérarchie des modèles

La hiérarchie de modèles décide quel modèle doit être utilisé pour la page actuelle et le fait en recherchant un fichier approprié par son nom. Il existe une image très descriptive de la hiérarchie de modèles dans le Codex. S'il vous plaît. examinez-le pour mieux comprendre le fonctionnement de la hiérarchie des modèles.

6
hampusn

contentGenerator($param);
Il suffit de mettre ce code dans le fichier page.php.
Si vous définissez des fonctions dans function.php, celles-ci peuvent être utilisées dans plusieurs fichiers de modèle de votre thème.

1
dipali