script om eerste letter van custom field op te slaan in een custom taxonomy
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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);
?>
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)
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
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');
?>
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.
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.