Hi allemaal,
Kan iemand mij helpen met het volgende:
URL structuur: https://domein.nl/parentcategory/chi.../postname.html
Ik wil nu bijv 5 posts laten zien uit de childcateogry als gerelateerde posts bij het artikel. Onderstaande script laat nu alle posts zien uit de parentcategory :(
Heeft iemand de oplossing?
<?php
//for use in the loop, list 5 post titles related to first tag on current post
$tags = wp_get_post_tags($post->ID);
if ($tags) {
echo 'Related Posts';
$first_tag = $tags[0]->term_id;
$args=array(
'tag__in' => array($first_tag),
'post__not_in' => array($post->ID),
'posts_per_page'=>5,
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
<?php
endwhile;
}
wp_reset_query();
}
?>
- Gerelateerde posts wordpress
-
28-06-2021, 11:30 #1
- Berichten
- 1.735
- Lid sinds
- 17 Jaar
Gerelateerde posts wordpress
-
In de schijnwerper
Ben je op zoek naar een websitebouwer?Freelance / Werkwebshop in laadkabels/laadpalen (sinds 2019) incl leveranciersWebsite te koop[SNELLE LEVERING] Laat je website / webshop snel en professioneel bouwen!Freelance / WerkLinkvada.com Linkbuilding Platform: Direct Linkbuilden op 77.000+ premium domeinenLinkpartners -
29-06-2021, 08:44 #2
- Berichten
- 146
- Lid sinds
- 9 Jaar
Re: Gerelateerde posts wordpress
Het script dat je hier post kijkt naar tags, niet naar category. Onderstaande een script dat wel de posts ophaalt met de juiste category.
Code:$related = new WP_Query( array( 'category__in' => wp_get_post_categories( $post->ID ), 'posts_per_page' => 5, 'post__not_in' => array( $post->ID ) ) ); if( $related->have_posts() ) { while( $related->have_posts() ) { $related->the_post(); /*whatever you want to output*/ } wp_reset_postdata(); }
credits: categories - How to display related posts from same category? - WordPress Development Stack Exchange
-
07-07-2021, 18:06 #3
- Berichten
- 472
- Lid sinds
- 13 Jaar
Re: Gerelateerde posts wordpress
Hoi Stefan,
Ik heb je code eens bekeken en een beetje aangepast. Deze werkt en is getest.
PHP Code:<?php
$tags = wp_get_post_tags($post->ID, array('fields' => 'ids'));
if($tags) {
echo 'Related Posts';
$first_tag = $tags[0];
$args = array(
'post_type' => 'post',
'tag__in' => $first_tag,
'post__not_in' => array($post->ID),
'posts_per_page' => 5,
'ignore_sticky_posts' => 1,
'post_status' => 'publish',
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
<?php endwhile;
}
wp_reset_postdata();
} ?>
caller_get_posts gebruikt true of false maar beter is om ignore_sticky_posts te gebruiken.
Verder heb ik enkele kleine schoonheidsdetails toegevoegd zoals post_type,post_status, orderby en order.
Nu wordt dus gekeken naar de eerste tag id van je tags van de huidige post en van die tag term worden de laatste 5 getoond.
Lijkt interessant maar de tags worden alfabetisch opgehaald. Niet echt geweldig eigenlijk maar het is een manier om op een simpele manier zonder plugin gerelateerde posts te tonen.
Zelf zou ik kiezen voor zoeken op basis van je keyword, als je bijvoorbeeld Yoast SEO gebruikt is dat niet zo moeilijk.
Heel veel succes...
Cornelis...
-
07-07-2021, 18:11 #4
- Berichten
- 1.735
- Lid sinds
- 17 Jaar
Re: Gerelateerde posts wordpress
Thanks! Helaas laat hij nog steeds posts uit andere child categorieën zien.
Dit is de structuur: https://domein.com/destinations/spain/madrid.html Ik wil dus alleen posts zien die in Spain gepost zijn.
-
07-07-2021, 23:22 #5
- Berichten
- 472
- Lid sinds
- 13 Jaar
Re: Gerelateerde posts wordpress
Sorry Stefan,
Ik zag de code en ging die direct verbeteren zonder te lezen wat je precies wilde.
Echter denk ik dat je een klein probleempje hebt want wat als je nu al in het laagste categorie zit dan heb je niets meer te tonen. Je zou volgens mij dan juist eerst moeten zoeken naar de hoofd categorie en daarna de children.
Even goed heb ik de code aangepast. Nu neemt hij de eerste categorie uit te lijst waar de post in valt, daarna zoekt hij de children en gebruikt die in de wp_query.
PHP Code:<?php $taxonomy = 'category';
$cats = get_the_category($post->ID);
$parent_cat = $cats[0]->term_id;
$children = get_term_children($parent_cat, $taxonomy);
if($children) {
echo 'Related Posts';
$args = array(
'post_type' => 'post',
'category__in' => $children,
'posts_per_page' => 5,
'ignore_sticky_posts' => 1,
'post_status' => 'publish',
'orderby' => 'date',
'order' => 'DESC',
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
<?php endwhile;
}
wp_reset_postdata();
} ?>
Groet,
Cornelis...
-
07-07-2021, 23:48 #6
- Berichten
- 1.735
- Lid sinds
- 17 Jaar
Re: Gerelateerde posts wordpress
Thanks voor alle hulp! Hij laat helaas alle posts zien uit alle child categorieën maar niet uit alleen de categorie italie.
-
08-07-2021, 18:13 #7
- Berichten
- 472
- Lid sinds
- 13 Jaar
Re: Gerelateerde posts wordpress
Hoi Stefan,
Ik heb nog eens een grote opzet gemaakt o te testen en bij mij werkt het goed. Het is niet perfect omdat het een vreemde manier is om gerelateerde te tonen in mijn opinie.
Enige wat je misschien zou kunnen aanpassen is 'category__in' => $children, veranderen in 'cat' => $children[0],
Verschil is dat hij dan alleen naar de eerste child-categorie kijkt maar ook in de children hiervan.
Waarschijnlijk heb je een ander probleem op je website met het theme of plugins maar hier kan ik verder niets meer aan doen.
Of je moet het hardhandig doen met PHP en MySQL maar ik heb hier eigenlijk al te veel tijd in gestoken. Ik hoop dat je dat kan begrijpen.
Je kan dus het iemand werkelijk nar je website laten kijken om dit op te lossen of een betere idee voor gerelateerde gebruiken.
Heel veel succes...
Cornelis...
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic