Получите сообщение термином от пользовательской таксономии в другом блоге в сети?

Я испытываю затруднения при получении сообщения термином в пользовательской таксономии, которую я настроил. Выгода, это является многоузловым, и я получаю эти данные из другого блога в сети, где таксономия регистрируется. Код, который я имею, хорошо работает на блоге, в котором регистрируется таксономия. Однако, когда я пробую тот же код другого блога с помощью switch_to_blog, я получаю bool (ложь). При значении я предполагаю, что существует ошибка в sql. Однако, если я просто делаю is_term, я могу подтвердить, что это там. Вот ссылка на код, который работает над блогом naitive, но не другим,

<?php get_header(); ?>

<?php global $switched; switch_to_blog(2); ?>

<div class="row-fluid mostwanted-container">

<?php
    $type = 'portal_warrants';
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $terms = is_term( 'most-wanted' , 'warrant_status' );
    $args=array(
            'post_type' => $type,
            'posts_per_page' => 6,
            'paged' => $paged,
            'tax_query' =>
                    array(
                            array(
                                    'taxonomy' => 'warrant_status',
                                    'field' => 'id',
                                    'terms' => 'most-wanted',
                            )
                    )

            );                                       

    $my_query = null;
    $my_query = new WP_Query($args);
    $i = 0;
    if( $my_query->have_posts() ) {
            while ($my_query->have_posts()) : $my_query->the_post();

            if( $i % 3 == 0) :?>
                    </div>
                    <div class="row-fluid mostwanted-container">
            <?php endif; ?>
            <?php print_r(var_dump($wp_query->request)); ?>                
            <div class="span4 wanted">
                    <h1>Wanted</h1>
                    <div class="mostwanted-img">
                            <img src="http://placehold.it/150x170">
                            <span class="arrested">Arrested</span>
                    </div>
                    <div class="mostwanted-info">
                            <h3><?php the_title(); ?></h3>
                            <ul>
                                    <li><strong>Last Known Address:</strong></li>
                                    <li><strong>Hair:</strong></li>
                                    <li><strong>Eyes:</strong></li>
                                    <li><strong>Height:</strong></li>
                                    <li><strong>Weight:</strong></li>
                            </ul>
                    </div>
            </div> 

    <?php $i++ ?>  

<?php endwhile; } wp_reset_query(); ?> 

</div> 

<?php restore_current_blog(); ?>

<?php get_footer(); ?>

*Редактирование (обновил pastebin с включенным switch_to_blog),

http://pastebin.com/uBbaXnSt

Кроме того, это не производит ничего вообще даже с print_r(var_dump($my_query->request));


Решение (или по крайней мере частично)


Проблема switch_to_blog не предоставляет Вам доступ ко всему в другом блоге в сети включая taxonomies, теги, вещи в Вашем functions.php, хотя не заключают мне в кавычки 100% на этом. Поэтому таксономия не была зарегистрирована в "коммутируемый для" блоггинга. Мое решение (по крайней мере на данный момент) регистрирует таксономию в том блоге. После выполнения этого, tax_query работавший как ожидалось. Это - то, что я иду с тем, пока я не нахожу лучшее решение (если Вы существуете вообще).

0
04.05.2013, 00:33
3 ответа

Решение (или по крайней мере частично)

Проблемой является switch_to_blog, не предоставляет Вам доступ ко всему в другом блоге в сети включая taxonomies, теги, вещи в Вашем functions.php, хотя не заключают мне в кавычки 100% на этом. Поэтому таксономия не была зарегистрирована в "коммутируемый для" блоггинга. Мое решение (по крайней мере на данный момент) регистрирует таксономию в том блоге. После выполнения этого tax_query работал как ожидалось. Это - то, что я иду с тем, пока я не нахожу лучшее решение (если Вы существуете вообще).

1
19.02.2020, 23:49

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

Но так как Вы используете wp_reset_query() так или иначе попытайтесь использовать query_posts() с Вашим $args и используйте while(have_posts() : the_post()) вместо выполнения нового WP_Query() класс. Затем restore_current_blog() перед Вашим wp_reset_query() в конце.

Также Ваш var_dump не работает потому что $wp_query нет $my_query. Если Вы хотите видеть var_dump $wp_query возразите, что Вы должны global $wp_query; где-нибудь перед ним сначала.

Лучший ответ..

Не знайте, почему я не заметил его прежде.. Ваше tax_query поле установлено на идентификатор не, откладывают. Измените свой $args на..

$args = array(
            'post_type' => $type,
            'posts_per_page' => 6,
            'paged' => $paged,
            'tax_query' =>
                    array(
                            array(
                                    'taxonomy' => 'warrant_status',
                                    'field' => 'slug',
                                    'terms' => 'most-wanted',
                            )
                    )

            );
0
19.02.2020, 23:49
  • 1
    Все еще не давая вывода с tax_query в $args. У меня есть оба WP_Query и query_posts() работа пока tax_query не находится в аргументах. –  jerime 03.05.2013, 23:58
  • 2
    Это $my_query потому что это - новое WP_Query возразите, что OP создал. Почему Вы когда-либо рекомендовали бы query_posts? Особенно по созданию нового WP_Query объект? –  s_ha_dum 04.05.2013, 00:23
  • 3
    Проверьте мое редактирование. Я нашел решение по крайней мере в настоящее время. –  jerime 04.05.2013, 00:33
  • 4
    В отношении var_dump () $my_query по сравнению с $wp_query, код, отправленный выше, имеет var_dump ($wp_query-> запрос) не var_dump ($my_query-> запрос), который был всем. У меня были странные экземпляры switch_to_blog, не работающего над новым WP_Query () экземпляр, но это было ближе к версии 3.2, таким образом, я думал, возможно, что это могло бы быть релевантно. Забудьте весь изо что, хотя я думаю, что это связано с моим редактированием выше. –  Cole 04.05.2013, 01:39

Та же проблема, мое решение:

$queryterms = "
    SELECT *
    FROM wp_".$site->blog_id."_terms terms, wp_".$site->blog_id."_term_taxonomy term_taxonomy, wp_".$site->blog_id."_term_relationships term_relationships 
    WHERE (terms.term_id = term_taxonomy.term_id AND term_taxonomy.term_taxonomy_id = term_relationships.term_taxonomy_id)
    AND term_relationships.object_id = ".$post->ID."
    ";
$terms = $wpdb->get_results($queryterms, OBJECT);
foreach ($terms as $term) {
    // Your stuff
};
0
19.02.2020, 23:49

Теги

Похожие вопросы