カスタム投稿タイプを作成し、その追加データを保存する際に、公開された投稿がその名前で存在するかどうかを確認します。あれば問題なく動作しますが、記事が見つからない場合は通知します。
$post_exists = $wpdb->get_row("SELECT post_name FROM wp_posts WHERE post_name = '" . $_POST['article_name'] . "' AND post_type = 'post'", 'ARRAY_A');
if($post_exists)
update_post_meta($id, 'article_name', strip_tags($_POST['article_name']));
else
???
http://codex.wordpress.org/Class_Reference/WP_Error があることに気づきましたが、デバッグがfalseに設定されているので、それが私が望むものではないと思いますか。エラーは何でも構いません - 通常の通知でも問題ありませんが、単純なJavaScriptアラートでも問題ありません。現在のところ、投稿は緑色のライトで保存されていますが、正しく表示されません。
admin_notices
hook http://codex.wordpress.org/Plugin_API/Action_Reference/admin_notices を使用できます。
例えば:
function ravs_admin_notice() {
?>
<div class="error">
<p><?php _e( 'Article with this title is not found!', 'my-text-domain' ); ?></p>
</div>
<?php
}
publish_{your_custom_post_type}
フック http://codex.wordpress.org/Post_Status_Transitions
function on_post_publish( $ID, $post ) {
// A function to perform actions when a {your_custom_post_type} is published.
$post_exists = $wpdb->get_row("SELECT post_name FROM wp_posts WHERE post_name = '" . $_POST['article_name'] . "' AND post_type = 'post'", 'ARRAY_A');
if($post_exists)
update_post_meta($id, 'article_name', strip_tags($_POST['article_name']));
else
add_action( 'admin_notices', 'ravs_admin_notice' );
}
add_action( 'publish_{your_custom_post_type}', 'on_post_publish', 10, 2 );
通知はフックadmin_notices
で簡単に設定できます。このフックを介して各ページにメッセージを設定できます。
function my_admin_notice() {
?>
<div class="updated">
<p><?php _e( 'Updated!', 'my-text-domain' ); ?></p>
</div>
<?php
}
add_action( 'admin_notices', 'my_admin_notice' );
あなたのelse構造にこのフックをpingします。
else
add_action( 'admin_notices', 'my_admin_notice' );
my_admin_notice()
関数内で投稿タイプを確認するか、これをpublish_{custom_post_type}
フックでのみ使用してください。
色はcssクラスからの依存関係です。
この ヘルパープラグイン には、クラスとHTMLについての詳細があります。