2015-06-19 4 views
2

Я сделал этот сайт некоторое время назад, с некоторыми пользовательскими типами сообщений, и все работало нормально, теперь мне нужно добавить новый настраиваемый тип сообщения и создать цикл с этим новым настраиваемым типом сообщения и Тип сообщения «пост».Проблема с конкретным настраиваемым типом сообщения

что-то вроде этого:

$args = array (
    'post_type' => array('post', 'newsletter'), 
     'posts_per_page' => -1, 
     'order'  => 'DESC' 
); 

По какой-то причине это не работает ...

У меня есть один и тот же массив для другого почтового типа и работает нормально.

$args = array (
    'post_type' => array('post', 'events'), 
     'posts_per_page' => -1, 
     'order'  => 'DESC' 
); 

Теперь вот странная часть:

Если у меня есть «пост» - «события» (события старый таможенный пост типа) он работает, показывает как запись пользовательских типов пост, Если я есть «post» - «информационный бюллетень» (информационный бюллетень - это новый пользовательский тип сообщения), он показывает только сообщения, Если у меня есть «события» - «информационный бюллетень», он показывает только события,

Если я создаю новый тип персонализированного сообщения 'newsletter2', , и если у меня есть «информационный бюллетень» - «newsletter2», он работает, показывает как пользовательские типы сообщений, но если у меня есть «post» - «newsletter2», он показывает только «post»

Итак ... похоже, что старые пользовательские типы сообщений не работают с новыми пользовательскими типами сообщений по какой-то причине ... любые идеи ???

Спасибо !!!

Вот «бюллетень» таможенный пост типа (кстати, все мои пользовательские типы почтовых являются точно так же, за исключением того, что вместо бюллетеня они имеют свое название «события», «народ», «newsletter2 «)

function custom_post_newsletter() { 

$labels = array(
    'name'    => __('Newsletter'), 
    'singular_name'  => __('New Newsletter') 
); 
$args = array(
    'labels'    => $labels, 
    'supports'   => array('title', 'editor', 'thumbnail',), 
    'taxonomies'   => array('', 'post_tag'), 
    'hierarchical'  => false, 
    'menu_icon'   => 'dashicons-format-aside', 
    'public'    => true, 
    'show_ui'    => true, 
    'show_in_menu'  => true, 
    'show_in_nav_menus' => true, 
    'show_in_admin_bar' => true, 
    'menu_position'  => 7, 
    'can_export'   => true, 
    'has_archive'   => false, 
    'exclude_from_search' => false, 
    'publicly_queryable' => true, 
    'capability_type'  => 'page', 
    'rewrite' => array('slug' => _x('newsletter', 'URL Slug', 'theTheme')), 
); 
register_post_type('newsletter', $args); 

} 

add_action('init', 'custom_post_newsletter', 0); 

здесь петля:

$args = array (
       'post_type' => array('newsletter', 'post'), 
       'posts_per_page' => -1, 
       'order'  => 'DESC', 
       'post_status' => 'any', 
      ); 
    $loop = new WP_Query($args); 


    if ($loop->have_posts()) : while ($loop->have_posts()) : $loop->the_post();?> 

    <li><? the_title(); ?></li> //here only shows post post_type posts. 
    <?php 
    // end loop 

    endwhile; 
    endif; 
    wp_reset_query(); ?> 
+0

Пожалуйста, поделитесь код для того, как вы зарегистрировали 'newsletter' тип записи. – rnevius

+2

Если все, кроме «информационного бюллетеня», работает так же, как и регистрировать типы сообщений, у вас где-то есть соглашение об именовании. –

+0

Разве это не работает, работает, но не со старыми пост-типами. Если я показываю его в одиночку, он работает, но если я попытаюсь отобразить его со старыми типами сообщений, он не сработает ... и если я добавлю еще один новый пользовательский тип сообщения работает ... newsletter-newsletter2 работает отлично. –

ответ

2

это действительно extemely трудно правильно ответить на ваш вопрос, даже с щедростью.

Что действительно представляет интерес для всего этого сценария, так это то, что ваш код остается неизменным по всем направлениям, поэтому ваша проблема не связана с кодом, используемым для регистрации типа вашего сообщения.

Давайте посмотрим на возможные проблемы и дефолтов

  • WP_Query (, если вы используете get_posts, это остается тем же, get_posts использует WP_Query) установил предустановленные значения его параметров, а некоторые из них полностью исключены по умолчанию, если явно не задано.Давайте посмотрим на два, которые могут повлиять на результат:

    • post_type -> По умолчанию post

    • post_status -> Стандартные publish для зарегистрированных пользователей из пользователей, publish и private для зарегистрированных пользователей

Как вы установили post_type для включения вы можете указать только те сообщения, которые я могу придумать, глядя на вышеизложенное, что сообщения post type newsletter либо не публикуются, либо у вас есть пользовательский статус сообщения, назначенный им через плагин или собственный код.

Вам необходимо изучить эту возможность. Попытайтесь добавить 'post_status' => 'any' к своему пользовательскому запросу и посмотреть, есть ли у вас сообщения с newsletter. Я не совсем уверен, что это сработает, если у вас есть пользовательский статус сообщения, назначенный для сообщений.

Кроме этого, у меня действительно нет ничего, что можно было бы предложить по этой проблеме.

+0

Спасибо за вашу помощь, но все равно никаких изменений :(Я меняю петлю и добавляю post_status и порог того же ... кроме личного, конечно, что ничего не показывал, потому что все публикации публикуются –

+0

Тип сообщения для бюллетеня всегда отображается, если он один или с новостным типом сообщения или с любым новым типом сообщения, который я создаю .. проблема связана со старыми типами сообщений, которые все еще не работают. –

+0

Выстрел в темноте, измените свой приоритет с ' 0' до '11', когда вы регистрируете свой тип сообщения. Перед тем, как продолжить, возьмите резервную копию своего db, а затем восстановите свой дБ. Возможно, что-то не так, как ваш db. Здесь [ссылка] (http: // www. google.co.za/search?hl=ru&redir_esc=&client=tablet-android-samsung&source=android-browser-suggest&v=141338691&qsubts=1435561090577&action=devloc&q=wordpress+repair+db), чтобы помочь вам. Также попробуйте переустановить Wordpress, отключите свои плагины и переключитесь на связанную тему –

0

Возможно, у вас есть тема и/или плагин, который уже создает «электронный бюллетень» CPT?

Вы можете использовать «получить типы почтовых», чтобы увидеть все типы почтовых вы в настоящее время имеют:

https://codex.wordpress.org/Function_Reference/get_post_types 
+0

Вы прочитали все это ... Я написал, что я также создаю новые пользовательские типы сообщений ex. newsletter2 и все еще не работает. –

+0

Просто, чтобы проверить любой возможный результат ... Я создал новый postpost newpost и напечатал все пользовательские типы сообщений, как вы предлагали, и все выглядит нормально, но при переходе по типам сообщений никаких изменений не происходит. Новые пользовательские типы posy работают с новыми, но старые пользовательские типы сообщений не работают с новыми. –

Смежные вопросы