<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
				<title><![CDATA[post를 삭제할 시(move to trash) save_post 액션 오류]]></title>
		<link>https://www.cosmosfarm.com/threads/rss/document/19810</link>
		<description><![CDATA[<p>안녕하세요.</p>

<p>워드프레스 초보가 몇개월째 혼자 끙끙대며 뭘 좀 만들어보려고 하는데, 또 오류가 생기네요.</p>

<p>커스텀 포스트타입으로 book을 만들었고 여기 book post 들은 메타데이터를 입력받습니다. 그래서,</p>

<p>아래와 같이, book post를 업데이트 할 때, 메타데이터를 저장하는 Hook을 걸어놨습니다.</p>

<pre>
<code class="language-php">function rnm_save_book_post( $post_id, $post, $update ){

    if(!$update){ return; }

    $book_date_default = sanitize_text_field($_POST['rnm_book_date']);
    update_post_meta( $post_id, 'book_date', $book_date_default );
}

add_action( 'save_post_book', 'rnm_save_book_post', 10, 3);

</code></pre>

<p> </p>

<p>본래의 목적에 맞게는 동작하는데, 문제는, </p>

<p>admin에서 book post를 삭제(move to trash)했을때, 위의 hook이 걸려서 함수가 실행됩니다. </p>

<p>그래서,</p>

<pre>
<code class="language-php">$book_date_default = sanitize_text_field($_POST['rnm_book_date']); </code></pre>

<p>에 쓰인 변수가 읽혀 undefine 오류가 뜨네요.</p>

<p>삭제 시에는 위 함수 또는 hook 이 걸리지 않도록 하면 될 것 같기도 한데..</p>

<p> </p>

<p>조언을 부탁드려도 될까요?ㅠ</p>

<p>감사합니다.</p>
]]></description>
		<copyright>Copyright 2026, 코스모스팜</copyright>
				<item>
			<title><![CDATA[isset으로 해결되는군요. 감사합니다.

즐거운 하루 되세요. ^^
]]></title>
			<link>https://www.cosmosfarm.com/threads/document/19816</link>
			<description><![CDATA[<p>isset으로 해결되는군요. 감사합니다.</p>

<p>즐거운 하루 되세요. ^^</p>
]]></description>
			<author>yeong</author>
			<pubDate>Wed, 07 Feb 2018 07:14:24 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요~^^

$_POST 혹은 $_GET 변수를 읽고 사용할 땐 PHP의 isset() 함수를 사용해보세요~

아래 ...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/19815</link>
			<description><![CDATA[<p>안녕하세요~^^</p>

<p>$_POST 혹은 $_GET 변수를 읽고 사용할 땐 PHP의 <a href="http://php.net/manual/en/function.isset.php" target="_blank">isset()</a> 함수를 사용해보세요~</p>

<p>아래 코드를 참고해주세요.</p>

<pre>
<code class="language-php">$book_date_default = isset($_POST['rnm_book_date']) ? sanitize_text_field($_POST['rnm_book_date']) : '';
update_post_meta($post_id, 'book_date', $book_date_default);</code></pre>

<p> </p>

<p>값이 있을 때만 meta 값을 업데이트 하시려면 아래 처럼 해보세요.</p>

<pre>
<code class="language-php">$book_date_default = isset($_POST['rnm_book_date']) ? sanitize_text_field($_POST['rnm_book_date']) : '';
if($book_date_default){
	update_post_meta($post_id, 'book_date', $book_date_default);
}</code></pre>

<p> </p>

<p>두 코드는 결과가 많이 바뀔 수 있기 때문에 실제로 테스트는 많이 해보셔야 합니다.</p>

<p>고맙습니다.</p>
]]></description>
			<author>스레드봇</author>
			<pubDate>Wed, 07 Feb 2018 04:44:07 +0000</pubDate>
			<category>워드프레스</category>
		</item>
			</channel>
</rss>