как писать != в запросах funktion wordpress

P
На сайте с 02.06.2006
Offline
123
542

Вот часть кода:

       function rt_blog_shortcode( $atts ) {

extract( shortcode_atts(
array(
'id' => false,
'column' => false,
'posts' => 10,
'layoutMode' => false,
'category_name' => '',
'minus_category_name' => '',
), $atts )
);

// THE QUERY
global $post;
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$the_query = new WP_Query( array ( 'post_type' => 'post', 'posts_per_page' => $posts, 'category_name' => $category_name, 'paged' => $paged ) );

'minus_category_name' => '', - это уже я дописал, мне нужно в запросе исключить определенную категорию. Что бы не выводились посты где она есть

вот шорт код что пишу в теле странице

[rt_blog column="col-xs-12 col-sm-6" category_name="cat_1" minus_category_name="cat_2" posts="100"]

Подскажите как правильно написать запрос $the_query чтобы выводились посты только категории 2

K
На сайте с 03.06.2015
Offline
45
#1

"чтобы выводились посты только категории 2" надо: category_name="cat_2"

---------- Добавлено 05.06.2015 в 18:52 ----------

Я не знаю WP, но судя по бреду в исходнике дела обстоят так: у вас есть строка которую парсит shortcode_atts() которой дополнительно подается шаблон в массиве, который она видимо заполняет разбив строку и возвращает, который затем разбивается на переменные экстрактом, которые профтыкаются в аргумент конструктора объекта в виде массива обратно. Чтобы ваш минус принял участие, его надо в объект передать зная куда там чего его конструктор пихает. В общем сферический конь в вакууме.

MYSQL PHP JS HTML CSS SEO TXT США СССР
SeVlad
На сайте с 03.11.2008
Offline
1609
#2
pash:
это уже я дописал, мне нужно в запросе исключить определенную категорию.

http://codex.wordpress.org/Class_Reference/WP_Query:

$query = new WP_Query("cat=-13");
Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
S
На сайте с 05.04.2013
Offline
19
#3

Просто приведу пример:

Получить записи, входящие в одну из категорий с идентификатором 10, 11 или 12, но не входящие ни в одну из категорий с идентификатором 21 или 22:


$query = new WP_Query( array(
'category__in' => array( 10, 11, 12 ),
'category__not_in' => array( 21, 22 ),
) );

Если не понятно, гуглим по запросу "WP_Query".

P
На сайте с 02.06.2006
Offline
123
#4

Это не бред, это кусок кода из файла functions в одной прикольной теме wp,


function rt_blog_shortcode( $atts ) {
extract( shortcode_atts(
array(
'id' => false,
'column' => false,
'posts' => 10,
'layoutMode' => false,
'category_name' => '',
'minus_category_name' => '',
), $atts )
);

// THE QUERY
global $post;
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$the_query = new WP_Query( array ( 'post_type' => 'post', 'posts_per_page' => $posts, 'category_name' => $category_name, 'paged' => $paged ) );

// THE LOOP
if ( $the_query->have_posts() ) {

$layout_option = rwmb_meta( 'rt_layout_option' );

if (!$layout_option) {
$output = '<div class="container">';
}

if ($column) {
$output .= '<div class="row">';
$output .= '<div id="article-container">';
}

while ( $the_query->have_posts() ) {
$the_query->the_post();

$format = get_post_format();

if(!$format) {
$format = 'standard';
}

if ($column) {
$output .= '<div class="' . esc_attr($column) . ' article-wrap">';
}

$output .= '<article id="post-' . get_the_ID() . '" class="' . implode( ' ' , get_post_class() ) . '">';
$output .= '<div class="entry-wrap">';

// ENTRY THUMB
if (($format == 'image' || $format == 'standard') && has_post_thumbnail() ) {
$post_thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'landscape-full' );

$output .= '<div class="entry-thumb">';
$output .= '<img src="' . $post_thumbnail_src[0] . '" class="img-responsive" alt="">';
$output .= '</div>';
}

if ($format == 'audio' ) {
$post_audio_url = rwmb_meta( 'rt_post_audio_url' );
$post_audio_embeded_code = rwmb_meta( 'rt_post_audio_embeded_code' );

if ( !empty($post_audio_url) ) {
$output .= '<div class="entry-thumb style="padd"">';
$output .= do_shortcode('[audio src="' . $post_audio_url . '"]');
$output .= '</div>';
} else {
if ( !empty($post_audio_embeded_code) ) {
$output .= '<div class="entry-thumb">';
$output .= $post_audio_embeded_code;
$output .= '</div>';
}
}
}

if ($format == 'video' ) {
$post_video_url = rwmb_meta( 'rt_post_video_url' );
$post_video_poster = rwmb_meta( 'rt_post_video_poster' );
$post_video_embeded_code = rwmb_meta( 'rt_post_video_embeded_code' );

if ( !empty($post_video_url) ) {
$output .= '<div class="entry-thumb">';
$output .= do_shortcode('[video src="' . $post_video_url . '" poster="' . $post_video_poster . '"]');
$output .= '</div>';
} else {
if ( !empty($post_video_embeded_code) ) {
$output .= '<div class="entry-thumb">';
$output .= $post_video_embeded_code;
$output .= '</div>';
}
}
}

if ($format == 'gallery') {
$images = rwmb_meta( 'rt_post_image_upload', array ( 'type' => 'plupload_image', 'size' => 'landscape-full' ) );
$total_images = count( $images );
if ( $images ) {
$output .= '<div class="entry-thumb">';
$output .= '<div id="carousel-' . $post->ID . '" class="carousel slide" data-ride="carousel">';
$output .= '<div class="carousel-inner">';

$i = 0;
foreach ( $images as $image ) {
if ($i == 0) {
$output .= '<div class="item active">';
$output .= '<img src="' . $image['url'] . '" alt="' . $image['alt'] . '" />';
$output .= '</div>';
} else {
$output .= '<div class="item">';
$output .= '<img src="' . $image['url'] . '" alt="' . $image['alt'] . '" />';
$output .= '</div>';
}
$i++;
}

$output .= '</div>';
$output .= '<a class="left carousel-control" href="#carousel-' . $post->ID . '" data-slide="prev">';
$output .= '<span class="glyphicon glyphicon-chevron-left"></span>';
$output .= '</a>';
$output .= '<a class="right carousel-control" href="#carousel-' . $post->ID . '" data-slide="next">';
$output .= '<span class="glyphicon glyphicon-chevron-right"></span>';
$output .= '</a>';
$output .= '</div>';
$output .= '</div>';
}
}

он отвечает за вывод постов по заданным параметрам

а на любой созданной странице можно написать шорткод с параметрами

[rt_blog column="col-xs-12 col-sm-6" category_name="ярлык категории" posts="100"]

нужно исключить посты по еще одной категории.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий