PHP, если условие не работает в WordPress - PullRequest
0 голосов
/ 12 мая 2018

Для страницы ниже: https://www.mousampictures.com/department/wedding/

Я пытаюсь показать слайдер, если заголовок соответствует указанному заголовку:

    <div id="content" class="site-content" role="main">
        <div class="layout-full">
            <header class="entry-header">
                <h1 class="entry-title"><?php single_cat_title(); ?></h1>
           <!-- This displays 'Wedding' -->
            </header>

            <!-- wedding -->        
            <?php 
                if ( single_cat_title() == "Wedding")  {
//above line doesn't work...and instead prints wedding on the page.
                    echo do_shortcode('[metaslider id="1710"]');
                }
            ?>

            <!--portrait -->
            <?php echo do_shortcode('[metaslider id="1718"]'); ?> 

            <!--travel -->
            <?php echo do_shortcode('[metaslider id="1714"]'); ?>

        </div>

Мне нужно показать каждый слайдер, в зависимости отправильная страница.

Ответы [ 3 ]

0 голосов
/ 12 мая 2018

Функция single_cat_title по умолчанию печатает заголовок, если вы хотите получить значение для сравнения, вам нужно использовать функцию в другом виде.

В документации дляфункция, вы можете увидеть определение:

single_cat_title( string $prefix = '', bool $display = true )

То есть, для вашего случая вы должны выполнить следующее условие if:

if ( single_cat_title('', false) == "Wedding")  {

Используя второй параметр для false, вы получитежелаемое значение вместо его распечатки.

0 голосов
/ 12 мая 2018

single_cat_title() принимает два параметра: prefix по умолчанию - пустая строка и display - логическое значение по умолчанию true.

Измените условное на этот формат:

if ("Wedding" == single_cat_title("", false)) {
    // do something
}
0 голосов
/ 12 мая 2018

Есть два необязательных параметра для включения в функцию single_cat_title() согласно документации (https://developer.wordpress.org/reference/functions/single_cat_title/).

enter image description here

Попробуйте установить второй параметр ($display) в FALSE:

if ( single_cat_title('', FALSE) == "Wedding")  {
    echo do_shortcode('[metaslider id="1710"]');
}

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

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