web-dev-qa-db-fra.com

Utiliser un modèle de post personnalisé

j'essaie d'implémenter un modèle de publication personnalisé pour toutes les publications classées dans une catégorie spécifique.

Je me sers du plugin WP-O-Matic qui insère les flux RSS dans cette catégorie et souhaite un peu de personnalisation pour la marque sur les messages classés dans cette catégorie particulière.

J'ai trouvé le code ci-dessous à partir d'ici: http://www.nathanrice.net/blog/wordpress-single-post-templates/

Mais quand j'ajoute ceci à mon functions.php, je reçois un avertissement:

Erreur d'analyse: erreur de syntaxe, T_LNUMBER inattendu, attente de T_STRING ou T_VARIABLE ou '{' ou '$' dans public_html/wp-content/themes/mytheme/functions.php (16): fonction créée à l'exécution à la ligne 1

add_filter( 
    'single_template', 
    create_function(
            '$t', 
            'foreach( (array) get_the_category() as $cat ) 
            { 
                    if ( file_exists(TEMPLATEPATH . "/single-{$cat->1176}.php") ) 
                            return TEMPLATEPATH . "/single-{$cat->1176}.php"; 
            } 
            return $t;' 
    )
);

Toute idée sur la façon de comprendre cela.

P.S: J’ai essayé d’adopter une approche différente en créant single.php comme page de porte pour exécuter une requête WP. Si l'id de la catégorie correspond, le fichier custom-template.php est affiché, sinon default-template.php

Comme mentionné ici .

Mais je continue à avoir l'erreur suivante:

Erreur d'analyse: erreur de syntaxe, T_LNUMBER inattendu, attente de T_STRING ou T_VARIABLE ou '{' ou '$' dans public_html/wp-content/themes/mytheme/functions.php (16): fonction créée à l'exécution à la ligne 1

Avertissement: call_user_func_array () [function.call-user-func-array]: le premier argument est censé être un rappel valide. '' A été indiqué dans /public_html/wp-includes/plugin.php à la ligne 166

1
Sledge81

$cat->1176 ne peut pas être une propriété d'un objet.

PHP Manual :

Un nom de variable valide commence par une lettre ou un trait de soulignement, suivi d'un nombre quelconque de lettres, de chiffres ou de traits de soulignement. En tant qu’expression régulière, elle s’exprimerait ainsi: '[a-zA-Z_\x7f-\xff] [a-zA-Z0-9_\x7f-\xff] *'

Utilisez $cat->term_id et comparez sa valeur avec le nombre pour lequel vous êtes absent.

Et… n’utilisez pas de fonctions anonymes . Ils ne peuvent pas être mis en cache par des caches d'opcode comme APC et ils sont difficiles à déboguer - comme vous l'avez vu. De plus, si quelqu'un souhaite supprimer ce filtre dans un thème enfant, c'est maintenant très, très difficile.

1
fuxia