Поддержка Проблемы и решения Изменить название в выдаче

  • Решено wp-theme.eu

    (@wp-themeeu)


    Люди, хелп и сос в 10ой степени.

    Есть идея: вывести пост с длинным названием, скажем «диагноз выпадения волос», в короткой форме, вроде Диагноз. Т.е. называться пост должен так, как называется. Но на одной отдельно взятой странице хочется вывести пост именно в короткой форме Диагноз. При этом переименование должно быть автоматическим.

    Думаю, но никак не додумаю. Что-то вроде конструкции if else echo должно подойти. Но как будет выглядеть — хз.

    Буду очень признателен за помощь, даже может в материальном выражении, если кто разжует мне решение.

    Заранее огромное спасибо!
    РГ

Просмотр 15 ответов — с 31 по 45 (всего 54)
  • Ну да, так, как я и подозревал 🙂

    А я, к счастью, не телепат 🙂
    Поэтому предлагаю wp-theme.eu, как минимум, раскрыть код этого блока и закинуть на pastebin, чтобы знать изнутри о чем идет речь. Иначе, весь разговор вилами на воде писан..
    Да и ссылка не помешала бы на сайт, возможно, силами js это проще сделать..

    @wp-user: Ну просто нужные ссылки ведь все равно нужно будет вручную прописывать, верно?

    Мы, в принципе, уже сделали ручной вариант (вот здесь под названием статьи, слева: http://kornibian.wp-theme.eu/symptome/atemnot/). Но опять же, при огромном количестве записей хочется (очень хочется) автоматического решения проблемы.

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

    @wikicms: Я — Резо, 🙂 (wp-theme.eu уж больно официально). Код блока? Не вопрос:`<div class=»tagged-pages»>
    <?php
    $tags = wp_get_post_tags($post->ID);
    if ($tags) {
    $tag_ids = array();
    foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
    $args=array(
    ‘tag__in’ => $tag_ids,
    ‘post__not_in’ => array($post->ID),
    ‘showposts’=>5 // Die Anzahl der angezeigten Pages.
    );
    $my_query = new wp_query($args);
    if( $my_query->have_posts() ) {
    echo ‘<h3>Weitere Informationen:</h3><ul>’;
    while ($my_query->have_posts()) {
    $my_query->the_post();
    ?>
    <li>
    <a href=»<?php the_permalink() ?>» rel=»bookmark» title=»Permalink: <?php the_title_attribute(); ?>»><?php the_title() ; ?></a></li>
    <?php
    }
    echo ‘</ul>’;
    }
    }
    ?> </div>

    <div style=»width:100%; float:auto;»>

    <?php

    if (have_posts()) {
    /* Start the Loop */
    while (have_posts()) {
    the_post();
    get_template_part(‘content’, ‘page’);
    /* Display comments */
    if (theme_get_option(‘theme_allow_comments’)) {
    comments_template();
    }
    }
    } else {
    theme_404_content();
    }
    ?>
    </div>
    `

    @wikicms: Ссылку я уже вроде скидывал в эфир: http://kornibian.wp-theme.eu/test-artikel/

    Справа, вверху тот самый блок :), в тест-фазе, конечно же

    Попробуйте поменять:
    <a href="<?php the_permalink() ?>" rel="bookmark" title="Permalink: <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
    на
    <a href="<?php the_permalink() ?>" rel="bookmark" title="Permalink: <?php the_title_attribute(); ?>"><?php my_short_title(); ?></a></li>
    Но прежде, закиньте в файл functions.php такую функцию

    function my_short_title() {
        global $post;
        $title = explode( ' ', $post->post_title );
        echo $title[0];
    }

    Что получится не знаю )
    Как видно «Atemnot» — это главное слово (немецкого вообще не знаю), далее идут atemnot-ursache, atemnot-diagnose и тд, надеюсь, что код выше поможет.
    UPD А нее, стоп, я за слаги зацепился, а как выглядит полностью заголовок? Без вашей правки?
    UPD Изменил код, согласно последнему согласованию.

    Ну просто нужные ссылки ведь все равно нужно будет вручную прописывать, верно?

    нет, конечно 🙂 Всё на автомате.
    Выше я дал прототип кода (не руководство к действию, а просто для понимания принципов построения блока. Так, как я думаю 😉), где %POSTN_URL% «вычисляемый» урл связанного поста. А в условии проверяется — есть ли такой связанный пост по критериям связи.

    @wp-user.php: сори за может дилетантский вопрос, я в пхп не тормоз, но очень медленный газ :).

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

    Хм, а опасности того, что при данном Вами коде ссылки будут путаться, не пристутствует. Просто насколько я вижу, выводиться диагноз будет по слову-метке диагноз, а диагнозов как раз будет масса. И как тут определяется, что именно диагноз болезни А, а не диагноз болезни Б выведется в головном посте болезни А?

    Еще раз мерси.

    @wikicms: по-моему это именно то, что нужно. Сейчас попробую, посмотрим что получится.

    Там надо return $title[1]; поменять на echo $title[1];
    И все-таки, как выглядит заголовок? Atemnot Ursache, Atemnot Diagnose, так??

    @wikicms: заголовок полностью выглядит так: Diagnose von Atemnot, Therapie von Atemnot, Ursachen von Atemnot и т.д.

    Ключевое слово, Вы абсолютно правы, Atemnot (нехватка дыхания), т.е. вывести во всех связанных записях нужно вместо терапия нехватки дыхания, диагноз нехватки дыхания, причины нехватки дыхания: терапия, диагноз, причин — соответственно.

    @wikicms: не, как раз наоборот: Ursache Atemnot, Diagnose Atemnot…. Потому мне и нужно первое слово 🙂

    Тогда, всё-таки, так echo $title[0];

    И как тут определяется, что именно диагноз болезни А, а не диагноз болезни Б выведется в головном посте болезни А?

    Ну я ж не знаю как построена связь.. Да по сути оно и не надо (как-то сейчас же достоверно определяется связанные посты). Даже если посту просто присвоена метка, то думаю найти этот связанный пост не составляет проблем. Вот только как это сделать тут я не подскажу (далеко не гуру ВП 😉 ).

    Разобрался только, что вместо <?php the_title() ; ?> в 19-строке вышеданого кода нужно выводить нужный эл-т массива предустановленных анкоров.

    Я думаю, что по тому же принципу сделано в плагинах ВП (на стр. плагина в см.): есть страница скриншота\фака\ест — выводится линк на неё. А нет — пропускается.

    А вот вывод через обрезку (explode) мне кацца это только доп. нагрузка на хостинг. Как по мне — зачем производит эту работу, если результат заранее известен (в см в результате постоянное слово из фиксированного списка)

    @wikicms: yahooooo, камень сдвинулся с мертвой точки. По крайней мере есть некие изменения. Правда, код выводит не первое слово названия, а второе….. Вот тут: http://kornibian.wp-theme.eu/symptome/atemnot/

    Вместо «Ursachen von Atemnot» выводится только «von», т.е. 2-ое слово, а не 1-ое….

    У меня так, если мы об одном и том же говорим ))
    http://trueimages.ru/img/ec/64/19fd739b138b291fca48c31778a.png

Просмотр 15 ответов — с 31 по 45 (всего 54)
  • Тема «Изменить название в выдаче» закрыта для новых ответов.