Лучший способ заменить текст страницы в Wordpress - PullRequest
1 голос
/ 01 мая 2020

Я нашел 2 решения для замены текста на странице Wordpress. Оба работают "почти" нормально, за исключением нескольких проблем:

Решение 1:

function callback($buffer) {
  // modify buffer here, and then return the updated code
  return $buffer;
}

function buffer_start() { ob_start("callback"); }

function buffer_end() { ob_end_flush(); }

add_action('wp_head', 'buffer_start');
add_action('wp_footer', 'buffer_end');

Он взят из:

Фильтр WordPress для изменения окончательный html вывод и

http://www.dagondesign.com/articles/wordpress-hook-for-entire-page-using-output-buffering/

Работает нормально, но не позволяет изменять заголовок страницы. Есть ли способ изменить заголовок страницы описанным выше способом?

Второе решение, которое я получил от популярного плагина (кодовая строка № 270): https://wordpress.org/plugins/real-time-find-and-replace/

function far_template_redirect() {
    ob_start();
    ob_start( 'far_ob_call' );
    //ob_end_flush(); fails here. I don't know why?
}

//Handles find and replace for public pages
add_action( 'template_redirect', 'far_template_redirect' );

Работает нормально, но многие онлайн-ссылки предлагают использовать add_filter 'template_include' вместо add_action 'template_redirect'. См .:

https://markjaquith.wordpress.com/2014/02/19/template_redirect-is-not-for-loading-templates/ https://bbpress.trac.wordpress.org/ticket/1524

Но если я попытаюсь add_action 'template_redirect' вместо add_filter 'template_include', текст заменит код работает на некоторых веб-сайтах и ​​ломает некоторые другие веб-сайты.

И люди предложили использовать ob_end_flush() с ob_start(), но код завершится ошибкой, если я включу ob_end_flush в код после ob_start.

Мне нравится solution 1, но есть ли способ включить в него верхние и нижние колонтитулы? В противном случае Solution 2 работает для всех веб-сайтов, за исключением того, что он не имеет ob_end_flush и не рекомендуется многими людьми, хотя популярный плагин использует его.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 01 мая 2020

function custom_resource_type() {

    $labels = array(
        'name'                => _x( 'Resources', 'Post Type General Name', 'gucherry-blog' ),
        'singular_name'       => _x( 'Resource', 'Post Type Singular Name', 'gucherry-blog' ),
        'menu_name'           => __( 'Resources', 'gucherry-blog' ),
        'parent_item_colon'   => __( 'Parent Resource', 'gucherry-blog' ),
        'all_items'           => __( 'All Resources', 'gucherry-blog' ),
        'view_item'           => __( 'View Resource', 'gucherry-blog' ),
        'add_new_item'        => __( 'Add New Resource', 'gucherry-blog' ),
        'add_new'             => __( 'Add Resource', 'gucherry-blog' ),
        'edit_item'           => __( 'Edit Resource', 'gucherry-blog' ),
        'update_item'         => __( 'Update Resource', 'gucherry-blog' ),
        'search_items'        => __( 'Search Resource', 'gucherry-blog' ),
        'not_found'           => __( 'Not Found', 'gucherry-blog' ),
        'not_found_in_trash'  => __( 'Not found in Trash', 'gucherry-blog' ),
    );

    $args = array(
        'label'               => __( 'resources', 'gucherry-blog' ),
        'description'         => __( 'Resource for software products and online', 'gucherry-blog' ),
        'labels'              => $labels,
        'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
        'taxonomies'          => array( '' ),
        'hierarchical'        => false,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_position'       => 5,
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'menu_icon'           => 'dashicons-admin-site-alt2',
        'capability_type'     => 'page',
    );

    register_post_type( 'resources', $args );

     $resource_cats = array(
    'name' => _x( 'Resource Categories', 'taxonomy general name', 'gucherry-blog' ),
    'singular_name' => _x( 'Resource Category', 'taxonomy singular name', 'gucherry-blog' ),
    'search_items' =>  __( 'Search Resource Categories', 'gucherry-blog' ),
    'all_items' => __( 'All Resource', 'gucherry-blog' ),
    'parent_item' => __( 'Parent Resource', 'gucherry-blog' ),
    'parent_item_colon' => __( 'Parent Resource:', 'gucherry-blog' ),
    'edit_item' => __( 'Edit Resource', 'gucherry-blog' ), 
    'update_item' => __( 'Update Resource', 'gucherry-blog' ),
    'add_new_item' => __( 'Add New Resource', 'gucherry-blog' ),
    'new_item_name' => __( 'New Resource', 'gucherry-blog' ),
    'menu_name' => __( 'Resource Categories', 'gucherry-blog' ),
  );    

  register_taxonomy('resource_categories',array('resources'), array(
    'hierarchical' => true,
    'labels' => $resource_cats,
    'show_ui' => true,
    'show_admin_column' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'resource' ),
  ));

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...