web-dev-qa-db-fra.com

Passer des attributs au shortcode dynamiquement

Puis-je passer dynamiquement à des attributs de code court comme le montre l'exemple suivant

[ authoorsposts  author = get_the_author_id(); ]
2
bela

Pas tout à fait comme ça, mais vous pouvez obtenir le même résultat si vous utilisez une valeur ou un argument prédéfini dans votre code court pour agir comme un "indicateur":

[authoorsposts author="post"]

... alors dans votre handler:

function wpse_209684_author( $atts ) {
    if ( ! empty( $atts['author'] ) ) {
        $author = $atts['author'];

        if ( $author === 'post' ) // Our flag, make $author the current post author
            $author = get_the_author_id();
        else // Otherwise just accept a hardcoded author ID
            $author = absint( $author );
    }
}
2
TheDeadMedic

Vous pouvez accéder à l'objet auteur à l'intérieur du raccourci function:

$author = get_the_author();
//  access ID of author object like $author->ID

Puisque les shortcodes sont ajoutés au contenu, votre code PHP serait échappé et ne s'exécuterait pas.

0
Hans Spieß