Шаблон архива с AJAX-подгрузкой постов в Wordrpess

07 декабря 2017 - 11:27
<?php if ( ! empty( $_SERVER['HTTP_X_REQUESTED_WITH'] ) && strtolower( $_SERVER['HTTP_X_REQUESTED_WITH'] ) == 'xmlhttprequest' && get_query_var( 'paged' ) ) : ?>
        <?php if ( have_posts() ) : ?>
                <?php while ( have_posts() ) : the_post(); ?>
                        <?php get_template_part( 'blocks/content', get_post_type() ); ?>
                <?php endwhile; ?>
                <?php if ( $next = get_next_posts_link( '' ) ) : ?>
                        <a class="load-more" href="<?php echo next_posts(); ?>"><?php _e( 'Load more', 'base' ); ?></a>
                <?php endif; ?>
        <?php endif; ?>
<?php else: ?>
<?php get_header(); ?>
        <div id="content">
                <?php if ( have_posts() ) : ?>
                        <div class="load-more-holder">
                                <div class="title">
                                        <?php the_archive_title( '<h1>', '</h1>' ); ?>
                                </div>
                                <div class="new-content-target">
                                        <?php while ( have_posts() ) : the_post(); ?>
                                                <?php get_template_part( 'blocks/content', get_post_type() ); ?>
                                        <?php endwhile; ?>
                                </div>
                                <?php if ( $next = get_next_posts_link( '' ) ) : ?>
                                        <a class="load-more" href="<?php echo next_posts(); ?>"><?php _e( 'Load more', 'base' ); ?></a>
                                <?php endif; ?>
                        </div>
                <?php else: ?>
                        <?php get_template_part( 'blocks/not_found' ); ?>
                <?php endif; ?>
        </div>
<?php get_footer(); ?>
<?php endif; ?>

Проект на GitHub - https://github.com/sergeybelyaev/wp_ajax_load_more_archive.

Редирект анонимных посетителей на главную страницу в Wordpress

03 ноября 2017 - 12:25
add_action( 'get_header', 'rederict_anonymous_to_front_page', 100 );

function rederict_anonymous_to_front_page() {
        if ( ! is_user_logged_in() && ! is_front_page() ) {
                wp_redirect( home_url() );
                exit;
        }
}

Кастомный переключатель языков WPML

04 апреля 2017 - 13:02
<?php if ( function_exists( 'icl_get_languages' ) ) : ?>
        <?php $languages = icl_get_languages(); ?>     
        <ul>
                <?php foreach ( $languages as $lang ) : ?>
                        <li<?php if ( $lang['active'] ) : ?> class="active"<?php endif; ?>>
                                <a href="<?php echo $lang['url']; ?>"><?php echo $lang['native_name']; ?></a>
                        </li>
                <?php endforeach; ?>
        </ul>
<?php endif; ?>

Получение всех значений кастомфилда из определенного типа постов в Вордпресс

17 марта 2017 - 12:43
function get_meta_values( $key = '', $type = 'post', $status = 'publish' ) {
        global $wpdb;
        if ( empty( $key ) ) return;
        $r = $wpdb->get_col( $wpdb->prepare( "
                SELECT pm.meta_value FROM {$wpdb->postmeta} pm
                LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id
                WHERE pm.meta_key = '%s'
                AND p.post_status = '%s'
                AND p.post_type = '%s'
        "
, $key, $status, $type ) );
        return $r;
}

Добавление значений полей ноды в шаблон страницы в Drupal 8

06 ноября 2016 - 16:20

На примере полей Image и Body:

function THEME_preprocess_page(&$variables) {
  if ($node = \Drupal::routeMatch()->getParameter('node')) {
    if (isset($node->field_image->entity)) {
      $variables['field_image_url'] = file_create_url($node->field_image->entity->getFileUri());
    }
    $variables['body_text'] = $node->body->value;
  }
}

Страницы

Подписка на Лента главной страницы