Мишко

Вывод тегов в порядке добавления?

Заметил, что теги WordPress сохраняются в базе не в порядке добавления, а по какой-то своей логике. Соответсвенно, теги конкретного поста выводятся тоже иначе, чем вбивал пользователь. А что делать в ситуациях, когда важна последовательность задания тегов и их вывода в том же порядке?

BuddyBar и аватарки на всех сайтах сети

Есть сеть сайтов с установленным BuddyPress. Но при этом панель BuddyPress работает только на главном сайте, и аватарки, загружаеміе пользователем BuddyPress в свой профиль, не поддериваются на блогах сети. Кто-ниубдь знает, как все исправить?

Регситрация через соцсети/гугл

Вот есть куча сервисов для авторизации через соцсети, а есть что-то регистрации с помощью соцсетей?

Усложненный вариант – оегистарция с помощью соцсетей с апрувингом. Т.е. человек не может залогинится на сайте, пока админ не даст добро на его регситарцию (для закрытых сайтов). Буду благодарен за идеи.

Пробелы и кириллица в метаполях

Попытался написать формирование метаполей сразу для двух типов записей с общей функцией инициализации и сохранения.

Вроде сработало, только вот пробелы в метаполях и вообще все, напсианное кирилличными сиволами ввырезает. Не подскажете, в чем тут может быть подвох?

Да и вообще, буду благодарен, если кто взгянет на адекватность всего, что я накрутил

add_action( 'load-post.php', 'mixa_post_meta_boxes_setup' );
add_action( 'load-post-new.php', 'mixa_post_meta_boxes_setup' );

function mixa_post_meta_boxes_setup() {

// fist metabox
    add_action( 'add_meta_boxes', 'mixa_add_post_meta_boxes' );
// second metabox
    add_action( 'add_meta_boxes', 'mixa2_add_post_meta_boxes' );
    
    
    add_action( 'save_post', 'mixa_save_post_class_meta', 10, 2 );
    
}

/// !!!!

/* Create one or more meta boxes to be displayed on the post editor screen. */
function mixa_add_post_meta_boxes() {

    add_meta_box(
        'box1',            // Unique ID
        esc_html__( 'Бокс 1', 'example' ),        // Title
        'box1_meta_box',        // Callback function
        'nomer',                    // Admin page (or post type)
        'normal',                    //  normal, advanced, and side.
        'default'                    // Priority
    );
}


function mixa2_add_post_meta_boxes() {

    add_meta_box(
        'box2',            // Unique ID
        esc_html__( 'Бокс 2', 'example' ),        // Title
        'box2_meta_box',        // Callback function
        'post',                    // Admin page (or post type)
        'normal',                    //  normal, advanced, and side.
        'default'                    // Priority
    );
}

////
function box1_meta_box( $object, $box ) { ?>

    <?php wp_nonce_field( basename( __FILE__ ), 'mixa_post_class_nonce' ); ?>

    <p>
        <label for="mixa-post-class"><?php _e( "Опис поля 1", 'example' ); ?></label>
        <br />
        <input class="widefat" type="text" name="mixa-post-class" id="mixa-post-class" value="<?php echo esc_attr( get_post_meta( $object->ID, 'mixa_post_class', true ) ); ?>" size="30" />
    </p>
<?php }



function box2_meta_box( $object, $box ) { ?>

    <?php wp_nonce_field( basename( __FILE__ ), 'mixa_post_class_nonce' ); ?>

    <p>
        <label for="mixa-post-class"><?php _e( "Опис поля 2", 'example' ); ?></label>
        <br />
        <input class="widefat" type="text" name="mixa-post-class" id="mixa-post-class" value="<?php echo esc_attr( get_post_meta( $object->ID, 'mixa_post_class', true ) ); ?>" size="30" />
    </p>
<?php }




// COMMON FUNCTION
/* Save the meta box's post metadata. */
function mixa_save_post_class_meta( $post_id, $post ) {

    /* Verify the nonce before proceeding. */
    if ( !isset( $_POST['mixa_post_class_nonce'] ) || !wp_verify_nonce( $_POST['mixa_post_class_nonce'], basename( __FILE__ ) ) )
        return $post_id;

    /* Get the post type object. */
    $post_type = get_post_type_object( $post->post_type );

    /* Check if the current user has permission to edit the post. */
    if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
        return $post_id;

    /* Get the posted data and sanitize it for use as an HTML class. */
    $new_meta_value = ( isset( $_POST['mixa-post-class'] ) ? sanitize_html_class( $_POST['mixa-post-class'] ) : '' );

    /* Get the meta key. */
    $meta_key = 'mixa_post_class';

    /* Get the meta value of the custom field key. */
    $meta_value = get_post_meta( $post_id, $meta_key, true );

    /* If a new meta value was added and there was no previous value, add it. */
    if ( $new_meta_value && '' == $meta_value )
        add_post_meta( $post_id, $meta_key, $new_meta_value, true );

    /* If the new meta value does not match the old value, update it. */
    elseif ( $new_meta_value && $new_meta_value != $meta_value )
        update_post_meta( $post_id, $meta_key, $new_meta_value );

    /* If there is no new meta value but an old value exists, delete it. */
    elseif ( '' == $new_meta_value && $meta_value )
        delete_post_meta( $post_id, $meta_key, $meta_value );
}

исключить sticked и текущий посты

как из запроса исключить текущий пост и все посты, которые sticked?

вот такая конструкция работает

$wp_query = null;
$wp_query = new WP_Query();
$taxqueryrand['post__not_in'] =  get_option( 'sticky_posts' );

а такая уже нет…

$this_post = $post->ID;
$sticked = get_option( 'sticky_posts' );

$wp_query = null;
$wp_query = new WP_Query();
$taxqueryrand['post__not_in'] = array($this_post, $sticked);

Кроп картинок

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

Время жизни кеша

При настройке плагина кеширования столкнулся с проблемой: как определить максимально оптимальное время жизни кеша?

Ведь елси оно будет очень маленькое то будет от него мало толку и будет грузить сервак еще больше, верно?

Но как сделать расчет мне непонятно. Может кто-то подскажет? Посещаемость сайта, в зависимости от дня недели – 400-1200 человек.

Отдельный домен для одного из блогов

Как быть когда есть мультисайт, но для одного из сайтов сети надо сделать основынм доменом не podsite.site.com или site.com/podsite а прикрутить для него свой собсвенный домен?

Постраничная навигация в циклах e commerce

Сделал один магазин на wp e coomerce, теперь вот хочу сделать кастомную выдачу товаров, но проблема в том что для того чтобы поддреживать все функции магазина (например, вывод цены) надо вместо стандартного начала цикла использовать

while (wpsc_have_products()) :  wpsc_the_product();

т.е я делаю вот так

<?php

$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$taxquery['post_type'] = 'wpsc-product';
$taxquery['posts_per_page'] = 12;
$taxquery['paged'] = $paged;
$wp_query->query( $taxquery );

while (wpsc_have_products()) :  wpsc_the_product(); ?>

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

кто-то может подсказать, в чем подвох?

Вывод переменных в строках перевода

Есть у меня поле на странице сайта, содержание которого выводится аяксом в зависимости от действий пользовтеля. Кусок, отвечающий за это выглядит так

$stock = wpsc_check_variation_stock_availability( $product_id, $variations );

        if ( $stock !== false ) {
            $response['variation_found'] = true;
            if ( $stock === 0 ) {
                $response += array(
                    'product_msg'     =>  __( 'Sorry, but this variation is out of stock.', 'wpsc' ),
                    'variation_msg'   => __( 'Variation not in stock', 'wpsc' ),
                    'stock_available' => false,
                );

Мне надо присобачить к этому Variation not in stock еще текст в котором я хочу использовать переменные, значение которых буду получать выше по коду. Есть ли для этого гуманный способ? 🙂

Спасибо!

Левые комменты в записях

У меня есть кастомные типы постов (тип товары из wp e commerce), пустой шаблон комментов и Intense Debate. Так вот такая странность, некоторые записи правильно показывают комменты, а некоторые берут комменты из другой записи. В админке все комменты по записям распределены правильно, т.е. во время написания идут к нужной записи, а вот уже во время вывода что-то случается не то… Никто не встречал подобного? Может догадки, с чем это может быть связано?

Картинки грузятся, но не отображаются

Такая проблема. Есть мультисайт, на всех подсайтах кроме одного картинки грузятся нормально, а на одном все якобы работает, движек не выдает никаких ошибок. но после загрузки нет превью картинки, да и по якобы адресу файла ничего нет. Как с этим бороться? Ведь папка для загрузок одна, и раз другие сайты загружают. значит это не права доступа и все такое…

Featured posts с нескольких тегов

Есть куча способов вівести похожие посты, но все они базируются на взятом перевом теге. Вот наконец нашел решение по нескольким тегам:

<div id="content-main">

<?php

// List posts by the terms for a custom taxonomy of any post type

$post_type = 'YOUR_POST_TYPE';
$tax = 'YOUR_TAXONOMY';
$tax_terms = get_terms( $tax );
if ($tax_terms) {
    foreach ($tax_terms  as $tax_term) {
    $args = array(
        'post_type' => $post_type,
        "$tax" => $tax_term->slug,
        'post_status' => 'publish',
        'posts_per_page' => -1,
        'caller_get_posts'=> 1
    );

        $my_query = null;
        $my_query = new WP_Query($args);

        if( $my_query->have_posts() ) : ?>

            <h2 class="breadcrumb">All <?php echo $tax; ?> Posts For <?php echo $tax_term->name; ?></h2>
            <ul class="taxlist">
            <?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>

                <li id="post-<?php the_ID(); ?>">
                    <a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
                </li>

            <?php endwhile; // end of loop ?>

            </ul>

        <?php else : ?>
        <?php endif; // if have_posts()
        wp_reset_query();

    } // end foreach #tax_terms
}
?>
</div>

Но этот разбивает посты на блоки по каждому тегу. А как вывыести все вместе, и чтобы при этом посты не повторялись. Такое возможно?

Спецам по WP E Commerce – отображение цены

Хочу вывести на главной странице магазина последние товары, для чего использую такой функционал:

<?php

$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$taxquery['post_type'] = 'wpsc-product';
$taxquery['posts_per_page'] = 12;
$wp_query->query( $taxquery ); ?>

 
<div class="catalog">
<?php while ($wp_query->have_posts()): $wp_query->the_post(); ?>

     

<div><a href="<?php the_permalink() ?>">
                <?php if(wpsc_the_product_thumbnail()) :?>                    
<img alt="<?php echo wpsc_the_product_title(); ?>" title="<?php echo wpsc_the_product_title(); ?>" src="<?php echo wpsc_the_product_thumbnail(); ?>" width="<?php echo get_option('product_image_width'); ?>" height="<?php echo get_option('product_image_height'); ?>" />                    
<?php else: ?>
нет                                                            
<?php endif; ?>
                <span><?php the_title(); ?>
               




<strong><?php echo wpsc_the_product_price(); ?></strong>


                
                </span></a>                
             </div>




               
<?php endwhile; ?>
</div>
<?php $wp_query = null; $wp_query = $temp;  ?>

Проблема в том, что функция wpsc_the_product_price(); почему-то работает некорректно. И єто странно. так как остальные "шоповские" функции работают, а єта нет. Может в запросе чего-то не хватает, какой-то глобальной переменной или еще чего? Спасибо!

Классы в списках рубрик

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

Книги

  • детективы

— Шерлок Холмс

В данном случае, при выборе пункта Шерлок Холмс раздел Книги теряет класс родительской рубрики. Как можно сделать так, чтобы главный родитель всегда оставался таковым?

Similar posts по тегу + в рубрике

Нет, я могу найти примеры решений для вывода похожих постов по тегу, но все они основываются на том, что берут первый тег. Усложнение задания состоит в том, чтобы

а) выводить похожие записи по тегах, используя несколько тегов из поста – все, которыми отмечены более одной записи вообще.

б) релевантность. выводить в первую очередь те посты, в которых встречается несколько тегов из нашего массива тегов

б) и наконец, когда предыдущие две проблемы можно будут решить, меня заинтересует, как выводить походжие записи для станицы с нескольки постами (например, у нас есть два разные типа контента но с общей таксономией – тегами. И когда мы смотрим выборку постов одного типа, внизу можно подсовывать посты другого типа с теми же тегами и наоборот) – т.е. нужно во время вывода циклом собирать все теги в массив а потом использовать для вывода похожих записей уже в другом цикле.

Пиво за подсказки )))

Логи ошибок wp_mail

Скажите товарищи, есть ли способоб мониторить ошибки wp_mail и просмтривать список возвратов почты?

Виджет не является частью странички?

Делал один мультивиджет, заметил некоторые странности в работе и решил проверить экпериментальным путем. Создал такой фукнционал виджета:

        if(!$i){
        $i = 5;
}
        echo $i; $i++;

И если вывести два виджета на одной странице, то каждый из них выводил значение 5.

Решил пойти дальше. Сделал так чтобы значения переменных, необходимых для отображения в виджете, хранились в отдельном файле, который приклеил в сайдбаре через require перед выводом виджетов. Конечно, виджеты упорно не видели включенный файл и не могли считать значения переменных. Как я понял, виждет исполняется не на самой страничке а где-то внутри а на страницу отджает только результат. Так вот вопрос в том, как сделать так чтобы если перед виджетом на странице есть переменная, то он мог ее видеть – Можно ли сделать так чтобы виджет не был чем то вроде айфрейма, а исполнял php непосредственно на странице, исходя из "окружающей обстановки", если вы меня понимаете…

jQuery в плагинах

Пишу плагин который использует jQuery. И вот начал тестить на разных сайтах. На одних работает, на других нет. Очевидно, пробелма в версия jQuery, но я не могу в своем плагине навязывать использоваьт нужную мне версию ибо тогда у пользователя что-то другое перестанет работать. Как ж ебыть?

Условные теги в тайтлах

Представим, что у меня есть тематический блог о путешествиях. И таксономия с названиями стран. Но я хотел бы чтобы при просмотре архива по определенной стране в тайтл выводилось не только ее название, а скажем. текст "Все о стране…". ДЛя этого я написал функцию

function add_some_text() {
global $wp_query;
if (is_tax(‘strany’)) { echo "Все о стране "; }
}

И вызов функции я поставил впритык перед вызовом тайтла в шапке. Но я так понял что в момент показа тайтла стандартный вордпрессовский функционал еще не запущен, поэтому функция не срабатывает (хотя если использовать данную функцию "ниже по коду" то все ок. ) Подскажите, как можно заставить движ брать инфу о текущем запросе в самом верху шапки и как сделать так чтобы потом ниже не было дубля данного запроса (ведь где-то он начинает срабатывать!) ?

Anonymous
Отправить
Ответ на: