Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Gdy warunek nie spełniony
Forum PHP.pl > Forum > Przedszkole
Nemon
Witam, edytuję sobie plugin do wordpressa i chciałem dodać reguły wyłączające napisałem takie coś:

Kod
if (strpos($link, 'rel') === false&&(the_author_meta('ID') == 3) === false) {


the_author_meta('ID') wywołuje liczbę. Chodzi mi o coś takiego, że działanie nie jest wykonywane, gdy id autora jest równe 3.

Coś musiałem źle napisać, bo nie chce działać sad.gif


--------------------
Lampy led -> nowe lampy led stosowane jako oświetlenie sufitowe w domu.
Elber
  1. if (strpos($link, 'rel') == false && the_author_meta('ID') != 3) {
questionmark.gif
Shili
  1. (the_author_meta('ID') == 3) === false

Ten warunek zwraca TRUE gdy id usera jest różne od 3.

  1. strpos($link, 'rel') === false

Ten warunek zwraca TRUE gdy strpos($link, 'rel') zwraca FALSE.

Pewnie nie o to Ci chodziło.

W warunkach zazwyczaj nie korzysta się z === false.

Raczej
  1. if ( $author_name === 'Jan' && !($author_surname === 'Kowalski'))

Co przekazuje:
weź mi autora o imieniu Jan, który na nazwisko nie ma Kowalski.
Nemon
Cytat(Shili @ 17.12.2011, 15:07:26 ) *
  1. (the_author_meta('ID') == 3) === false

Ten warunek zwraca TRUE gdy id usera jest różne od 3.


No właśnie o to mi chodziło, żeby zwracał true gdy id usera jest różne od 3, czyli żeby nie wykonywał dalej gdy id usera jest równe 3, ale zamiast tego wyświetla mi tylko id usera w poście.




Shili
Czy możesz pokazać swój dalszy kod, tzn. poza pętlą?
Jesteś przekonany, że pierwszy warunek również jest poprawnie spełniony?
Nemon
Pierwszy jest z oryginału z plugina.

Kod wtyczki:

Kod
<?php

if (!class_exists('ExternalNofollow')) {
    class ExternalNofollow
    {
        static function init()
        {
            add_filter('the_content', array(__CLASS__, 'nofollow'));
        }

    function nofollow($content)
{
                     //return stripslashes(wp_rel_nofollow($content));                    
                     return (get_the_ID() > 500) ? $content : preg_replace_callback('/<a[^>]+/', array(__CLASS__, 'callback'), $content);
}

        function callback($matches)
        {
            $link = $matches[0];
            $site_link = get_bloginfo('url');

            if (strpos($link, 'rel') === false) {
                $link = preg_replace("%(href=\S(?!$site_link))%i", 'rel="nofollow" $1', $link);
            } elseif (preg_match("%href=\S(?!$site_link)%i", $link)) {
                $link = preg_replace('/rel=\S(?!nofollow)\S*/i', 'rel="nofollow"', $link);
            }
            
            return $link;
        }
    }
    
    ExternalNofollow::init();
}
?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.