sergun

Удаление поста вместе с аттачментами

Как сделать чтобы при удалении записи, все ее аттачменты и превьюшки тоже удалялись?
Можно удалять картинки при редактировании поста, а потом и сам пост удалять…

Но у меня такая ситуация: пост добавляется пользователем (объявление), картинка загружается в папку с изображениями для объявлений и ей создаются превью. Через какое-то время объявление удаляется автоматически, плагином Auto Prune Posts, а картинки остаются. Даже если вручную редактировать объявление, то все равно можно удалить миниатюру только из поста, но на диске она остается.

Можете что-нибудь посоветовать?

если поможет – вот кусок где добавляется объявление

$new_post = array(
                         'post_title' => $_POST['new_post_title'],
                         'post_content' => $_POST['new_post_content'],
                         'post_status' => 'publish',
                         'post_author' => 1,
                         'post_category' => array($_POST['cat2'])
                      );
                    $new_post_id = wp_insert_post( $new_post, $wp_error ); 
                    
                    //echo 'пост с контентом id - '.$new_post_id;
                    
                    if (($new_post_id)and($add_img) ) {//если есть катинка
                        
                        $new_post_img = array(//добавляем запись с картинкой 
                         'post_title' => $_POST['new_post_title'],
                         'post_content' => '',
                         'post_status' => 'inherit',
                         'post_mime_type' => 'image/'.$p[1]
                      );
                      $new_post_img_id =  wp_insert_attachment( $new_post_img, $file_name, $new_post_id );  //добавили запись с картинкой
                       require_once(ABSPATH . 'wp-admin/includes/image.php');
                       $new_post_img = wp_generate_attachment_metadata( $new_post_img_id, $file_name );
                       wp_update_attachment_metadata( $new_post_img_id, $new_post_img );
                      
                      
     
                      $res = $wpdb->insert( $wpdb->postmeta, array(//в пост с контентом добавляем мета с id поста с картинкой
                      'post_id' => $new_post_id,
                      'meta_key' => '_thumbnail_id',
                      'meta_value' => $new_post_img_id)                      
                      );    

                      set_post_thumbnail($new_post_id, $new_post_img_id);//крепим картинку к объявлению                                                                                
                      //echo '<br />удалось прикрепить? - '.$set_th;
                     // var_dump ($set_th);
                      
                      $res = $wpdb->insert( $wpdb->postmeta, array(
                      'post_id' => $new_post_id,
                      'meta_key' => 'user_adv',
                      'meta_value' => 1)

register_post_type и вложенность категорий

Всем привет!

Не могу до конца вкурить как пользоваться пользовательскими типами записей и таксономией(

Создаю свой тип записей "Статьи" и таксономию "Рубрики статей":

$labels = array(
    'name' => _x('Статьи','post type general name'),
    'singular_name' =>_x('Статья','post type singular name'),
    'add_new' => _x('Добавить новую', 'book'),
    'add_new_item' => __('Добавить новую статью'),
    'edit_item' => __('Редактировать'),
    'new_item' => __('Новая'),
    'view_item' => __('Просмотреть'),
    'search_items' => __('Поиск по статьям'),
    'not_found' => __('Ни одной статьи не найдено'),
    'not_found_in_trash' => __('В корзине нет статей'),
    'parent_item_colon' => ''
);

$args = array(
    'labels' => $labels,
    'public' => true,
    'publicy_queryable' => true,
    'show_ui' => true,
    'query_var' => true,
    //   'rewrite' => false,
    'rewrite' => array('slug' => 'articles'),
    'capability_type' => 'post',
    'hierarchical' => false,
    'menu_position' => null,
    'supports' => array('title','editor','author','thumbnail','comments','custom-fields','revisions')
);

register_post_type('article',$args);

register_taxonomy(
    'articles',
    'article',
    array(
        'hierarchical' => true,
        'label' => "Рубрики статей",
        'query_var' => true,
        'rewrite' => true
    )
);

В админке все норм – появилась панелька для статей. Можно добавить рубрики статей и саму статью.

Вывожу категории статей, все хорошо – выпадают.

<?php wp_dropdown_categories( 'hide_empty=0&orderby=name&taxonomy=articles' ); ?> 
        <script type="text/javascript"><!--
            var dropdown = document.getElementById("cat");
            function onCatChange() {
                if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
                    location.href = "<?php echo get_option('home');
        ?>/?cat="+dropdown.options[dropdown.selectedIndex].value;
                }
            }
            dropdown.on

Адреса у ссылок категорий получаются такого типа: http://localhost/gazeta-vibor.ru_wp_3_2/articles/blagoustroystvo
Но вывести список постов при переходе по такой ссылке я не знаю как.

Вывести ленту ‘articles’ получается: делаю страницу page-article.php и в ней так:

    <?php 
    $type = 'article';
    $args=array(
      'post_type' => $type,
      'post_status' => 'publish',
      'paged' => $paged,
      'posts_per_page' => 2,
      'caller_get_posts'=> 1
    );
    $temp = $wp_query;  // assign orginal query to temp variable for later use   
    $wp_query = null;
    $wp_query = new WP_Query($args); 
    ?>    
    <?php if(have_posts()) : ?>....

но ведь здесь все посты, из всех подкатегорий.

для вывода отдельного поста single-article.php – все работает.

Вопрос в том чтобы выводить списки постов подкатегорий. Как это реализовать?

Возможно не очень понятно изложил, если нужно, поясню подробнее. Если где-то уже все описано или тема уже поднималась, буду благодарен за ссылки, сам про вложенность категорий ничего не нашел.

Заранее всем спасибо!

Anonymous
Отправить
Ответ на: