/**
* Taxonomy API: Walker_Category class
*
* @package WordPress
* @subpackage Template
* @since 4.4.0
*/
/**
* Core class used to create an HTML list of categories.
*
* @since 2.1.0
*
* @see Walker
*/
class Walker_Category extends Walker {
/**
* What the class handles.
*
* @since 2.1.0
* @var string
*
* @see Walker::$tree_type
*/
public $tree_type = 'category';
/**
* Database fields to use.
*
* @since 2.1.0
* @var string[]
*
* @see Walker::$db_fields
* @todo Decouple this
*/
public $db_fields = array(
'parent' => 'parent',
'id' => 'term_id',
);
/**
* Starts the list before the elements are added.
*
* @since 2.1.0
*
* @see Walker::start_lvl()
*
* @param string $output Used to append additional content. Passed by reference.
* @param int $depth Optional. Depth of category. Used for tab indentation. Default 0.
* @param array $args Optional. An array of arguments. Will only append content if style argument
* value is 'list'. See wp_list_categories(). Default empty array.
*/
public function start_lvl( &$output, $depth = 0, $args = array() ) {
if ( 'list' !== $args['style'] ) {
return;
}
$indent = str_repeat( "\t", $depth );
$output .= "$indent
\n";
}
/**
* Ends the list of after the elements are added.
*
* @since 2.1.0
*
* @see Walker::end_lvl()
*
* @param string $output Used to append additional content. Passed by reference.
* @param int $depth Optional. Depth of category. Used for tab indentation. Default 0.
* @param array $args Optional. An array of arguments. Will only append content if style argument
* value is 'list'. See wp_list_categories(). Default empty array.
*/
public function end_lvl( &$output, $depth = 0, $args = array() ) {
if ( 'list' !== $args['style'] ) {
return;
}
$indent = str_repeat( "\t", $depth );
$output .= "$indent
\n";
}
/**
* Starts the element output.
*
* @since 2.1.0
* @since 5.9.0 Renamed `$category` to `$data_object` and `$id` to `$current_object_id`
* to match parent class for PHP 8 named parameter support.
*
* @see Walker::start_el()
*
* @param string $output Used to append additional content (passed by reference).
* @param WP_Term $data_object Category data object.
* @param int $depth Optional. Depth of category in reference to parents. Default 0.
* @param array $args Optional. An array of arguments. See wp_list_categories().
* Default empty array.
* @param int $current_object_id Optional. ID of the current category. Default 0.
*/
public function start_el( &$output, $data_object, $depth = 0, $args = array(), $current_object_id = 0 ) {
// Restores the more descriptive, specific name for use within this method.
$category = $data_object;
/** This filter is documented in wp-includes/category-template.php */
$cat_name = apply_filters( 'list_cats', esc_attr( $category->name ), $category );
// Don't generate an element if the category name is empty.
if ( '' === $cat_name ) {
return;
}
$atts = array();
$atts['href'] = get_term_link( $category );
if ( $args['use_desc_for_title'] && ! empty( $category->description ) ) {
/**
* Filters the category description for display.
*
* @since 1.2.0
*
* @param string $description Category description.
* @param WP_Term $category Category object.
*/
$atts['title'] = strip_tags( apply_filters( 'category_description', $category->description, $category ) );
}
/**
* Filters the HTML attributes applied to a category list item's anchor element.
*
* @since 5.2.0
*
* @param array $atts {
* The HTML attributes applied to the list item's `` element, empty strings are ignored.
*
* @type string $href The href attribute.
* @type string $title The title attribute.
* }
* @param WP_Term $category Term data object.
* @param int $depth Depth of category, used for padding.
* @param array $args An array of arguments.
* @param int $current_object_id ID of the current category.
*/
$atts = apply_filters( 'category_list_link_attributes', $atts, $category, $depth, $args, $current_object_id );
$attributes = '';
foreach ( $atts as $attr => $value ) {
if ( is_scalar( $value ) && '' !== $value && false !== $value ) {
$value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
$attributes .= ' ' . $attr . '="' . $value . '"';
}
}
$link = sprintf(
'%s',
$attributes,
$cat_name
);
if ( ! empty( $args['feed_image'] ) || ! empty( $args['feed'] ) ) {
$link .= ' ';
if ( empty( $args['feed_image'] ) ) {
$link .= '(';
}
$link .= '';
}
$link .= '';
if ( empty( $args['feed_image'] ) ) {
$link .= ')';
}
}
if ( ! empty( $args['show_count'] ) ) {
$link .= ' (' . number_format_i18n( $category->count ) . ')';
}
if ( 'list' === $args['style'] ) {
$output .= "\tterm_id,
);
if ( ! empty( $args['current_category'] ) ) {
// 'current_category' can be an array, so we use `get_terms()`.
$_current_terms = get_terms(
array(
'taxonomy' => $category->taxonomy,
'include' => $args['current_category'],
'hide_empty' => false,
)
);
foreach ( $_current_terms as $_current_term ) {
if ( $category->term_id === $_current_term->term_id ) {
$css_classes[] = 'current-cat';
$link = str_replace( 'term_id === $_current_term->parent ) {
$css_classes[] = 'current-cat-parent';
}
while ( $_current_term->parent ) {
if ( $category->term_id === $_current_term->parent ) {
$css_classes[] = 'current-cat-ancestor';
break;
}
$_current_term = get_term( $_current_term->parent, $category->taxonomy );
}
}
}
/**
* Filters the list of CSS classes to include with each category in the list.
*
* @since 4.2.0
*
* @see wp_list_categories()
*
* @param string[] $css_classes An array of CSS classes to be applied to each list item.
* @param WP_Term $category Category data object.
* @param int $depth Depth of page, used for padding.
* @param array $args An array of wp_list_categories() arguments.
*/
$css_classes = implode( ' ', apply_filters( 'category_css_class', $css_classes, $category, $depth, $args ) );
$css_classes = $css_classes ? ' class="' . esc_attr( $css_classes ) . '"' : '';
$output .= $css_classes;
$output .= ">$link\n";
} elseif ( isset( $args['separator'] ) ) {
$output .= "\t$link" . $args['separator'] . "\n";
} else {
$output .= "\t$link
\n";
}
}
/**
* Ends the element output, if needed.
*
* @since 2.1.0
* @since 5.9.0 Renamed `$page` to `$data_object` to match parent class for PHP 8 named parameter support.
*
* @see Walker::end_el()
*
* @param string $output Used to append additional content (passed by reference).
* @param object $data_object Category data object. Not used.
* @param int $depth Optional. Depth of category. Not used.
* @param array $args Optional. An array of arguments. Only uses 'list' for whether should
* append to output. See wp_list_categories(). Default empty array.
*/
public function end_el( &$output, $data_object, $depth = 0, $args = array() ) {
if ( 'list' !== $args['style'] ) {
return;
}
$output .= "\n";
}
}
/**
* HTTP API: WP_HTTP_Requests_Response class
*
* @package WordPress
* @subpackage HTTP
* @since 4.6.0
*/
/**
* Core wrapper object for a WpOrg\Requests\Response for standardization.
*
* @since 4.6.0
*
* @see WP_HTTP_Response
*/
class WP_HTTP_Requests_Response extends WP_HTTP_Response {
/**
* Requests Response object.
*
* @since 4.6.0
* @var \WpOrg\Requests\Response
*/
protected $response;
/**
* Filename the response was saved to.
*
* @since 4.6.0
* @var string|null
*/
protected $filename;
/**
* Constructor.
*
* @since 4.6.0
*
* @param \WpOrg\Requests\Response $response HTTP response.
* @param string $filename Optional. File name. Default empty.
*/
public function __construct( WpOrg\Requests\Response $response, $filename = '' ) {
$this->response = $response;
$this->filename = $filename;
}
/**
* Retrieves the response object for the request.
*
* @since 4.6.0
*
* @return WpOrg\Requests\Response HTTP response.
*/
public function get_response_object() {
return $this->response;
}
/**
* Retrieves headers associated with the response.
*
* @since 4.6.0
*
* @return \WpOrg\Requests\Utility\CaseInsensitiveDictionary Map of header name to header value.
*/
public function get_headers() {
// Ensure headers remain case-insensitive.
$converted = new WpOrg\Requests\Utility\CaseInsensitiveDictionary();
foreach ( $this->response->headers->getAll() as $key => $value ) {
if ( count( $value ) === 1 ) {
$converted[ $key ] = $value[0];
} else {
$converted[ $key ] = $value;
}
}
return $converted;
}
/**
* Sets all header values.
*
* @since 4.6.0
*
* @param array $headers Map of header name to header value.
*/
public function set_headers( $headers ) {
$this->response->headers = new WpOrg\Requests\Response\Headers( $headers );
}
/**
* Sets a single HTTP header.
*
* @since 4.6.0
*
* @param string $key Header name.
* @param string $value Header value.
* @param bool $replace Optional. Whether to replace an existing header of the same name.
* Default true.
*/
public function header( $key, $value, $replace = true ) {
if ( $replace ) {
unset( $this->response->headers[ $key ] );
}
$this->response->headers[ $key ] = $value;
}
/**
* Retrieves the HTTP return code for the response.
*
* @since 4.6.0
*
* @return int The 3-digit HTTP status code.
*/
public function get_status() {
return $this->response->status_code;
}
/**
* Sets the 3-digit HTTP status code.
*
* @since 4.6.0
*
* @param int $code HTTP status.
*/
public function set_status( $code ) {
$this->response->status_code = absint( $code );
}
/**
* Retrieves the response data.
*
* @since 4.6.0
*
* @return string Response data.
*/
public function get_data() {
return $this->response->body;
}
/**
* Sets the response data.
*
* @since 4.6.0
*
* @param string $data Response data.
*/
public function set_data( $data ) {
$this->response->body = $data;
}
/**
* Retrieves cookies from the response.
*
* @since 4.6.0
*
* @return WP_Http_Cookie[] List of cookie objects.
*/
public function get_cookies() {
$cookies = array();
foreach ( $this->response->cookies as $cookie ) {
$cookies[] = new WP_Http_Cookie(
array(
'name' => $cookie->name,
'value' => urldecode( $cookie->value ),
'expires' => $cookie->attributes['expires'] ?? null,
'path' => $cookie->attributes['path'] ?? null,
'domain' => $cookie->attributes['domain'] ?? null,
'host_only' => $cookie->flags['host-only'] ?? null,
)
);
}
return $cookies;
}
/**
* Converts the object to a WP_Http response array.
*
* @since 4.6.0
*
* @return array WP_Http response array, per WP_Http::request().
*/
public function to_array() {
return array(
'headers' => $this->get_headers(),
'body' => $this->get_data(),
'response' => array(
'code' => $this->get_status(),
'message' => get_status_header_desc( $this->get_status() ),
),
'cookies' => $this->get_cookies(),
'filename' => $this->filename,
);
}
}
/**
* REST API: WP_REST_User_Meta_Fields class
*
* @package WordPress
* @subpackage REST_API
* @since 4.7.0
*/
/**
* Core class used to manage meta values for users via the REST API.
*
* @since 4.7.0
*
* @see WP_REST_Meta_Fields
*/
class WP_REST_User_Meta_Fields extends WP_REST_Meta_Fields {
/**
* Retrieves the user meta type.
*
* @since 4.7.0
*
* @return string The user meta type.
*/
protected function get_meta_type() {
return 'user';
}
/**
* Retrieves the user meta subtype.
*
* @since 4.9.8
*
* @return string 'user' There are no subtypes.
*/
protected function get_meta_subtype() {
return 'user';
}
/**
* Retrieves the type for register_rest_field().
*
* @since 4.7.0
*
* @return string The user REST field type.
*/
public function get_rest_field_type() {
return 'user';
}
}
https://kathimalsahir.com/post-sitemap.xml
2026-07-02T20:48:19+00:00
https://kathimalsahir.com/page-sitemap.xml
2026-06-08T17:41:38+00:00
https://kathimalsahir.com/category-sitemap.xml
2026-07-02T20:48:19+00:00
https://kathimalsahir.com/author-sitemap.xml
2026-06-08T17:47:35+00:00