晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/stando/www/wp-content/plugins/wpseo-local/classes/ |
Upload File : |
<?php
/**
* Yoast SEO: Local plugin file.
*
* @package WPSEO_Local\Frontend
* @since 7.1
*/
if ( ! class_exists( 'WPSEO_Local_Search' ) ) {
/**
* Class WPSEO_Local_Search
*
* Add functionality for enhancing the search engine and page
*/
class WPSEO_Local_Search {
/**
* Stores the options for this plugin.
*
* @var array
*/
private $search_fields = array();
/**
* @var bool
*/
private $enhanced_search_result_enabled = true;
/**
* Holds the global wpdb variable.
*
* @var \wpdb
*/
private $wpdb;
/**
* Stores the options for this plugin.
*
* @var array
*/
private $options;
/**
* Constructor.
*/
public function __construct() {
$this->run();
}
/**
* Run all the needed actions.
*/
public function run() {
add_action( 'init', array( $this, 'set_options' ) );
add_action( 'pre_get_posts', array( $this, 'enhance_search' ) );
add_filter( 'the_excerpt', array( $this, 'enhance_location_search_results' ) );
}
/**
* Set WPSEO Local options in variable.
*/
public function set_options() {
$this->options = get_option( 'wpseo_local' );
}
/**
* Enhance the WordPress search to search in WPSEO Local locations meta data.
*/
public function enhance_search() {
if ( is_search() && $this->is_enhanced_search_enabled() && ! is_admin() && ( ! isset( $_GET['post_type'] ) || 'wpseo_locations' === $_GET['post_type'] ) ) {
global $wpdb;
$this->wpdb = $wpdb;
$this->set_search_fields();
add_filter( 'posts_where', array( $this, 'where' ), 99, 1 );
add_filter( 'posts_join', array( $this, 'join' ), 99, 1 );
add_filter( 'posts_groupby', array( $this, 'groupby' ), 99, 1 );
}
}
/**
* @param string $where The WHERE clause for the search query.
*
* @return mixed
*/
public function where( $where ) {
$meta_query = '';
$where = $this->wpdb->remove_placeholder_escape( $where );
foreach ( $this->search_fields as $field ) {
$meta_query .= '((' . $this->wpdb->postmeta . ".meta_key = '" . $field . "')";
$meta_query .= ' AND (' . $this->wpdb->postmeta . ".meta_value LIKE '%" . get_search_query() . "%')) OR ";
}
$where = str_replace( '(((' . $this->wpdb->posts . ".post_title LIKE '%", '( ' . $meta_query . ' ((' . $this->wpdb->posts . ".post_title LIKE '%", $where );
$where = $this->wpdb->remove_placeholder_escape( $where );
return $where;
}
/**
* @param string $join The JOIN clause for the search query.
*
* @return mixed
*/
public function join( $join ) {
$join .= ' INNER JOIN ' . $this->wpdb->postmeta . ' ON (' . $this->wpdb->posts . '.ID = ' . $this->wpdb->postmeta . '.post_id)';
return $join;
}
/**
* @param string $groupby The GROUPBY clause for the search query.
*
* @return mixed
*/
public function groupby( $groupby ) {
$groupby .= $this->wpdb->posts . '.ID';
return $groupby;
}
/**
* Add address to locations in search results
*
* @since 1.3.8
*
* @param string $excerpt The excerpt which will be changed by this method.
*
* @return string
*/
public function enhance_location_search_results( $excerpt ) {
if ( is_search() && $this->is_enhanced_search_result_enabled() && $this->is_enhanced_search_enabled() ) {
global $post;
if ( 'wpseo_locations' === get_post_type( $post->ID ) ) {
$atts = array(
'id' => $post->ID,
'hide_name' => true,
'hide_json_ld' => true,
);
$excerpt .= '<div class="wpseo-local-search-details">';
$excerpt .= wpseo_local_show_address( $atts );
$excerpt .= '</div>';
}
}
return $excerpt;
}
/**
* Set the default fields to search in.
*/
private function set_search_fields() {
$this->search_fields = array( '_wpseo_business_address', '_wpseo_business_city', '_wpseo_business_zipcode' );
$this->search_fields = apply_filters( 'wpseo_local_search_custom_fields', $this->search_fields );
}
/**
* Check if enhanced search is enabled.
*
* @return string
*/
private function is_enhanced_search_enabled() {
return apply_filters( 'yoast_local_seo_enhanced_search_enabled', $this->options['enhanced_search'] );
}
/**
* Check if enhanced search result is enabled.
*
* @todo: Create an option in the Yoast Local SEO options page to disable the enhanced search.
*
* @return true|false
*/
private function is_enhanced_search_result_enabled() {
return apply_filters( 'yoast_local_seo_enhanced_search_result_enabled', $this->enhanced_search_result_enabled );
}
}
}