Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

WordPress

Boris Kamp
Boris Kamp
16,660 Points

Create/update post title from ACF fields

Hi guys!

I've this code in order to successfully update the post title of my manufacturer and product post types:

//Auto add and update Title field:
  function my_post_title_updater( $post_id ) {

    $my_post = array();
    $my_post['ID'] = $post_id;

    $manufacturer = get_field('manufacturer');
    $target_product = get_field('target_product');

    $manufacturer_target = get_field('manufacturer', $target_product);

    if ( get_post_type() == 'manufacturer' ) {
      $my_post['post_title'] = get_field('manufacturer_name');
    } elseif ( get_post_type() == 'products' ) {
      $my_post['post_title'] = get_field('kitName') . ' (' . get_field('manufacturer_name', $manufacturer->ID) . ' ' . get_field('kitNumber') . ')';
    } elseif ( get_post_type() == 'reviews' ) {
       $my_post['post_title'] = get_field('kitName', $target_product->ID) . ' (' . get_field('manufacturer_name', $manufacturer_target->ID) . ' ' . get_field('kitNumber', $target_product->ID) . ')';
    }

    // Update the post into the database
    wp_update_post( $my_post );

  }

  // run after ACF saves the $_POST['fields'] data
  add_action('acf/save_post', 'my_post_title_updater', 20);

However, my latest elseif statement fails miserably! for the reviews posts type im trying to concatenate: <ol> <li>the kitName field from a relationship object (product post type object) so thats one layer deep: review > product </li> <li>the manufacturer_name field from the manufacturer field (manufacturer post object) of the product relationship mentioned directly above here. so that one is two layers deep: review > product > manufacturer</li> <li>the kitNumber field from a relationship object (product post type object) so thats one layer deep: review > product </li> </ol>

with I get the following error: Trying to get property of non-object. So basically it's telling me it expect an object but gets something else and thus cannot process the function, however, i have the return format of the relationship set to object, so I have no idea what I'm doing wrong here!? can anybody help me out please? thanks a lot!