J'essaie de générer les valeurs de deux champs personnalisés créés par le plug-in ACF dans un type d'article personnalisé. J'ai besoin que cela soit affiché dans une fenêtre popup. Les plugins wordpress popup ne supportent pas le code php, seuls les shortcodes peuvent être appelés depuis l'éditeur de contenu. J'essaie donc de créer un shortcode à utiliser dans l'éditeur de la fenêtre contextuelle pour afficher les valeurs des champs personnalisés. Je sais que nous pouvons générer un shortcode [cite]
en utilisant ce code dans le thème functions.php
function cite_shortcode() {
}
add_shortcode( 'cite', 'cite_shortcode' );
Mais je ne pouvais pas comprendre comment ajouter le code PHP à ce code. J'ai essayé de faire quelque chose comme:
function cite_shortcode() {
<div>
<?php
$object_terms = wp_get_object_terms( $post->ID, 'issue', array( 'fields' => 'all' ) );
if ( $object_terms ) {
$res = '';
foreach ( $object_terms as $term ) {
if ( $term->parent ) {
$res .= $term->name . ', ';
}
}
echo rtrim($res,' ,');
}
?>), pp: <?php the_field('first_page'); ?>-<?php the_field('last_page'); ?>
</div>
}
add_shortcode( 'cite', 'cite_shortcode' );
Mais ça n'a pas marché. ça montre:
Erreur d'analyse: erreur de syntaxe, inattendue
Donc, mes questions sont:
Meilleures salutations
Nous avons construit des codes abrégés dans le passé en utilisant des variables de concaténation.
Pour paraphraser le lien ci-dessus, vous devez générer votre PHP en tant que tel.
$output = '<p>';
$output .= '<strong>' . $content . '</strong>';
$output .= '</p>';
return $output;
Remarque: voir la concaténation de la variable .=
.
Juste au cas où quelqu'un chercherait cela à l'avenir ...
La bonne façon de générer une valeur php via un shortcode est la suivante:
add_shortcode('shortcode_name', 'shortcode_callback');
function shortcode_callback( $atts = array(), $content = null ) {
$output = "Add your PHP here!!!";
return $output;
}
Salutations de la Grèce ensoleillée !!!
- comment puis-je faire fonctionner ce code?
function cite_shortcode($atts) {
$output = '<div>';
$object_terms = wp_get_object_terms( $post->ID, 'issue', array( 'fields' => 'all' ) );
if ( $object_terms ) {
$res = '';
foreach ( $object_terms as $term ) {
if ( $term->parent ) {
$res .= $term->name . ', ';
}
}
$output .= rtrim($res,' ,');
}
$output .= 'pp: '.get_the_field('first_page') . '-' . get_the_field('last_page');
$output .= '</div>';
return $output ;
}
add_shortcode( 'cite', 'cite_shortcode' );
- est-il possible de mettre le code php dans le fichier cite.php et d'afficher ses valeurs via un shortcode généré dans functions.php? et comment faire ça?
Dans ce cas, vous pouvez inclure votre fichier php dans un code court, quelque chose de similaire à ce code
function cite_shortcode($atts) {
$output = '';
ob_start();
include "yourphpfile.php"; // Replace with exact location of php file
$output .= ob_get_clean();
return $output ;
}
add_shortcode( 'cite', 'cite_shortcode' );
J'espère que ça aide.