/** * REST API: WP_REST_Response class * * @package WordPress * @subpackage REST_API * @since 4.4.0 */ /** * Core class used to implement a REST response object. * * @since 4.4.0 * * @see WP_HTTP_Response */ class WP_REST_Response extends WP_HTTP_Response { /** * Links related to the response. * * @since 4.4.0 * @var array */ protected $links = array(); /** * The route that was to create the response. * * @since 4.4.0 * @var string */ protected $matched_route = ''; /** * The handler that was used to create the response. * * @since 4.4.0 * @var null|array */ protected $matched_handler = null; /** * Adds a link to the response. * * @internal The $rel parameter is first, as this looks nicer when sending multiple. * * @since 4.4.0 * * @link https://tools.ietf.org/html/rfc5988 * @link https://www.iana.org/assignments/link-relations/link-relations.xml * * @param string $rel Link relation. Either an IANA registered type, * or an absolute URL. * @param string $href Target URI for the link. * @param array $attributes Optional. Link parameters to send along with the URL. Default empty array. */ public function add_link( $rel, $href, $attributes = array() ) { if ( empty( $this->links[ $rel ] ) ) { $this->links[ $rel ] = array(); } if ( isset( $attributes['href'] ) ) { // Remove the href attribute, as it's used for the main URL. unset( $attributes['href'] ); } $this->links[ $rel ][] = array( 'href' => $href, 'attributes' => $attributes, ); } /** * Removes a link from the response. * * @since 4.4.0 * * @param string $rel Link relation. Either an IANA registered type, or an absolute URL. * @param string $href Optional. Only remove links for the relation matching the given href. * Default null. */ public function remove_link( $rel, $href = null ) { if ( ! isset( $this->links[ $rel ] ) ) { return; } if ( $href ) { $this->links[ $rel ] = wp_list_filter( $this->links[ $rel ], array( 'href' => $href ), 'NOT' ); } else { $this->links[ $rel ] = array(); } if ( ! $this->links[ $rel ] ) { unset( $this->links[ $rel ] ); } } /** * Adds multiple links to the response. * * Link data should be an associative array with link relation as the key. * The value can either be an associative array of link attributes * (including `href` with the URL for the response), or a list of these * associative arrays. * * @since 4.4.0 * * @param array $links Map of link relation to list of links. */ public function add_links( $links ) { foreach ( $links as $rel => $set ) { // If it's a single link, wrap with an array for consistent handling. if ( isset( $set['href'] ) ) { $set = array( $set ); } foreach ( $set as $attributes ) { $this->add_link( $rel, $attributes['href'], $attributes ); } } } /** * Retrieves links for the response. * * @since 4.4.0 * * @return array List of links. */ public function get_links() { return $this->links; } /** * Sets a single link header. * * @internal The $rel parameter is first, as this looks nicer when sending multiple. * * @since 4.4.0 * * @link https://tools.ietf.org/html/rfc5988 * @link https://www.iana.org/assignments/link-relations/link-relations.xml * * @param string $rel Link relation. Either an IANA registered type, or an absolute URL. * @param string $link Target IRI for the link. * @param array $other Optional. Other parameters to send, as an assocative array. * Default empty array. */ public function link_header( $rel, $link, $other = array() ) { $header = '<' . $link . '>; rel="' . $rel . '"'; foreach ( $other as $key => $value ) { if ( 'title' === $key ) { $value = '"' . $value . '"'; } $header .= '; ' . $key . '=' . $value; } $this->header( 'Link', $header, false ); } /** * Retrieves the route that was used. * * @since 4.4.0 * * @return string The matched route. */ public function get_matched_route() { return $this->matched_route; } /** * Sets the route (regex for path) that caused the response. * * @since 4.4.0 * * @param string $route Route name. */ public function set_matched_route( $route ) { $this->matched_route = $route; } /** * Retrieves the handler that was used to generate the response. * * @since 4.4.0 * * @return null|array The handler that was used to create the response. */ public function get_matched_handler() { return $this->matched_handler; } /** * Retrieves the handler that was responsible for generating the response. * * @since 4.4.0 * * @param array $handler The matched handler. */ public function set_matched_handler( $handler ) { $this->matched_handler = $handler; } /** * Checks if the response is an error, i.e. >= 400 response code. * * @since 4.4.0 * * @return bool Whether the response is an error. */ public function is_error() { return $this->get_status() >= 400; } /** * Retrieves a WP_Error object from the response. * * @since 4.4.0 * * @return WP_Error|null WP_Error or null on not an errored response. */ public function as_error() { if ( ! $this->is_error() ) { return null; } $error = new WP_Error; if ( is_array( $this->get_data() ) ) { $data = $this->get_data(); $error->add( $data['code'], $data['message'], $data['data'] ); if ( ! empty( $data['additional_errors'] ) ) { foreach( $data['additional_errors'] as $err ) { $error->add( $err['code'], $err['message'], $err['data'] ); } } } else { $error->add( $this->get_status(), '', array( 'status' => $this->get_status() ) ); } return $error; } /** * Retrieves the CURIEs (compact URIs) used for relations. * * @since 4.5.0 * * @return array Compact URIs. */ public function get_curies() { $curies = array( array( 'name' => 'wp', 'href' => 'https://api.w.org/{rel}', 'templated' => true, ), ); /** * Filters extra CURIEs available on API responses. * * CURIEs allow a shortened version of URI relations. This allows a more * usable form for custom relations than using the full URI. These work * similarly to how XML namespaces work. * * Registered CURIES need to specify a name and URI template. This will * automatically transform URI relations into their shortened version. * The shortened relation follows the format `{name}:{rel}`. `{rel}` in * the URI template will be replaced with the `{rel}` part of the * shortened relation. * * For example, a CURIE with name `example` and URI template * `http://w.org/{rel}` would transform a `http://w.org/term` relation * into `example:term`. * * Well-behaved clients should expand and normalise these back to their * full URI relation, however some naive clients may not resolve these * correctly, so adding new CURIEs may break backward compatibility. * * @since 4.5.0 * * @param array $additional Additional CURIEs to register with the API. */ $additional = apply_filters( 'rest_response_link_curies', array() ); return array_merge( $curies, $additional ); } } Testimonials | You Matter Life Coaching


Coach Shannon helped change my life. I have never met anyone like her.  She really cares. In a world full of me, me, me people, Coach Shannon gives her heart and wants to really help. She helped me find my way again. She got me to think and stood by me as I discovered my own answers.  I am really living now and doing what makes me happy every day.  I let go of the anchors holding me back and am now soaring in a new direction, a good direction.  I wholeheartedly recommend Coach Shannon for anyone desiring a better life. She will help you get unstuck and start thriving.

Karen W.

Shannon is an extremely approachable and open person.  She listened intently to the issues that I was going through in my divorce and made me feel like things were going to be ok.  She put things into perspective for me and asked me critical questions that forced me to think, and in some instances act.  She is not a passive coach, she tries to evoke thought, action, and then repair of your personal well-being.  Shannon honestly cares and wants to help you be the best person that you can be.  She is a breath of fresh air and definitely someone that really helped me during a difficult part of my life.  I wish I would have met her sooner.


Coach Shannon is wise beyond her years. I’ve seen several people over the last couple of years, but none have helped me like Coach Shannon has helped me. She listens, really listens. She asks questions that make you stop in your track and gets you to dig deep inside. As a result, she has changed my life. I am no longer stuck and living a life I always dreamed, but never thought I could have.  Thank you You Matter (Coach Shannon) for helping me to live again!


My wife and I had been married for 16 years when 2 years ago, we were at in impasse and decided to separate.  Throughout the separation, we tried a few times to reconcile but could never fully come together and then earlier this year I decided it was time to end it through the courts.  But God had another plan when he sent Shannon to work in my office.  This burst of energy; a woman who can drop and give you 30+ pushups on command, possesses so much positive energy that sometimes you can’t stand it.  Well, one day at work she sat down with me to talk about stuff and she asked about my wife, etc.  I’m not one who likes to put my business in the street so I didn’t tell her I was separated and headed for divorce–I just played along.  But as we talked more and became closer work buddies, I began to realize this woman has a good heart and is genuinely interested in the well-being of others.  So one day I finally opened up and told her the truth.  Being the woman she is, she instantly went into life coaching mode which I thought was funny.  I’m thinking, who is this young woman trying to tell this old hat how to fix his marriage?  Well, she showed me.  Would you believe she gave me homework, with a suspense date and all?  I was given 5 things to do to start rebuilding my marriage.  Being the proud man I am, at first resisted, but you can’t resist this woman for too long because she is very persistent and truly believes in people.  So unbeknownst to her, I started to implement some of that “homework” and I’m happy to report that three months later, I’m not headed to divorce court and I’m moving back home.  Shannon didn’t have to do what she did but she took the time to listen and give me solid advice.  She was and has been such a blessing and I’m proud to call her my friend.  If she ever crosses your path, you’ll see exactly what I see–a beautiful person with a wonderful soul.  All the best Shannon and thanks for being there and for caring.

Ray “Old Hat”


You Matter Life Coach, Shannon, provided a safe place to dive into life topics, to process my thoughts out loud, and to gain perspective. Her input and insight helped guide me through discussions of my goals and then break up the milestones into manageable tasks. Shannon took time to gather information and prepare for our sessions ahead of time. It was obvious that she wanted the meetings to be meaningful and productive. She asked thought- provoking questions and followed-up at the end of each conversation with a re-cap from her notes. Shannon shared encouraging words about pressing forward and having hope for the possibilities ahead. It is obvious that she loves people and truly wants to come alongside them as they reach for their dreams. I am blessed to have had time with her and highly recommend her to others.

April – Arlington, VA


My life has been changed for the better since working with You Matter Life Coach, Shannon Walker. She helped me to get focused, organize my schedule, and prioritize what was important in my life. The best thing she did for me was to help me look deep within myself for answers. In doing this, I was able to mend a broken relationship and now I’m getting married to the love of my life! I’m so grateful for her prayers, diligence, and caring demeanor. I always felt comfortable sharing with her and she made me realize that with God all of my “problems” were not so big and very manageable.

Thank you for everything!!!

Dana Gaither…soon to be Mrs. Johnson!!!!

Shannon has the God-given talent of pulling out the best in people without judging those she works with. I am so excited to see all the great things that this amazing life-coach is going to do in the future. Shannon’s drive and energy is infectious and a rarity in the world we live in. During my sessions with Shannon I was able to move from fear to action based on her guidance and I highly recommend her as she is a true star in my eyes.

K – Alexandria, VA