script om eerste letter van custom field op te slaan in een custom taxonomy

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nick de baerdemaeker

nick de baerdemaeker

22/04/2018 21:44:47
Quote Anchor link
Hoi allen.

Voor onze website proberen we momenteel een alfabetische index te bouwen, iets wat een probleem geeft.

Als er een in wordpress een artikel aangemaakt is en een keyword ingevuld, dan gaat er een script lopen van zodra men op update klikt. Dit zorgt ervoor dat de eerste letter van het keyword opgeslagen wordt in de taxonomy "alphabetical letter".

Hiervoor gebruiken we momenteel de plugin advanced custom fields:
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
<?php
function my_acf_update_letter( $value, $post_id, $field  ) {

    $taxonomy = 'alphabetical_letter';
    $first_letter = strtoupper(substr($value, 0, 1));

    wp_set_post_terms( $post_id, $first_letter, $taxonomy );

    // return
    return $value;

}

add_filter('acf/update_value/name=keyword', 'my_acf_update_letter', 10, 3);
?>



Het probleem is nu dat we met heel veel posts in onze database zitten die we in 1 keer willen updaten. in de afgelopen dagen heb ik al vanalles geprobeerd met mijn beperkte php kennis maar ik kom er maar niet aan uit... kunnen julle me helpen ?

Dit is wat we hebben tot nu toe maar helaas doet deze het niet...
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
<?php
function kia_run_once(){
 
    if ( false === get_transient( 'kia_run_once' ) ) {
 
        $taxonomy = 'alphabetical_letter';
        $alphabet = array();
 
        $posts = get_posts(array('numberposts' => -1) );
 
        foreach( $posts as $p ) :
        //set term as first letter of post title, lower case
          $first_letter = strtoupper(substr($value, 0, 1));

        wp_set_post_terms( $p->ID, $first_letter, $taxonomy );
      
        endforeach;
 
        set_transient( 'kia_run_once', 'true' );
 
    }
 
}

add_action('init','kia_run_once');
?>


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:24:31 door - Ariën -
 
Er zijn nog geen reacties op dit bericht.



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.