PHP question: how to combine syntax?

could someone please tell me where the mistake is in my PHP code? My PHP knowledge is extremely rudimentary although I have tried it with http://php.net/manual/de/language.operators.logical.php :-D

"translated" it should mean something like:

  • Single Post -> Show reading time: yes
  • Custom Post Type "wpdmpro" -> Show reading time: no

The function for the reading time works per se, but not in the way I put it together concerning the combination with the CPT.

With my code the reading time is not shown - neither in the CPT nor in the normal single post:

//  Reading Time

if (function_exists('readingtime') )  if ( is_single()  !  'wpdmpro' == get_post_type() )  

{      
echo 'span class="text-sep text-sep-cat"//span';               
echo readingtime();
}

Thanks for your help.

Topic comparison functions php custom-post-types Wordpress

Category Web


This part is incorrect:

if ( is_single() && !  'wpdmpro' == get_post_type() )

That essentially means:

if ( is_single() && false == get_post_type() ) {

Which will never be true. To check if a value does not equal another value, use !==:

if ( is_single() && 'wpdmpro' !== get_post_type() )

Also, the way you've combined the two if statements is hard to read and prone to errors. Instead, just add the first statement as a condition to the one statement:

if ( function_exists('readingtime') && is_single() && 'wpdmpro' !== get_post_type() ) {      
    echo '<span class="text-sep text-sep-cat">/</span>';               
    echo readingtime();
}

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.