php filters mijn opties?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Casper Westerveld

Casper Westerveld

21/04/2018 14:41:05
Quote Anchor link
Ik probeer een element "Classic Recent posts" toe te voegen op mijn WordPress website. Echter krijg ik niet alle opties te zien die ik wil.
Zo hoort het te zijn:
Afbeelding
Dit krijg ik te zien:
Afbeelding
De code is hieronder weergegeven. Ik kan alleen nog geen php lezen. Iemand die weet de oorzaak is dat dit gedeelte niet wordt weergegeven of wat ik aan moet passen?

Alvast Bedankt!
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
  public function controls() {

    $allowed_post_types = apply_filters( 'cs_recent_posts_post_types', array( 'post' => 'post' ) );

    if ( count($allowed_post_types) > 1 ) {

      $choices = array();

      foreach ($allowed_post_types as $key => $value) {
        $obj = get_post_type_object( $value );
        if ( ! is_null( $obj ) && isset( $obj->labels ) ) {
          $choices[] = array( 'value' => $key, 'label' => $obj->labels->name );
        }
      }


      $this->addControl(
        'post_type',
        'select',
        __( 'Post Type', 'cornerstone' ),
        __( 'Choose between standard posts or portfolio posts.', 'cornerstone' ),
        'post',
        array(
          'choices' => $choices
        )
      );
    }

?>

Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 22/04/2018 23:26:18 door - Ariën -
 
PHP hulp

PHP hulp

29/11/2024 17:48:06
 
Thomas van den Heuvel

Thomas van den Heuvel

21/04/2018 16:28:01
Quote Anchor link
Als ik de code zo snel lees hierboven wordt die extra dropdown alleen weergegeven als er extra opties zijn. Als alle posts -om wat voor reden dan ook, zie hieronder- van hetzelfde type zijn wordt de dropdown niet weergegeven.

Daarnaast geef je volgens mij in dat tweede argument (array('post' => 'post')) aan wat je precies wenst te filteren. Omdat je daar maar één type hebt staan zal dit menu mogelijk nooit getoond worden. Of misschien is dat een default waarop teruggevallen wordt.

Er zijn dus volgens mij twee mogelijkheden (die elkaar trouwens niet uitsluiten):
1. Alle berichten zijn maar van één type ("post"), daarom krijg je in het bovenstaande formulier de extra optie niet te zien, ik neem aan dat dat formulier bedoeld is om een soort van lijstje van items uit een specifieke categorie te bouwen?
2. Op dit moment heeft de dropdown maar één filtermogelijkheid (als dat array werkt zoals ik denk dat dit werkt, dit zou je mogelijk kunnen afleiden uit de callback functie "cs_recent_posts_post_types") en zou je dat array dus uit moeten breiden met extra opties. Maar dan ben je inhoudelijk code aan het aanpassen in een module of plugin en zou dit alles hard gecodeerd zijn, wat ik mij moeilijk kan voorstellen. Het aanpassen van code lijkt mij ook niet direct de bedoeling tenzij blijkt dat dit niet anders kan.

Mogelijk is dat array toch een fallback, en kun je de categorieën ergens anders instellen, de callback functie "cs_recent_posts_post_types" kan hier mogelijk meer informatie over verschaffen.

Dus, nog even verder graven voordat je op code-niveau dingen aanpast, dit zou je laatste toevlucht moeten zijn. En natuurlijk even controleren of bij de posts wel de juiste (custom) categorie wordt vastlegt, want als alles toch opgeslagen wordt als gewone "post" krijg je die extra dropdown dus nooit te zien.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.