Поместите фрагмент после "the_title" и перед "the_content" в отдельном посте Wordpress - PullRequest
1 голос
/ 17 октября 2019

Я хотел бы добавить небольшой фрагмент сразу после заголовка отдельного блога Wordpress и перед содержимым отдельного блога.

Я знаю, что есть фильтры Wordpress the_title и the_content. Для меня проблема использования этих фильтров состоит в том, что они добавляются (или добавляются) к внутренней части.

add_filter('the_title', array($this, 'add_snippet') );

public function add_snippet($title) {

   $snippet_html = '<div class="snippet">Snippet content</div>';
   return $title . $snippet_html;

}

Будет выводить:

<h1 class="entry-title">Hello world!<div class="snippet">Snippet content</div></h1>

То же самое для "the_content"фильтр:

add_filter('the_content', array($this, 'add_snippet') );

public function add_snippet($content) {

   $snippet_html = '<div class="snippet">Snippet content</div>';
   return $snippet_html . $content;

}

Будет выводить:

<div class="entry-content single-page">
  <div class="snippet">Snippet content</div>
  <p>Welcome to WordPress. This is your first post.</p>
</div>

Есть ли какой-нибудь метод WP для получения желаемого результата, например?:

<h1 class="entry-title">Hello world!</h1>

<-- HERE <div class="snippet">Snippet content</div>

<div class="entry-content single-page">
 <p>Welcome to WordPress. This is your first post.</p>
</div>

1 Ответ

0 голосов
/ 17 октября 2019

Я не думаю, что есть такие встроенные методы WP. Но, конечно, мы можем добиться этого с помощью хуков WP. Пожалуйста, посмотрите на приведенный ниже пример.

Код в шаблонах должен быть таким:

//For title
<?php do_action("your_theme_post_before_title"); ?>
<div class="title"><?php the_title(); ?></div>
<?php do_action("your_theme_post_after_title"); ?>

 //For content
<?php do_action("your_theme_post_before_content"); ?>
<div class="content"><?php the_content(); ?></div>
<?php do_action("your_theme_post_after_content"); ?>

Теперь вы можете использовать эти крючки в соответствии с вашими требованиями.

add_action("your_theme_post_after_title", function(){  
  echo '<div class="snippet">Snippet content</div>';    
});

add_action("your_theme_post_before_content", function(){    
  echo '<div class="snippet">Snippet content</div>';    
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...