Wordpress PHP внутри PHP и шорткода

Я создаю шаблон электронной коммерции WordPress с плагином Cart66. Используя шорткод Cart66 на странице шаблона php, я хотел бы сгенерировать идентификатор сообщения внутри шорткода. Может кто-нибудь, пожалуйста, помогите и скажите мне, возможно ли это. Вот код, который я использую.

<?php echo do_shortcode("[add_to_cart item=\". the_ID() .\" quantity=\"user:1\"]"); ?>

Этот код будет лежать внутри loop-single.php и выше

Спасибо!


person user1227678    schedule 23.04.2012    source источник


Ответы (3)


У @silent почти было это, но это должно быть get_the_ID(), а не the_ID(), так как более поздний повторяет это, поэтому попробуйте:

<?php echo do_shortcode("[add_to_cart item=\"". get_the_ID() ."\" quantity=\"user:1\"]"); ?>
person Bainternet    schedule 23.04.2012
comment
@Ленин, вам не следует редактировать код, не стесняйтесь оставлять комментарий с тем, что, по вашему мнению, может быть лучше, или опубликовать свой собственный ответ, объясняющий, почему он лучше. - person Jacob Schoen; 08.12.2012
comment
Причина оставления в комментарии к редактированию действительна в соответствии с инструкциями @jschoen. - person Lenin; 11.12.2012
comment
Я редактировал с одинарной кавычкой, которая не только проще, но и в PHP не анализирует переменные. А внутри одинарной кавычки можно использовать двойные кавычки. Таким образом, двойные кавычки не нужно экранировать с помощью ``. - person Lenin; 11.12.2012

Правая строка должна быть:

<?php echo do_shortcode("[add_to_cart item=\"". the_ID() ."\" quantity=\"user:1\"]"); ?>
person ariefbayu    schedule 23.04.2012
comment
Спасибо! Можете ли вы помочь мне с другим вопросом? Похоже, это сработало, но теперь он показывает идентификатор на веб-странице html вместо того, чтобы помещать его в идентификатор для шорткода. - person user1227678; 23.04.2012
comment
ааа, я хочу вернуть идентификатор ... не повторять его! Спасибо за помощь! - person user1227678; 23.04.2012
comment
чтобы вернуть идентификатор, используйте $post->ID внутри цикла - person ariefbayu; 23.04.2012

простой правильный ответ:

<?php echo do_shortcode('[add_to_cart item="'. get_the_ID() .'" quantity="user:1"]');?>
person Lenin    schedule 07.12.2012