WordPress wp_list_pluck

Working with Arrays in WordPress: A Guide to the wp_list_pluck() Function

If you’ve been working with WordPress for a while, you may have come across the wp_list_pluck() function in your theme or plugin development. This function is a handy tool that allows you to extract a specific column of data from an array of objects or associative arrays.

WordPress wp_list_pluck

In this post, we’ll take a closer look at what wp_list_pluck() does, how it works, and some practical examples of how you can use it in your WordPress projects.

What is wp_list_pluck()?

The wp_list_pluck() function is a utility function that was introduced in WordPress 3.1. It’s designed to extract a specific field from an array of objects or associative arrays and return an array containing only that field’s values. This function is particularly useful when working with data that is structured as an array of objects or associative arrays.

The function accepts two parameters:

wp_list_pluck( $list, $field );
  • $list (array or object) – The array of objects or associative arrays from which to extract the field.
  • $field (string) – The name of the field to extract.

How does wp_list_pluck() work?

The wp_list_pluck() function works by iterating through each element in the input array and extracting the specified field’s value. The resulting array contains only the extracted values, in the same order as the original array.

Here’s an example of how wp_list_pluck() works:

$people = array(
    array(
        'name' => 'John',
        'age' => 32,
        'city' => 'New York',
    ),
    array(
        'name' => 'Jane',
        'age' => 28,
        'city' => 'Los Angeles',
    ),
    array(
        'name' => 'Bob',
        'age' => 45,
        'city' => 'Chicago',
    ),
);

$cities = wp_list_pluck( $people, 'city' );

In this example, we have an array of people, each represented by an associative array containing their name, age, and city. We use wp_list_pluck() to extract the “city” field from each element in the array, resulting in a new array containing only the city values:

array(
    'New York',
    'Los Angeles',
    'Chicago',
);

Practical examples of wp_list_pluck()

Now that we’ve seen how wp_list_pluck() works let’s look at some practical examples of how you can use it in your WordPress projects.

Example 1: Get a list of post IDs

Suppose you want to get a list of post IDs from a query that returns an array of post objects. You can use wp_list_pluck() to extract the “ID” field from each post object, like this:

$posts = get_posts( $args );
$post_ids = wp_list_pluck( $posts, 'ID' );

This code will give you an array of post IDs that you can use in your template or plugin.

Example 2: Get a list of product prices

Suppose you have an array of WooCommerce product objects, and you want to get a list of their prices. You can use wp_list_pluck() to extract the “price” field from each product object, like this:

$products = wc_get_products( $args );
$prices = wp_list_pluck( $products, 'price' );

This code will give you an array of product prices that you can use to display or process the prices in your WooCommerce store.

Example 3: Get a list of category slugs

Suppose you want to get a list of category slugs from a query that returns an array of category objects. You can use wp_list_pluck() to extract the “slug” field from each category object, like this:

$categories = get_categories( $args );
$category_slugs = wp_list_pluck( $categories, 'slug' );

This code will give you an array of category slugs that you can use to filter or display content based on the category in your WordPress site.

Conclusion

The wp_list_pluck() function is a powerful tool in WordPress that allows you to extract a specific field from an array of objects or associative arrays. By using this function, you can save time and effort when working with data that is structured in this way.

In this post, we’ve seen how wp_list_pluck() works, what its parameters are, and some practical examples of how you can use it in your WordPress projects. By understanding how this function works, you can use it effectively to work with arrays of data in WordPress. Another useful array function in WordPress is wp_list_filter().