Sziasztok!
Eddig mindig get_post -tal vettem ki a posztokat amiket akartam, és utána a $post->… tulajdonságokat írtam ki, módosítottam meg minden, de most úgy döntöttem, hogy úgy fogom használni a WP -t, hogy ezeket a loop-ban oldom meg, és nem teljesen értem a filterek használatát. Ebben szeretnék segítséget kérni, hogy jól használom -e őket itt? Szerintem nem, majd a kód után írom miért.
<?php
$args = array(
'cat' => 1,
'posts_per_page' => 5,
);
query_posts($args);
if (have_posts()) {
add_filter('the_excerpt', 'addMoreButton', 10, 2);
while (have_posts()) {
the_post();
?><a href="<?php the_permalink() ?>" rel=“bookmark” title="<?php the_title_attribute(); ?>"><?php the_title(); ?>
<?php the_time('Y. F j., l') ?>
<?php
echo apply_filters('the_excerpt', get_the_excerpt(), $post->ID);
?>
<?php
}
remove_filter('the_excerpt', 'addMoreButton');
}
?>
A függvény pedig:
[code=php:l0fi42gc]function addMoreButton($content, $postID) {
$link = ‘’;
if (preg_match('/<\/p>$/is’, $content)) {
$content = preg_replace(’/<\/p>$/is’, $link . '
', $content);
}
//pre ($content);
return $content;
}
Ez így remekül működik, viszont azt nem értem, hogy a későbbi excerptjeimre miért érvényesül? Ãgy minden egyes alkalommal meg kell adnom az addfiltert? Ha ne ma loopban definiálom az add_filter -t, hanem a functions.php -ben, akkor is ugyanez a helyzet.
Én azt gondoltam, hogy a logikája ennek az, hogy hozzáadom a filtert az add_filter -rel, akkor az még nem csinál semmit, és majd akkor csinálja meg szépen, amikor apply_filterezem, de ezek szerint nem így van.
El tudná nekem ezt magyarázni valaki, mert a codexből nem derül ki számomra világosan.[code=php:l0fi42gc]
<?php
$args = array(
'cat' => 1,
'posts_per_page' => 5,
);
query_posts($args);
if (have_posts()) {
add_filter('the_excerpt', 'addMoreButton', 10, 2);
while (have_posts()) {
the_post();
?><a href="<?php the_permalink() ?>" rel=“bookmark” title="<?php the_title_attribute(); ?>"><?php the_title(); ?>
<?php the_time('Y. F j., l') ?>
<?php
echo apply_filters('the_excerpt', get_the_excerpt(), $post->ID);
?>
<?php
}
remove_filter('the_excerpt', 'addMoreButton');
}
?>
A függvény pedig:
function addMoreButton($content, $postID) {
$link = ‘’;
if (preg_match('/<\/p>$/is’, $content)) {
$content = preg_replace(’/<\/p>$/is’, $link . '
', $content);
}
//pre ($content);
return $content;
}
Ez így remekül működik, viszont azt nem értem, hogy a későbbi excerptjeimre miért érvényesül? Ãgy minden egyes alkalommal meg kell adnom az addfiltert? Ha ne ma loopban definiálom az add_filter -t, hanem a functions.php -ben, akkor is ugyanez a helyzet.
Én azt gondoltam, hogy a logikája ennek az, hogy hozzáadom a filtert az add_filter -rel, akkor az még nem csinál semmit, és majd akkor csinálja meg szépen, amikor apply_filterezem, de ezek szerint nem így van.
El tudná nekem ezt magyarázni valaki, mert a codexből nem derül ki számomra világosan.[code=php:l0fi42gc]function addMoreButton($content, $postID) {
$link = ‘’;
if (preg_match('/<\/p>$/is’, $content)) {
$content = preg_replace(’/<\/p>$/is’, $link . '
', $content);
}
//pre ($content);
return $content;
}
Ez így remekül működik, viszont azt nem értem, hogy a későbbi excerptjeimre miért érvényesül? Ãgy minden egyes alkalommal meg kell adnom az addfiltert? Ha ne ma loopban definiálom az add_filter -t, hanem a functions.php -ben, akkor is ugyanez a helyzet.
Én azt gondoltam, hogy a logikája ennek az, hogy hozzáadom a filtert az add_filter -rel, akkor az még nem csinál semmit, és majd akkor csinálja meg szépen, amikor apply_filterezem, de ezek szerint nem így van.
El tudná nekem ezt magyarázni valaki, mert a codexből nem derül ki számomra világosan.