我试图只替换帖子页面上的一个单词。我遇到的问题是,WordPress页面内容最终为空,即使此代码只应在post页面上运行。
<?php
/**
* Plugin Name: Wordpress plugin test esmond
* Plugin URI: https://esmondmccain.com
* Description: test plugin.
* Version: 1.0
* Author: Esmond Mccain
* Author URI: https://esmondmccain.com
*/
defined(\'ABSPATH\') or die();
function esmond_enqueue_scripts_styles() {
if(is_page()){
//Styles
wp_enqueue_style( \'bootstrap-css\', \'https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css\');
//Scripts
wp_enqueue_script( \'bootstrap-js\', \'https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\', array(\'jquery\'), true);
}
}
add_action(\'wp_enqueue_scripts\',\'esmond_enqueue_scripts_styles\');
add_filter(\'the_content\', \'replace_word\');
function replace_word($text) {
if (is_singular( \'post\' )){
$text = str_replace(\'dog\', \'cat\', $text);
return $text;
}
}
最合适的回答,由SO网友:Qaisar Feroz 整理而成
您的代码正在返回$text
仅适用于帖子,不适用于其他帖子类型,如页面。
你的函数应该是这样的
add_filter(\'the_content\', \'replace_word\');
function replace_word($text) {
if (is_singular( \'post\' )){
$text = str_replace(\'dog\', \'cat\', $text);
return $text;
}
// you must return content for pages/ other post types
return $text;
}