Я все еще новичок в PHP, поэтому извините, если это глупый вопрос =)
В блоге WordPress я пытаюсь вставить настраиваемое поле с несколькими значениями («ингредиенты») в свой канал RSS. (У меня также есть другие посты, которые не являются рецептами, поэтому заголовки «Ингредиенты» и «Инструкции» находятся внутри оператора if.) Вот весь мой код:
<?php
function insertIngredients($content) {
/* get ingredients into variable $recipeStuff */
$recipeStuff =
if ($ingredients = get_post_custom_values('ingredients')) {
echo '<h3>Ingredients</h3><ul id="ingredients">';
foreach ( $ingredients as $key => $value ) {
echo '<li>';
echo $value;
echo '</li>';
}
echo '</ul><h3>Instructions</h3>';
}
/* add before content */
$content = $recipeStuff . $content;
return $content;
}
/* Do it! */
add_filter('the_excerpt_rss', 'insertIngredients');
add_filter('the_content_rss', 'insertIngredients');
?>
Но я получаю "неожиданную ошибку IF", так что, думаю, я не могу поместить все это в переменную $ recipeStuff =) Я просто не могу придумать, как еще ее туда поместить.
(Если это важно, оператор IF - это именно то, что я использую в сообщениях на самой странице, и он отлично работает!)
Большое спасибо заранее за любую помощь! = D
UPDATE!
Вот что у меня сейчас в коде:
function insertIngredients($content) {
/* test for presence of ingredients & set variables */
if ($ingredients = get_post_custom_values('ingredients')) {
$heading1 = '<h3>Ingredients</h3><ul id="ingredients">';
foreach ( $ingredients as $key => $value ) {
$ings = '<li>' . $value . '</li>';
}
$heading2 = '</ul><h3>Instructions</h3>';
}
/* if no ingredients, variables are empty */
else { $heading1=''; $ings=''; $heading2=''; }
$recipeStuff = $heading1 . $ings . $heading2 ;
/* add before content */
$content = $recipeStuff . $content;
return $content;
}
/* Do it! */
add_filter('the_excerpt_rss', 'insertIngredients');
add_filter('the_content_rss', 'insertIngredients');
Я больше не получаю сообщение об ошибке, но ингредиенты не отображаются в ленте RSS. Я не уверен, если это потому, что что-то все еще не так с кодом, или требуется некоторое время, чтобы иметь эффект (хотя я не знаю, почему это так)? Я использую FeedBurner, если это имеет значение.
Большое спасибо за ваши ответы всем. Я собираюсь попробовать несколько разных вещей и обновить немного позже. Спасибо! =)