Помощ » Проблеми » Подреждане на статии by date asc в определена категория без

  • Затворена Pixadoro

    (@filesubmit)


    Здраейте,
    Как мога да подредя статиите по дата на публикуване (най-старите първо) в определена категория без плъгин?
    Посъветваха ме да използвам следния код

    function category_archive_sort_posts($query) {
      if ( !is_admin() && $query->is_main_query() ) {
        if ( is_category( 1192) ) {
          $query->set( 'orderby', 'date' );
          $query->set( 'order', 'ASC' );
        }
      }
    }
    
    add_action('pre_get_posts','category_archive_sort_posts');

    (1192 е номера на подкатегорията ми), но слагам кода в /wp-includes/functions.php и
    <?php add_action(‘pre_get_posts’,’category_archive_sort_posts’); ?> в category-1192.php в папката на темата, но нещо не се получава, само се чупи страницирането. Къде бъркам?

Виждате 9 отговора - 1 от 9 (от 9 общо)
  • Thread Starter Pixadoro

    (@filesubmit)

    реших го – кода се слага целия в functions.php на темата

    function category_archive_sort_posts($query) {
      if ( !is_admin() && $query->is_main_query() ) {
        if ( is_category( 1192) ) {
          $query->set( 'orderby', 'date' );
          $query->set( 'order', 'ASC' );
        }
      }
    }
    
    add_action('pre_get_posts','category_archive_sort_posts');
    Модератор Stanko Metodiev

    (@metodiew)

    Супер че си се справил!
    Имай едно на ум че тази промяна може да бъде загубена при обновление на темата. Моят съвет е да изместиш тази функция в един много семпъл плъгин, който ще работи независимо от текущата тема.

    Thread Starter Pixadoro

    (@filesubmit)

    Благодаря!

    А как може да подредим първите 5-6 статии в дадената категория custom (чрез post ID, нещо като залепени най-горе), а след това да си е по дата на публикуване?

    Модератор Stanko Metodiev

    (@metodiew)

    Много зависи какво точно правите. Има няколко варианта – да добавите custom filed, по който да соритрате, после по дата. Може да имате 2 отделни query-та: списък с постовете, който да са първи, после всички други, без горните.
    Трудно мога да дам еднозначен отговор, защото опциите са няколко 🙂

    Thread Starter Pixadoro

    (@filesubmit)

    Здравейте, спряхме се на custom fields подредбата, но в долната функция в момента изключва всички постове, които нямат custom field podredba.

    function category_archive_sort_posts($query) {
      if ( !is_admin() && $query->is_main_query() ) {
        if ( is_category( 1192 ) ) {
          $query->set( 'orderby', 'meta_value_num' );
          $query->set( 'meta_key', 'podredba' );
          $query->set( 'order', 'ASC' );
        }
      }
    }
    
    add_action('pre_get_posts','category_archive_sort_posts');

    Как да съчетая

    $query->set( 'orderby', 'meta_value_num' );
    $query->set( 'meta_key', 'podredba' );
    $query->set( 'order', 'ASC' );

    с

    $query->set( 'orderby', 'date' );
    $query->set( 'order', 'ASC' );

    Модератор Stanko Metodiev

    (@metodiew)

    В този случай ще ви трябва array за query-то, нещо подобно на тези: цък и цък – тези са само примерни, но имай предвид че можеш да използваш същите аргументи, които използваш и в стандартно WP_Query

    Thread Starter Pixadoro

    (@filesubmit)

    да, благодаря!

    направихме следното в custom страницата на категорията

    <?php
    	$arAlreadyShowed = array();
    	$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    	$bIsFirstPage = $paged == 1;
    	$args = array(
    		'cat' => 1192,
    		'orderby' => array( 'meta_value' => 'ASC', 'date' => 'DESC' ),
    		'meta_key' => 'podredba'
    	);
    	$query = new WP_Query( $args ); ?>

    +

    $arAlreadyShowed[] = get_the_id();
    	if(!$bIsFirstPage) {
    		continue;
    	}

    за да не се повтарят и сложихме 2 loop-а if ( have_posts() ) : while ( have_posts() ) : the_post(); единия да показва custom field статиите, а втория останалите

    Модератор Stanko Metodiev

    (@metodiew)

    Супер! Можете да маркирате темата като решена ако всичко е наред и супер че споделихте решението си, може да бъде полезно и на някой друг 🙂

    Thread Starter Pixadoro

    (@filesubmit)

    🙂 closed

Виждате 9 отговора - 1 от 9 (от 9 общо)
  • Темата ‘Подреждане на статии by date asc в определена категория без’ е затворена за нови отговори.