????
Your IP : 3.144.40.90
<?php
/**
* Comment API: WP_Comment class
*
* @package WordPress
* @subpackage Comments
* @since 4.4.0
*/
/**
* Core class used to organize comments as instantiated objects with defined members.
*
* @since 4.4.0
*/
#[AllowDynamicProperties]
final class WP_Comment {
/**
* Comment ID.
*
* A numeric string, for compatibility reasons.
*
* @since 4.4.0
* @var string
*/
public $comment_ID;
/**
* ID of the post the comment is associated with.
*
* A numeric string, for compatibility reasons.
*
* @since 4.4.0
* @var string
*/
public $comment_post_ID = 0;
/**
* Comment author name.
*
* @since 4.4.0
* @var string
*/
public $comment_author = '';
/**
* Comment author email address.
*
* @since 4.4.0
* @var string
*/
public $comment_author_email = '';
/**
* Comment author URL.
*
* @since 4.4.0
* @var string
*/
public $comment_author_url = '';
/**
* Comment author IP address (IPv4 format).
*
* @since 4.4.0
* @var string
*/
public $comment_author_IP = '';
/**
* Comment date in YYYY-MM-DD HH:MM:SS format.
*
* @since 4.4.0
* @var string
*/
public $comment_date = '0000-00-00 00:00:00';
/**
* Comment GMT date in YYYY-MM-DD HH::MM:SS format.
*
* @since 4.4.0
* @var string
*/
public $comment_date_gmt = '0000-00-00 00:00:00';
/**
* Comment content.
*
* @since 4.4.0
* @var string
*/
public $comment_content;
/**
* Comment karma count.
*
* A numeric string, for compatibility reasons.
*
* @since 4.4.0
* @var string
*/
public $comment_karma = 0;
/**
* Comment approval status.
*
* @since 4.4.0
* @var string
*/
public $comment_approved = '1';
/**
* Comment author HTTP user agent.
*
* @since 4.4.0
* @var string
*/
public $comment_agent = '';
/**
* Comment type.
*
* @since 4.4.0
* @since 5.5.0 Default value changed to `comment`.
* @var string
*/
public $comment_type = 'comment';
/**
* Parent comment ID.
*
* A numeric string, for compatibility reasons.
*
* @since 4.4.0
* @var string
*/
public $comment_parent = 0;
/**
* Comment author ID.
*
* A numeric string, for compatibility reasons.
*
* @since 4.4.0
* @var string
*/
public $user_id = 0;
/**
* Comment children.
*
* @since 4.4.0
* @var array
*/
protected $children;
/**
* Whether children have been populated for this comment object.
*
* @since 4.4.0
* @var bool
*/
protected $populated_children = false;
/**
* Post fields.
*
* @since 4.4.0
* @var array
*/
protected $post_fields = array( 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_excerpt', 'post_status', 'comment_status', 'ping_status', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_content_filtered', 'post_parent', 'guid', 'menu_order', 'post_type', 'post_mime_type', 'comment_count' );
/**
* Retrieves a WP_Comment instance.
*
* @since 4.4.0
*
* @global wpdb $wpdb WordPress database abstraction object.
*
* @param int $id Comment ID.
* @return WP_Comment|false Comment object, otherwise false.
*/
public static function get_instance( $id ) {
global $wpdb;
$comment_id = (int) $id;
if ( ! $comment_id ) {
return false;
}
$_comment = wp_cache_get( $comment_id, 'comment' );
if ( ! $_comment ) {
$_comment = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->comments WHERE comment_ID = %d LIMIT 1", $comment_id ) );
if ( ! $_comment ) {
return false;
}
wp_cache_add( $_comment->comment_ID, $_comment, 'comment' );
}
return new WP_Comment( $_comment );
}
/**
* Constructor.
*
* Populates properties with object vars.
*
* @since 4.4.0
*
* @param WP_Comment $comment Comment object.
*/
public function __construct( $comment ) {
foreach ( get_object_vars( $comment ) as $key => $value ) {
$this->$key = $value;
}
}
/**
* Converts object to array.
*
* @since 4.4.0
*
* @return array Object as array.
*/
public function to_array() {
return get_object_vars( $this );
}
/**
* Gets the children of a comment.
*
* @since 4.4.0
*
* @param array $args {
* Array of arguments used to pass to get_comments() and determine format.
*
* @type string $format Return value format. 'tree' for a hierarchical tree, 'flat' for a flattened array.
* Default 'tree'.
* @type string $status Comment status to limit results by. Accepts 'hold' (`comment_status=0`),
* 'approve' (`comment_status=1`), 'all', or a custom comment status.
* Default 'all'.
* @type string $hierarchical Whether to include comment descendants in the results.
* 'threaded' returns a tree, with each comment's children
* stored in a `children` property on the `WP_Comment` object.
* 'flat' returns a flat array of found comments plus their children.
* Pass `false` to leave out descendants.
* The parameter is ignored (forced to `false`) when `$fields` is 'ids' or 'counts'.
* Accepts 'threaded', 'flat', or false. Default: 'threaded'.
* @type string|array $orderby Comment status or array of statuses. To use 'meta_value'
* or 'meta_value_num', `$meta_key` must also be defined.
* To sort by a specific `$meta_query` clause, use that
* clause's array key. Accepts 'comment_agent',
* 'comment_approved', 'comment_author',
* 'comment_author_email', 'comment_author_IP',
* 'comment_author_url', 'comment_content', 'comment_date',
* 'comment_date_gmt', 'comment_ID', 'comment_karma',
* 'comment_parent', 'comment_post_ID', 'comment_type',
* 'user_id', 'comment__in', 'meta_value', 'meta_value_num',
* the value of $meta_key, and the array keys of
* `$meta_query`. Also accepts false, an empty array, or
* 'none' to disable `ORDER BY` clause.
* }
* @return WP_Comment[] Array of `WP_Comment` objects.
*/
public function get_children( $args = array() ) {
$defaults = array(
'format' => 'tree',
'status' => 'all',
'hierarchical' => 'threaded',
'orderby' => '',
);
$_args = wp_parse_args( $args, $defaults );
$_args['parent'] = $this->comment_ID;
if ( is_null( $this->children ) ) {
if ( $this->populated_children ) {
$this->children = array();
} else {
$this->children = get_comments( $_args );
}
}
if ( 'flat' === $_args['format'] ) {
$children = array();
foreach ( $this->children as $child ) {
$child_args = $_args;
$child_args['format'] = 'flat';
// get_children() resets this value automatically.
unset( $child_args['parent'] );
$children = array_merge( $children, array( $child ), $child->get_children( $child_args ) );
}
} else {
$children = $this->children;
}
return $children;
}
/**
* Adds a child to the comment.
*
* Used by `WP_Comment_Query` when bulk-filling descendants.
*
* @since 4.4.0
*
* @param WP_Comment $child Child comment.
*/
public function add_child( WP_Comment $child ) {
$this->children[ $child->comment_ID ] = $child;
}
/**
* Gets a child comment by ID.
*
* @since 4.4.0
*
* @param int $child_id ID of the child.
* @return WP_Comment|false Returns the comment object if found, otherwise false.
*/
public function get_child( $child_id ) {
if ( isset( $this->children[ $child_id ] ) ) {
return $this->children[ $child_id ];
}
return false;
}
/**
* Sets the 'populated_children' flag.
*
* This flag is important for ensuring that calling `get_children()` on a childless comment will not trigger
* unneeded database queries.
*
* @since 4.4.0
*
* @param bool $set Whether the comment's children have already been populated.
*/
public function populated_children( $set ) {
$this->populated_children = (bool) $set;
}
/**
* Determines whether a non-public property is set.
*
* If `$name` matches a post field, the comment post will be loaded and the post's value checked.
*
* @since 4.4.0
*
* @param string $name Property name.
* @return bool
*/
public function __isset( $name ) {
if ( in_array( $name, $this->post_fields, true ) && 0 !== (int) $this->comment_post_ID ) {
$post = get_post( $this->comment_post_ID );
return property_exists( $post, $name );
}
}
/**
* Magic getter.
*
* If `$name` matches a post field, the comment post will be loaded and the post's value returned.
*
* @since 4.4.0
*
* @param string $name Property name.
* @return mixed
*/
public function __get( $name ) {
if ( in_array( $name, $this->post_fields, true ) ) {
$post = get_post( $this->comment_post_ID );
return $post->$name;
}
}
}
外壁塗装にできること・できないことを徹底解説
このページでは「外壁塗装にできること・できないことを徹底解説」をご紹介しています。
日々進化していく外壁塗装の塗料。
ひと昔前だと高性能で高額だった塗料も、現在では同じ塗料でもリーズナブルな価格で一般的に使用されるようになり、機能の面でも多種多様の塗料が販売されています。
見た目をより良くするだけでなく、汚れがつきにくい塗料や断熱機能を備えた塗料と種類の幅が広くなっています。
しかし、外壁塗装がお住まいを守ることに関するすべてに対応できるのかと言われると、そうではありません。
ここでは、「外壁塗装にできること・できないこと」をご紹介していきます。
外壁塗装の塗料にできることとは?
外壁塗装の塗料は、各塗料メーカーの力を入れた研究開発や努力により、耐久年数などの基本の性能はもちろん、遮熱や防汚などの機能が年々改良され進歩してきました。
塗料がどんどん高性能になっているため、外壁塗装さえ行えば建物に関する不具合がすべてなくなるイメージをお持ちの方もいらっしゃるかもしれません。
確かにひと昔前の塗料と現在の塗料を比べると、性能は進化しています。
しかし、いくら塗料の性能が良くなっているといってもできないこともあります。
外壁塗装の業者も塗料の性能が良くなってきていることを知っており、塗装工事の契約を結びたいがために、「この塗料を使ったら○○の問題が解決します!」「今の塗料は○○なので問題ないです!」と誇張して言ってしまいがちです。
しかし、外壁塗装にできないことはどれだけ塗料が進化してもできません。
外壁塗装業者の上記のような言葉を鵜吞みにせず、ご自身でも外壁塗装にできること・できないことを知っておくことが大切です。
下記から、まずは外壁塗装の塗料にできることを紹介していきます。
外壁・屋根の美観回復
外壁塗装の効果の中でも最も分かりやすいものが、外壁・屋根の美観回復です。
外壁塗装を行うと外壁、屋根の見栄えが良くなるため、最大の目的とも言えるでしょう。
また、塗った液体の塗料が乾いて固まった状態のことを「塗膜」といいます。
塗膜が劣化すると防水性能が低くなり、外壁や屋根の表面に汚れがつきやすくなります。
防水性能が低下してしまうとカビやコケが発生する原因になり、建物全体の見た目を悪くしてしまいます。
外壁塗装を行うと、塗膜も新しくなるため防水性能も回復し、結果的に建物全体の美観回復、維持にもつながります。
外壁塗装の塗り替えを行う前には、高圧洗浄機を使って今ある外壁や屋根をきれいに洗い流します。
高圧洗浄を行うだけでもある程度きれいにはなりますが、その上から新しく塗料を塗っていくため、塗装直後の建物の外観は新築のようにきれいになります。
外壁・屋根の防水性能の回復
外壁材や屋根材は、製造される際や現場で表面を保護するために塗装がなされています。
塗装をした際に作られる塗膜が防水性能を持っているため、建物を雨水から守ってくれています。
しかし塗膜は長年使う影響で劣化してしまうため、いつかは必ず防水性能が落ちてしまいます。
防水性能が落ちてしまうと雨水が外壁材や屋根材に染み込んできます。
そこで外壁の塗装を塗り替え、塗膜を再び形成させると防水性能が復活します。
外壁や屋根の防水性能が復活するため建物の雨水への耐久性がよみがえり、雨漏りを防げます。
遮熱・断熱機能の追加
建物に日光が当たると外壁や屋根の表面温度が上がります。
表面温度の熱が室内へ伝わることで部屋の中の温度も上がってしまいます。
遮熱・断熱機能を持つ塗料を塗ることで、効率よく日光の赤外線を反射してくれるようになります。
日光の赤外線が反射されると、外壁や屋根の表面温度も上昇しにくくなります。
特に夏場は効果が良く表れ、最大で3℃ほど室内の温度上昇を防ぎます。
防カビ・防藻・防コケ
外壁用塗料、屋根用塗料の大半の塗料に防カビ・防藻・防コケの薬剤が含まれています。
塗料によって機能に差や種類が異なることもありますが、防カビ・防藻・防コケ機能に優れた塗料を使えば、長くカビ・藻・コケの発生を防いでくれます。
「低汚染」「防汚」で建物美観を長続きさせる
各塗料メーカーによって名称が異なってきますが、塗料の種類の中に「低汚染」「防汚」と呼ばれる塗料があります。
「低汚染」「防汚」という塗料は親水性の塗膜を形成する塗料です。
簡単に言うと、塗料を塗った部分に雨が当たると、塗った部分の広い範囲に雨が行き渡るため、雨によってついた汚れを勝手に洗い流してくれるという特徴を持っています。
汚れの中には塗膜の劣化を早めてしまうものもあります。
雨が降った時に塗膜自身が汚れを洗い流してくれることで、塗膜の防水性能を保ちながら見た目も良い状態で維持させることができます。
外壁塗装の塗料にできないこととは?
上記では外壁塗装の塗料によってできることを紹介してきました。
塗料を塗ってできることを見ると、塗料を塗ればどんな問題でも解決するように思えるかもしれません。
しかし、塗料にできないこともあります。
雨漏りの根本的な解決
上記でもお伝えしたように、防水性能を高めたり、復活させたりするために外壁や屋根の塗装を行うケースがあります。
しかし、それはあくまでも外壁材や屋根材の防水性能を高めるためであって、建物の骨組みに対してではありません。
雨漏りが起こる原因はさまざまです。
屋根材の下に敷いてある防水シートや野地板、建物筐体の接合部分から雨水が入り込んでいる場合は塗装を行っても雨漏りは直りません。
訪問営業などで「雨漏りを止めるには塗装が最適です!」という話を聞いたという方もいらっしゃるかもしれません。
外壁材や屋根材の損傷が雨漏りの原因であれば塗装をすることで雨漏りが直る場合もあります。
しかし、雨漏りの原因が別にある可能性も十分に考えられるため、屋根を専門とした業者の屋根診断などを行わないまま、塗装で雨漏りが止まると断言することはできないのです。
外壁・屋根表面のヒビ割れ(クラック)の修繕・補修
外壁・屋根表面のヒビ割れ(クラック)が0.3mmより小さければ、弾性塗料を使いそのまま塗装しても問題ありません。
しかし、0.3㎜以上のヒビ割れがある場合は、外壁・屋根を塗り替える前にヒビ割れの修繕、補修作業が必要となってきます。
もし0.3mmよりも大きいヒビ割れに上から塗装すると、塗膜の下に何もない空間ができてしまいます。
この場合、塗装した部分が完全に乾燥すると塗膜表面にヒビ割れに沿ったラインができてしまうことがあります。
ヒビ割れを直す工事は塗装工事とは別の工事になります。
ヒビ割れが起きているにもかかわらず見積もり書にヒビ割れ修繕・補修作業の記載がない場合や、「ヒビ割れはサービスで直します」と言う外壁塗装業者には注意しましょう。
しっかりとしたヒビ割れ修繕・補修作業を行わず、ヒビ割れした部分の上からそのまま塗料を塗ろうとしている可能性があるので業者に聞くなどして必ず確認しましょう。
劇的な光熱費の削減
暑さの元である熱を遮ってくれる遮熱・断熱塗料を使用したからといっても、夏場にエアコンを使用しなくてもいいくらい温度が劇的に下がるようなことはありえません。
外壁塗装業者の中には調子の良いことを言う業者もいますが、よっぽどの冷夏といった異常気象か避暑地でもない限り、エアコンを使わず光熱費を劇的に削減するということは無理です。
上記では最大で3℃ほど室内温度の上昇を防ぐとお話ししました。
3℃下がると言っても、人によって感じ方は違ってきます。
人によって温度は変わっていないと感じる人もいれば、温度が下がったと感じる人もいるでしょう。
光熱費においても、エアコンを使う時間が減ったり設定温度を高めに設定できたりといった程度です。
遮熱・断熱塗料は機能や効果が過剰に伝えられることもありますが、万能ではありませんので注意しましょう。