One place for hosting & domains

      Write

      How to Write the Perfect Meta Description & Supercharge Your Organic Click-Through Rate


      Strong Search Engine Optimization (SEO) fundamentals are essential if you want to get your content to be found organically in search engines. However, despite all of our efforts to cater to Google’s robots, we still need to ensure we’re paying special attention to the human element.

      Fortunately, a well-written meta description can catch readers’ attention and convince them that your content will answer their questions, and is worth their time. In turn, it can increase your site’s organic click-through rate (CTR) and help tell Google your page is valuable.

      In this post, we’ll introduce you to meta descriptions and their importance to your website. Then, we’ll share some important tips to help you write better meta descriptions and supercharge your organic CTR. Let’s get started!

      An Introduction to Meta Descriptions

      Meta descriptions are the snippets of text you see underneath the title within Search Engine Results Pages (SERPs), as seen the example below:

      Meta description examples

      The main goal of a good meta description is to give readers an idea of what the web page is all about. Naturally, titles also play a vital role here, but there’s only so much information you can fit into a single headline.

      Meta descriptions provide up to a couple of sentences to expand on your page’s content. You can either write them yourself or have search engines generate them automatically based on your web page’s content.

      As convenient as having search engines do the work for you might sound, we strongly recommend that you write your own meta descriptions. That way, you get full control over what shows up on the SERPs and social media sites while also increasing your chances of engaging users.

      Let’s take a look at some meta description examples for a specific line of shoes. You can tell the meta description below was generated automatically, and it doesn’t give you much to go on:

      An example of a poorly-written meta description

      Here’s another result for the same product search, this one using a stronger meta description:

      A meta description from Nike news

      It’s important to understand that meta descriptions only give you a limited number of characters to play with. On desktops, that can be up to 160 characters, whereas mobile users will only see 120 of them. Roughly speaking, that means you get about two lines of text.

      Why Meta Descriptions Are Important

      SEO is all about relevance. In order to rank, you first need to produce high quality content designed to answer a specific question or cover a topic thoroughly and accurately. Beyond that, there are a whole bunch of SEO best practices, tips, and tricks that can help you rank better.

      Some of these Google has put into a category their algorithm uses to help them rank content in Search, referred to as “ranking factors.” There are over 200, in fact. Various examples include keyword usage, meta data, media usage in content, backlinks, and engagement.

      While meta descriptions themselves are not a “ranking factor” — in that they don’t directly influence the rankings of your pages — they can indirectly help you by encouraging real human searchers to click on your results, thus signaling higher user engagement and potentially influencing your search position.

      What to Include in a Meta Description

      Two lines of text isn’t much, but more often than not, it’s enough to cover a few key elements. Most often, this should include:

      1. What your page is about
      2. How it can benefit the reader

      If a meta description is too vague, then you’re not selling users on the idea of visiting your website. You’ll probably still get clicks, of course, but not as many as you might have otherwise.

      Let’s say, for example, that you wanted to write a meta description for this article you are reading right here. Here’s, maybe, a not-so-good example:

      Have you ever wondered what meta descriptions are? Wonder no more, because we’ll tell you everything you need to know.

      While it hits on the article’s primary topic, it doesn’t do a good job of previewing the page’s actual content. Now let’s give it another go, keeping in mind the fundamental elements we want to include:

      Meta descriptions convey what your web page is all about and can indirectly influence rankings. Find out how to write the perfect meta description here.

      This is short and to the point, and we even had enough characters left over to include a simple Call to Action (CTA). It may not win any literary awards, but it will get the job done.

      How to Write the Perfect Meta Description (10 Key Tips)

      At this point, you know the basics of what a meta description should include. Now here are 10 tips that will help you really knock your meta descriptions out of the park.

      1. Use Relevant Keywords

      If you’re reading this, you’re probably familiar with the concept of keywords. Ideally, you’ll use key phrases organically throughout all of your content, including in metadata such as your descriptions.

      Let’s say, for example, that you’re writing a recipe and you want to optimize it for the search term “how to cook a healthy lasagna”. That’s an easy term to work into a meta description:

      Learning how to cook a healthy lasagna is easier than you might imagine. Let’s go over a recipe you can cook in under two hours!

      Including keywords within your meta descriptions is an SEO best practice. It gives search engines a better idea of what your content is all about.

      However, as always, make sure to work those meta keywords in organically. That means not stuffing your descriptions full of keywords.

      In fact, Google advises against using long lists of keywords in your meta descriptions. So, you’ll want to make sure your description still reads like something a human (not a bot) would write.

      2. Consider Meta Description Character Count

      So far, most of the examples we’ve shown you have come in well under the maximum character count for the major search engines. You want to get some mileage out of your meta descriptions. However, in practice, obsessing over the character count isn’t as serious as you might think.

      To build on our earlier example of a healthy lasagna recipe, you could easily expand on its description to cover more information:

      Learning how to cook a healthy lasagna is easier than you might imagine. For this recipe, we’re substituting meat with eggplants, which means it will cook faster and feed up to four people.

      That example goes over the character limit for both desktop and mobile meta descriptions in Google. In practice, it would get cut off and look something like this:

      Learning how to cook a healthy lasagna is easier than you might imagine. For this recipe, we’re substituting meat with eggplants, which means it will cook …

      That snippet still provides plenty of information, so you don’t necessarily need to change it. What matters is that you include the essential details early on, so whatever does get cut off is just supplementary information.

      You’ll also want to keep in mind that Google recommends against very short meta descriptions. Although it’s great to be concise, a one-sentence description is unlikely to contain enough information to make readers click through.

      3. Create Unique Meta Descriptions

      When it comes to meta descriptions, there are two kinds of potential duplicates. It’s good practice to avoid both of them:

      • Mimicking other sites’ descriptions
      • Having several of your pages use the same description

      Overall, duplicate content is almost always bad news when it comes to SEO. Moreover, it can hurt your CTR if you have several pages competing for the same search terms. For this reason, Google recommends against repurposing the same meta description for different pages or posts.

      For practical purposes, there’s no reason all of your pages shouldn’t have unique meta descriptions. If it takes you more than a few minutes to write one, then you’re probably overthinking it.

      Get Content Delivered Straight to Your Inbox

      Subscribe to our blog and receive great content just like this delivered straight to your inbox.

      4. Write Compelling Copy

      Most meta descriptions are pretty boring, at least linguistically speaking. The need to cover so much information in such a limited space doesn’t lend itself well to innovation.

      One way to make your meta descriptions stand out is by using compelling language. To do that, take a look at what other websites are writing for the keywords you want to rank for. Let’s say, for example, that you’re looking for a cast iron pizza recipe.

      A lot of the content will be similar, which means their meta descriptions will share elements as well. However, not all descriptions are equally effective:

      Examples of pizza recipes in the search results

      Some of our favorite hits from the above example include the words “crispy”, “buttery”, and “chewy”. There are five results here, but the first and last stand out due to their word choices.

      Think about it this way — if you’re staring at that page trying to decide which recipe to follow, you’ll probably pick the one that sounds more delicious. At that stage, you don’t know how good the recipe will be, so your only indicators are the title tag, picture, and word choice in the meta description.

      5. Be Specific and Concise

      A vague meta description is unlikely to get many click-throughs. If a reader doesn’t know what to expect from the outset, there’s little motivation for them to spend the effort visiting your page and reading your content.

      Although a meta description is short, you can pack details into it by being picky with your words. Using precise language can communicate the gist of your content without running over the character count.

      Google provides this example of a highly specific meta description for a product page:

      An example of a specific and detailed meta description

      When writing a meta description for a blog post, you might include a quick summary of its headings so that readers have a detailed overview of the content:

      An example of a meta description that uses a list format

      Alternatively, you might summarize one of the key points from your article in your meta description. The exact approach will depend on the nature of your post and what information is most relevant to readers.

      6. Make Your Meta Description Actionable

      Simply writing a statement summary of your blog post can tell potential readers what it’s about. However, it could come across as generic and even boring if you don’t add a little excitement to your meta description.

      You can address this by making your meta description actionable. This means prompting the reader to actually do something when they click on the headline and go to your article.

      In the following meta description example, the website engages readers by encouraging them to “try these tips”, while also explaining the benefits of the article:

      An example of a meta description with a call to action

      Using a CTA in your meta description can catch a reader’s attention when they’re scanning the search engine results. It can also tell them a little more about what they should expect to learn from your content.

      There are a couple of ways to make your meta description actionable. You can include a direct CTA at the end of it, like in the example above. Alternatively, you might use active voice throughout to excite the reader and incentivize them to click through:

      An example of a meta description with active language

      Both approaches are valid and can be effective for attracting readers to your site, so it’s a matter of preference. However, in all cases, we recommend staying away from passive language as much as possible.

      7. Consider Your Target Audience

      It’s also essential to consider your target audience when writing meta descriptions for your content. This is the group of people that typically read your blog or would benefit most from your content.

      It might seem like writing a more generic meta description will ensure your content appeals to more people. However, this approach is often counterproductive. That’s because opting for a bland meta description means you might miss out on attracting readers who will better connect with your content.

      One of the easiest ways to target your ideal audience is by thinking carefully about the tone of your meta description. For example, it could be a good idea to incorporate some humor and casual language if your target reader is Gen Z:

      An example of a humorous meta description

      Alternatively, a more serious and to-the-point description with formal language could be more appropriate if your content is targeted toward older professionals.

      8. Appeal to Emotion

      It’s also a good idea to appeal to emotion in your meta descriptions. This approach can involve targeting a positive emotion, such as a reader’s excitement, or a negative pain point, like fear or trepidation.

      Targeting emotions within your meta descriptions can be highly effective because it plays on readers’ psychological triggers. In fact, studies show that most people make emotional decisions when choosing brands or buying products.

      If you choose to target a positive emotion within your meta descriptions, consider using exciting words to make readers feel more invested in your content. Here’s an example:

      Asking for a promotion can supercharge your career and earn your employer’s respect. Learn how to ask for and actually get a promotion!

      The same approach can also work for negative emotions:

      Are you worried about what will happen to your family after you pass away? Check out our life insurance policies and find the best plan for you!

      In both scenarios, using a question at the start of the meta description can immediately tap into the reader’s state of mind. We’ll explore this a little more in the next tip.

      9. Answer a Specific Question or Concern

      Most people use search engines to answer a question they have in mind. You can see this in action with the People also ask section in Google search results:

      The People also ask section in Google search results

      Although there aren’t enough words in a meta description to answer a potential question, you can target search intent. This refers to the reason why a user is making a particular search online.

      Targeting search intent can convince readers that your post won’t be a waste of their time. By immediately bringing up the reason they’re searching in the first place, you can assure readers that the rest of your content will provide value.

      You can address search intent by posing a question within your meta description or outlining a concern the reader might have. For example, if you’re teaching readers how to create an online store, your meta description might look like this:

      Are you looking to turn your passion into a business and make money online? Check out our complete guide to creating an online store!

      Since search intent goes hand in hand with keyword research, you’ll want to consider it when planning and writing your post. Then, you can provide a concise and exciting invitation to keep reading within your meta description.

      Supercharge Your Organic CTR with Strong Meta Descriptions

      When you boil it down, SEO is very competitive. You’ll never be the only website within a niche, so you’ll need to look for ways to make your pages stand out in the SERPs. Fortunately, an informative and unique meta description is a great way to catch potential visitors’ eyes.

      There are a few ways to write a perfect meta description. You can include keywords and leverage interesting language. We also recommend being as specific and detailed as possible, using emotional vocabulary and phrases that will appeal to your target audience.

      Are you looking to maximize your reach and get new eyes on your site? Our Dreamhost SEO marketing services can help you optimize your existing content, create new posts for your website, and provide monthly reports to track your progress. Check out our SEO plans today!

      Search Engine Optimization Made Easy

      We take the guesswork (and actual work) out of growing your website traffic with SEO.

      DreamHost custom website development services



      Source link

      How To Write Conditional Statements in PHP


      The author selected Open Sourcing Mental Illness Ltd to receive a donation as part of the Write for DOnations program.

      Introduction

      Decisions are an integral part of life. From the mundane decisions about what to wear, to the life-altering decisions of jobs and family. So too in development. For a program to do anything useful, it must be able to respond to some sort of input. When a person clicks the contact button on a website, they expect to be taken to a contact page. If nothing happens, or they are taken to the wrong page, the user may choose to stop using that website or company completely.

      Decisions written in code are formed using conditionals: “If x, then y.” Even a button click is a form of condition: “If this button is clicked, go to a certain page.” Conditional statements are part of the logic, decision making, or flow control of a computer program. You can compare a conditional statement to a “Choose Your Own Adventure” book, or a flowchart.

      Let’s look at some examples where we would use conditional statements:

      • If the student receives over 65% on her test, report that her grade passes; if not, report that her grade fails.
      • If there is money in an account, calculate interest; if it is overdrawn, charge a penalty fee.
      • If they buy 10 oranges or more, calculate a discount of 5%; if they buy fewer, then don’t.
      • Check the location of a user and display the correct language based on country.
      • Send a form on submit, or display warnings next to missing required fields.
      • Open a dropdown on a click event, or close a dropdown if it is already open.
      • Display the booking form for a hotel, but not if the hotel is booked.

      When evaluating conditions and assigning code to run based on whether or not those conditions are met, we are writing conditional code.

      This tutorial will start with an overview of the comparison operators that will be used to build conditional statements. Next, it will take you through writing conditional statements in PHP, including the if, else, and elseif keywords. This also includes combining conditions using the logical operators of and or or. Finally it will also cover some special conditional operators to more precisely describe a situation.

      Overview of Comparison Operators

      A conditional statement evaluates whether a condition is true or false. This is most often the result of comparing two values. Comparison operators are used, as their name implies, to compare two values. PHP is a loosely typed language, which means, by default, PHP will attempt to change a data type to match an expected result when possible. This is called type juggling, and becomes very important when using comparison operators. As an example, all of the following values would be considered equal even though they are of different types:

      false
      0
      0.0
      ''
      

      PHP provides several comparison operators to express the desired comparison of both value and type/value combined:

      • Equal == in value, after type juggling, meaning all of the values in the previous code block are equal.

      • Identical === in both type and value, meaning none of the previous values are identical, because they are all of different types.

      • Not Equal != or <> in value, after type juggling. As the opposite of equal, comparing false != 0 would evaluate as false because the values match.

      • Not Identical !== in both type and value. Comparing false !== 0 would evaluate to true because although the values evaluate the same, the type is different.

      Note: Pay special attention to the exclamation point !, which functions to negate other conditions.

      Besides equal and identical, PHP also provides comparison operators to express how the values relate to one another.

      • Less than < is used to show that 5 < 6 is true.

      • Greater than > is used to show that 5 > 4 is true.

      • Less than or equal to <= is used so show that both 5 <= 5 and 5 <= 6 are true.

      • Greater than or equal to >= is used to show that both 5 >= 5 and 5 >= 4 are true.

      Now that we know what the comparison operators are, we can look at how to use them to write conditional statements.

      Writing Conditional Statements

      Comparison operators are used in combination with the if, else, and elseif keywords to build conditional statements that control the flow of a program.

      Using if Statements

      When we wish to execute a specific piece of code only when a condition is met, we use the conditional if statement, followed by the condition in parentheses (), followed by the code to execute within curly braces {}. The code within the conditional statement will only be executed if the condition evaluates to true. When the condition is not true, the code within the conditional statement is ignored and processing continues after the close of the conditional statement. Let’s see how this would look in code:

      if ($inventory > 0) {
          echo "Add to Cart";
      }
      

      The string “Add to Cart” will only be displayed when the variable $inventory contains a number greater than 0.

      Alternately, if there is only a single expression after the condition, PHP allows us to leave off the curly braces entirely. PHP will execute the first expression after a condition, ending in a semicolon. This includes any whitespace between them. The following evaluates the same way as the previous example:

      if ($inventory > 0) echo "Add to Cart";
      

      Using an else Block

      When we wish to execute either one specific piece of code or another, we add an else block to the conditional if statement. The code within the if block will only be executed if the statement evaluates to true, while the code within the else bock will only be executed when the statement is not true. Let’s take a look at an example where shoppers are given a discount if they purchase 10 or more items:

      if (count($cart) >= 10) {
          $discount = $subtotal * .3;
      } else {
          $discount = 0;
      }
      

      When the number of items in the cart is greater than or equal to 10, the statement evaluates to true, and a discount of 30% is calculated, based on the $subtotal. When the number of items in the cart is less than 10, the statement evaluates to false and the else block is executed, which gives no discount. The comparison could also be written as count($cart) > 9.

      Note: You cannot use the percent sign % when calculating the percent, because % is used to calculate the modulo, which is the remainder of $a divided by $b: 3 % 8 = 2. Instead, to calculate a percent, convert the percentage to a decimal by dividing it by 100. So 30% is 30/100, or 0.30, or 0.3. For more, check out How to Work with Numbers in PHP.

      Adding an else block can sometime make code more confusing. It’s worth considering whether or not we can accomplish the same thing without the else block. For example, the previous conditional could also be written as follows:

      $discount = 0;
      if (count($cart) >= 10) {
          $discount = $subtotal * .3;
      }
      

      We set a default value of 0 for the discount and only change it when the condition is met.

      Writing an elseif Statement

      When a second condition is needed, you could add a second conditional statement:

      $discount = 0;
      if (count($cart) >= 5) {
          $discount = $subtotal * .15
      }
      if (count($cart) >= 10) {
          $discount = $subtotal * .3;
      }
      

      When adding a second statement in this way, PHP must check each statement, even if the first statement has been matched. If there are 14 items in the cart, the first conditional statement would evaluate to true, because 14 is greater than or equal to 5, which would set the discount to 15%. After that, the second conditional statement would also evaluate to true, because 14 is also greater than or equal to 10, once again setting the discount which overrides the value to 30%.

      This could also end up returning the wrong discount if the conditions are not in the correct order. When there is the possibility of matching multiple conditions, it’s a good idea to double check that you are evaluating those conditions in the correct order.

      The code could be clarified and evaluated more cleanly by using the elseif block:

      $discount = 0;
      if (count($cart) >= 10) {
          $discount = $subtotal * .3;
      } elseif (count($cart) >= 5) {
          $discount = $subtotal * .15
      }
      

      In this case, the code first checks for a value greater than or qual to 10. If this first statement evaluates to true, the code within the first conditional block is executed and the other conditional statements are never evaluated. Only when the first condition is not met is the next condition evaluated.

      A conditional statement may have any number of elseif conditions, but only a single else.

      Nested Conditional Statements

      Like nesting dolls, conditional statements may contain other conditional statements “nested” within them. When nesting conditional statements, using consistent indentation helps tremendously with readability. Let’s expand upon our discounts to give more options:

      $discount = 0;
      if ($country === 'USA') {
          if (count($cart) >= 10) {
              if ($coupon_discount > .3) {
                  $discount = $subtotal * $coupon_discount;
              } else {
                  $discount = $subtotal * .3;
              }
          } elseif (count($cart) >= 5) {
              if ($coupon_discount > .15) {
                  $discount = $subtotal * $coupon_discount;
              } else {
                  $discount = $subtotal * .15
              }
          }
      }
      

      In this example, the discounts are only available for those in the US, so before we check for any discount, we first verify that the $country variable is set to USA. The rest of the conditionals will only be reached if that first condition is true.

      Next we check if the number of items in the cart is greater than or equal to 10. If this second condition is true, then we check if the value of a $coupon_discount is greater than the normal 30% discount for ordering 10 or more items. If this third condition is true, then use the $coupon_discount to calculate the $discount. Otherwise, this third condition is false, then use the normal 30% to calculate the discount.

      This brings us to the else block of the second condition. Instead of just else, the elseif block is used to verify that the number of items in the cart is greater than or equal to 5 before giving the option for a secondary discount. Once again we check for a value in the $coupon_discount variable that is greater than the secondary volume discount of 15%. If this fourth condition is true, the $coupon_discount is used to calculate the $discount. Otherwise, this fourth condition is false, then we reach the last discount of 15%.

      Nested conditional statements, like the one we just looked at, can be hard to follow, especially if you start adding additional levels. When possible, consider how you might rewrite a conditional statement to remove nesting. The previous condition could also be written as follows:

      $discount = 0;
      if ($country !== 'USA') {
          // no discount for non-us locations
      } elseif ($coupon_discount > .3) {
          $discount = $subtotal * $coupon_discount;
      } elseif (count($cart) >= 10) {
          $discount = $subtotal * .3;
      } elseif ($coupon_discount > .15) {
          $discount = $subtotal * $coupon_discount;
      } elseif (count($cart) >= 5) {
          $discount = $subtotal * .15;
      }
      

      Because PHP allows an empty conditional block, we can check for country first and skip any other conditions. Take careful note of the negative expression !== meaning that the country does not match the value USA. Although you can leave a block completely empty, adding a comment explains the intention to leave that block empty.

      For the elseif blocks, we start with the most restrictive and work our way down. Someone in the USA with a coupon worth 20% (.2) would have the first 3 blocks evaluate to false. Then they would reach the third elseif, which would evaluate to true because .2 is greater than .15. The discount would be calculated and the final condition block would be passed over.

      Alternative Syntax

      The most common syntax for conditional statements is using curly braces, as the previous examples showed. PHP does provide an alternative syntax which can make things easier to read when there are long blocks of code between each conditional, or when a loop, which also uses curly braces, is used within a conditional. This alternative syntax is written using colons after the conditional statement and finalizing the conditional block with an endif; statement. The discount example could be written with this alternative syntax as follows:

      $discount = 0;
      if ($country !== 'USA'):
          // no discount for non-us locations
      elseif ($coupon_discount > .3):
          $discount = $subtotal * $coupon_discount;
      elseif (count($cart) >= 10):
          $discount = $subtotal * .3;
      elseif ($coupon_discount > .15):
          $discount = $subtotal * $coupon_discount;
      elseif (count($cart) >= 5):
          $discount = $subtotal * .15;
      else:
          $discount = $subtotal * .05;
      endif;
      

      While nesting a loop within these conditional blocks is acceptable, nesting curly brace conditionals within these conditional blocks may lead to unexpected results. It’s best to stick with either curly braces or colons.

      Note: Because of the way PHP handles whitespace, it will accept spaces between else and if when using curly braces: } else if (...){. However, PHP will fail with a parse error if you use a space when using a colon to define your statement: elseif (...):. In practice, it’s a good idea to avoid spaces and always write this as the single elseif.

      Additional Comparisons Operators

      Using a single comparison operator in each conditional statement is not the only way to use comparison operators. Not only can we combine conditions, we can also use comparison operators outside of a conditional.

      Combining Conditions Using Logical Operators

      When there are multiple conditions that both need to be true, or multiple conditions which would have the same affect, the conditional statements may be combined into a single block using Logical Operators.

      • And and says that both conditions must be true.

      • Or or says that either condition is true or they could both be true.

      • Xor xor says that only one of the conditions is true.

      • Not ! is used to negate a condition, which changes it from evaluating true to evaluating false.

      • And && says that both conditions must be true.

      • Or || says that either condition is true or they could both be true.

      The reason for the two different variations of and and or operators is that they operate at different precedences. The precedence of an operator specifies how “tightly” it binds two expressions together, or in what order the operations are evaluated. (See Documentation for Operator Precedence.) Either way is perfectly acceptable and works the same in most situations. Operators in PHP are case-insensitive, meaning the operator could also be written as OR (or even Or or oR, neither of which would I recommend). To minimize confusion, the most important thing is to be consistent in whichever you choose. I’ll be using and and or in the examples because they are more natural to read.

      Using this in the discount example: To check that both the $country variable is set to USA and that the items in the cart are greater than or equal to 10, those conditions can be combined using the and operator:

      $discount = 0;
      if ($country === 'USA' and count($cart) >= 10) {
          $discount = $subtotal * .3;
      }
      

      The example has two conditions $country === 'USA' and count($cart) >= 10. If either of these conditions evaluates to true, the code within that block will be executed. This example used the and operator, but it could also have used AND or even the && operator with the exact same results.

      We can also combine conditions that would have to same result. If having 10 or more items in the cart produces a discount of 30%, or having a subtotal of $100 or more would also produce a discount of 30%, these conditionals could be combined:

      $discount = 0;
      if (count($cart) >= 10 or $subtotal >= 100) {
          $discount = $subtotal * .3;
      }
      

      More than two conditions can also be combined; however, be extra cautious in their use. Let’s try to combine the country evaluation along with the cart count and subtotal comparison:

      # BAD
      $discount = 0;
      if ($country === 'USA' and count($cart) >= 10 or $subtotal >= 100) {
          $discount = $subtotal * .3;
      }
      

      This example doesn’t actually work the way it was intended because the country is evaluated with the count of the cart first, then that result is evaluated against the subtotal comparison using or. This means that no matter what the country or count values, if $subtotal is greater than or equal to 100, the full conditional statement will evaluate to true.

      Parentheses can be used to make sure that the conditions are evaluated in the intended order:

      $discount = 0;
      if ($country === 'USA' and (count($cart) >= 10 or $subtotal >= 100)) {
          $discount = $subtotal * .3;
      }
      

      Now the cart count is evaluated with the subtotal comparison before the country is evaluated with that result. This provides the desired outcome of requiring $country to have the value of USA and then either the count of the cart or the comparison of the subtotal (or both) must also evaluate to true.

      Sometime an entire conditional block is not required to compare two values. PHP provides a few shorthand comparison operators to more precisely describe a situation.

      Ternary Operator

      When there should be one result if an expression is true and another result if that same expression is false, a ternary operator can be used. The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to true, and expr3 if expr1 evaluates to false. Let’s say that the username of a visitor should be shown if they are logged in, while the word “Guest” should be displayed if not. The function isset will help us to evaluate this condition because it will check that a variable has actually been defined. If the variable is defined, isset returns true; if not, isset returns false:

      echo (isset($username)) ? 'Guest' : $username;
      

      This is identical to this if/else statement:

      if (isset($username)) {
          echo 'Guest';
      } else {
          echo $username;
      }
      

      It is possible to leave out the middle part of the ternary operator. The expression expr1 ?: expr3 returns expr1 if expr1 evaluates to true, and expr3 otherwise. To show either the username or the word “Guest”, the ternary operator would look something like:

      echo $username ?: 'Guest';
      

      This works if $username is set to an empty string, but if $username is not set at all, we get an error. The isset function cannot be used in this situation, because the output of isset($username) would either be true or false, instead of the value of $username. This brings us to our next operator.

      Null Coalescing Operator

      The null coalescing operator (??) has been added as “syntactic sugar” (sweet to have but not required) for the common case of needing to use a ternary in conjunction with isset(). It returns its first operand if it exists and is not null; otherwise it returns its second operand. To show either the username or the word “Guest”, the null coalescing operator is used:

      echo $username ?? 'Guest';
      

      Spaceship Operator

      The spaceship operator (<=>) is used for comparing two expressions: $a <=> $b. It returns -1, 0, or 1 when $a is respectively less than (<), equal to (=), or greater than (>) $b:

      echo 1 <=> 1; // 0
      echo 1 <=> 2; // -1
      echo 2 <=> 1; // 1
      

      Warning: Although the spaceship operator is not used often, it comes in very handy when writing a “user defined sort” (usort) function. The following example includes additional concepts you may not be familiar with yet. Don’t worry if you don’t follow all of the code right now. I’ll explain what’s going on in the example, and we’ll cover these concepts in more depth in a later tutorial.

      Let’s create an array of new products. Each product in the array will, in turn, be its own nested array of product attributes:

      $products = [
          ['name'=>'Flippers', 'price'=>7.99],
          ['name'=>'Wet Suit', 'price'=>18.99),
          ['name'=>'Snorkel', 'price'=>2.99),
          ['name'=>'Mask', 'price'=>6.99),
      ];
      

      Now let’s say we want to sort this $products array by the price of each item, in descending order. We can do this by using the usort function, into which we then pass an anonymous function which handles the sorting logic. Let’s look at the code:

      usort($products, function($item1, $item2) {
          return $item2["price"] <=> $item1["price"];
      });
      

      The usort function is taking two arguments (the values passed to a function). The first argument is the $products array. The second is an anonymous function which tells the usort function what to do with each item in the array. If the price of $item2 is less than the price of $item1, the operator will return -1, which will move $item2 before $item1. If the prices are the same, the operator will return 0, which will keep the items in the same order. Finally, if the price of $item2 is greater than the price of $item1, the operator will return 1, which will put $item2 after $item1, which again is the same order in which they started.

      To sort by price in ascending order instead, we flip the position of $item1 and $item2, which changes the order of the comparison:

      usort($products, function($item1, $item2) {
          return $item1["price"] <=> $item2["price"];
      });
      

      Conclusion

      Conditional statements provide us with flow control to determine the output choices of our programs. They are one of the foundational building blocks of programming, and can be found in virtually all programming languages.

      This tutorial covered both comparison operators for comparing values and logical operators for combining conditions. It demonstrated the use of the if, else, and elseif keywords while looking at nested statements and combining conditions. Finally it introduced the use of additional comparison operators, including the ternary operator, null coalescing operator, and the spaceship operator. To continue practicing conditional statements:

      • Try using different operators: <, >, ==, ===
      • Combine operators with and or or
      • Recreate an if statement using a ternary, null coalescing, or spaceship operator

      For more information on how to code in PHP, check out other tutorials in the How To Code in PHP series.



      Source link

      How to Fix the “Upload: Failed to Write File to Disk” Error in WordPress (3 Ways)


      Are you encountering the “Upload: Failed to write file to disk” error message when uploading files in WordPress? Whether you’re trying to add images or videos to your site, this message can be very frustrating, as it prevents you from sharing your amazing visuals with your audience.

      Fortunately, you can troubleshoot this issue by following a few simple steps. In some cases, you’ll just need to contact your web host to get it fixed.

      In this post, we’ll take a closer look at the “Upload: Failed to write file to disk” error and its main causes. We’ll then show you three simple ways to fix this problem. Let’s get started!

      What Causes the “Upload: Failed to Write File to Disk” Error in WordPress

      The “Upload: Failed to Write File to Disk” error message typically comes up when you’re trying to upload media files to your WordPress site. There are a few possible causes, the most common one being incorrect file permissions.

      Every file and folder on your WordPress site comes with a set of permissions. These are controlled by the web server and determine which site users can access and edit your files and folders. Thus, if the permissions are incorrect, you may be unable to perform certain actions on your site, such as uploading images to your media library.

      However, this error could also be caused by other issues, including a full WordPress temporary folder. It’s also possible that you’ve reached the disk space limit provided with your hosting plan.

      Next, we’ll take a closer look at these possible causes. We’ll also walk you through a solution for each scenario.

      Skip the Stress

      Avoid troubleshooting when you sign up for DreamPress. Our friendly WordPress experts are available 24/7 to help solve website problems — big or small.

      How to Fix the “Upload: Failed to Write File to Disk” Error in WordPress (3 Ways)

      Now, let’s look at three easy ways to fix this disk error in WordPress. As always, we recommend that you perform a backup of your site before proceeding. That way, if something goes wrong, you can restore your site to an earlier version.

      1. Change the File Permissions

      As we mentioned earlier, the “Upload: Failed to write file to disk” error is likely caused by incorrect file permissions. If you want to check these permissions, you can contact your hosting provider and ask them if they can do it for you. Alternatively, you can do this yourself by accessing your site’s root directory.

      First, you’ll need to connect to your site via a Secure File Transfer Protocol (SFTP) client such as FileZilla. You can also access your site’s directory through the file manager in your hosting account.

      If you have a DreamHost account, start by navigating to Websites > Files in the sidebar. Then locate your domain and click on the Manage Files button.

      Accessing your site in DreamHost

      This will take you to the file manager. To access your site’s directory, you can open the folder labeled with your domain name. Inside, locate the wp-content folder and right-click on it.

      Next, select File permissions.

      Locating the wp-content folder in your site’s root directory.

      In the pop-up window, go to the Numeric value field and enter “755” or “750” in the corresponding box. Next, you can select the Recurse into subdirectories and Apply to directories only options and click on OK.

      Changing the file permissions of your subdirectories in FileZilla.

      You have now set the correct file permissions for all subdirectories inside the wp-content folder. This includes the uploads folder, which is where your uploaded media files are stored.

      However, you’ll also need to set the correct permissions for the files within those folders. To do this, you can right-click on the wp-content folder again and select File permissions.

      In the Numeric value field, type in “644”. Then select the Recurse into subdirectories and Apply to files only options, and click on OK.

      Changing the file permissions of your files in FileZilla.

      Don’t worry if you’re still unable to upload files to your site after checking your file permissions. There are a couple of other things you can do to resolve the issue.

      2. Empty the WordPress Temporary Folder

      If changing the file permissions doesn’t solve the problem, you may need to empty your temporary folder. WordPress processes your media uploads in PHP. This means that your images are first saved in a temporary folder on your web server before being transferred to your uploads folder.

      If the temporary folder is full, WordPress won’t be able to write your files to disk until you’ve emptied it. Unfortunately, you cannot access this temporary directory via SFTP.  However, you can simply contact your hosting provider and ask them to empty the folder for you, and then check to see if the error has been resolved. If you have sudo users, you could ask them to clear your temporary folder.

      Alternatively, you can try to resolve this issue by defining a new location for WordPress to store your media (instead of the temporary folder). First, you’ll need to connect to your site via an SFTP client or the file manager. Then locate the wp-config.php file, right-click on it, and select View/Edit.

      Editing the wp-config.php file in FileZilla.

      Next, you’ll need to paste in the following code right before the line that reads “That’s all, stop editing! Happy publishing”:

      define(‘WP_TEMP_DIR’, dirname(__FILE__) . ‘/wp-content/temp/’);

      Save your changes, then navigate to the wp-content folder, open it, and create a new folder inside it called temp.

      Creating a temp folder inside the wp-content folder.

      When you’re done, you can return to your website and try to upload an image. If the file disk error was caused by the temporary folder, the issue should now be resolved.

      3. Upgrade Your Hosting Plan

      The disk error could also be a sign that you’ve outgrown your current hosting plan. For example, if you’ve been adding a lot of content to your site, including media files, new pages, and plugins, you might have used up all the disk space available in your account.

      Your web host may be able to tell you how much disk space you have left. If you’re a DreamHost client, you can check your disk usage by logging into your hosting account and navigating to Billing & Account > Disk Usage in the side menu.

      Checking your disk usage in your DreamHost account.

      If you’ve reached your disk space limit, you might need to upgrade to a more advanced hosting plan. This will give your site more room to grow. We recommend getting in touch with your hosting provider to discuss the possibility of switching to a higher plan.

      Additional WordPress Error Articles

      Do you want to learn how to resolve other technical issues on your site? We’ve put together several tutorials to help you troubleshoot the most common WordPress errors:

      If you’re looking for more information about running a WordPress site, make sure to check out our WordPress Tutorials. This is a collection of guides designed to help you navigate the WordPress dashboard like an expert.

      Take Your WordPress Website to the Next Level

      Whether you need help navigating file permission issues, choosing a web hosting provider, or finding the best plugin, we can help! Subscribe to our monthly digest so you never miss an article.

      Fix the “Upload: Failed to Write File to Disk” Error

      The “Upload: Failed to write file to disk” error message prevents you from uploading files such as images and videos to your WordPress site. Incorrect file permissions on your site normally cause this error. However, you may also be seeing this message because you’ve used all the disk space offered with your hosting plan.

      In this article, we looked at three simple ways to fix this common WordPress error:

      1. Change the file permissions of your WordPress site using an SFTP client like FileZilla.
      2. Empty the WordPress temporary folder by getting in touch with your web host.
      3. Upgrade your hosting plan to access more disk space.

      At DreamHost, we provide 24/7 expert support to help you efficiently resolve technical issues. We also offer reliable managed WordPress hosting solutions to help you grow your business while also making it easy for you to upgrade to an advanced plan as your site grows.



      Source link